<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Plugins &#8211; Blackbams Blog</title>
	<atom:link href="https://blog.blackbam.at/category/web-development/wordpress/plugins-wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.blackbam.at</link>
	<description>development - digital arts - internet</description>
	<lastBuildDate>Fri, 21 Feb 2020 10:20:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.1</generator>
	<item>
		<title>New WordPress Plugin released: Simple User Locking</title>
		<link>https://blog.blackbam.at/2019/07/04/new-wordpress-plugin-released-simple-user-locking/</link>
					<comments>https://blog.blackbam.at/2019/07/04/new-wordpress-plugin-released-simple-user-locking/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Thu, 04 Jul 2019 13:12:46 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=2382</guid>

					<description><![CDATA[A little bit of advertising for my new Plugin "Simple User Locking" which I have just released to the WordPress plugin repository. It has just passed the security audit by the WordPress plugin team and is not publicly available and free for everybody.]]></description>
										<content:encoded><![CDATA[<p>A little bit of advertising for my new Plugin &#8220;Simple User Locking&#8221; which I have just released to the WordPress plugin repository. It has just passed the security audit by the WordPress plugin team and is not publicly available and free for everybody: <a href="https://wordpress.org/plugins/simple-user-locking/">https://wordpress.org/plugins/simple-user-locking/</a></p>
<p>This is its description:</p>
<p>Prevent users from logging into your WordPress installation for a certain timeframe or permanently. Works also great with the multisite user management area. The locked users are easily manageable within the users overview page. The settings are within the user edit pages. No user can lock himself. No user with a lower role can lock a higher user and administrators in a network can not lock super administrators. If a user is locked, he is instantly logged out of any session until the lock expires or is removed.</p>
<p>No useless overhead, no ads. Just a tiny, but very effective plugin to keep your website secure.</p>
<ul>
<li>you do not want to delete a user, but you want to make sure he can not access the site (at least for a certain timeframe)</li>
<li>an employee leaves your company and access should be removed, but you want to keep his user as an author in the system</li>
<li>you want to punish a certain user which did bad things for a certain timeframe</li>
<li>you want only few persons to have access to your WordPress site in order to minimize risk of incidents</li>
<li> &#8230; or maybe some other use case</li>
</ul>
<p>Would be great to hear whatever feedback or improvement ideas 😉 </p>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2019%2F07%2F04%2Fnew-wordpress-plugin-released-simple-user-locking%2F&#038;title=New%20WordPress%20Plugin%20released%3A%20Simple%20User%20Locking" data-a2a-url="https://blog.blackbam.at/2019/07/04/new-wordpress-plugin-released-simple-user-locking/" data-a2a-title="New WordPress Plugin released: Simple User Locking"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2019/07/04/new-wordpress-plugin-released-simple-user-locking/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>qTranslate is dead &#8211; long live qTranslate XT</title>
		<link>https://blog.blackbam.at/2019/03/14/qtranslate-is-dead-long-live-qtranslate-xt/</link>
					<comments>https://blog.blackbam.at/2019/03/14/qtranslate-is-dead-long-live-qtranslate-xt/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Thu, 14 Mar 2019 18:13:53 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[multilanguage]]></category>
		<category><![CDATA[qtranslate]]></category>
		<category><![CDATA[qtranslate xt]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=2340</guid>

					<description><![CDATA[qTranslate is a great multilanguage Plugin for WordPress. It is fast and easy. For many of my projects from 2012-2017 I have chosen it over WPML or multisite multilanguage as it is super fast and easy. Then the author suddenly has disappeared without a Word tens of thousands of WordPress sites have been affected. One [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>qTranslate is a great multilanguage Plugin for WordPress. It is fast and easy. For many of my projects from 2012-2017 I have chosen it over WPML or multisite multilanguage as it is super fast and easy.</p>
<p>Then the author suddenly has disappeared without a Word tens of thousands of WordPress sites have been affected. One year later some great guy appeared which improved qTranslate and developed it further und the name qTranslate X. Again a lot of developers and bloggers were using it. Guess what happend? The author has collected donations and again disappeared without a word. The project was abandoned again and tens of thousands of unhappy users were left behind.</p>
<p>After almost two years of silence I am really happy to announce that new authors have decided to continue the project with the name <strong>qTranslate XT</strong>. The project is not yet in the official plugin repository but it is available on Github: <a href="https://github.com/qtranslate/qtranslate-xt">https://github.com/qtranslate/qtranslate-xt</a></p>
<p>You can replace old installations of qTranslate X and e.g. bugs with more recent versions of PHP are fixed!</p>
<p>All the best to the new team and I hope that the completely open source project will become even more popular in the future. This site is powered by qTranslate XT 😎 </p>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2019%2F03%2F14%2Fqtranslate-is-dead-long-live-qtranslate-xt%2F&#038;title=qTranslate%20is%20dead%20%E2%80%93%20long%20live%20qTranslate%20XT" data-a2a-url="https://blog.blackbam.at/2019/03/14/qtranslate-is-dead-long-live-qtranslate-xt/" data-a2a-title="qTranslate is dead – long live qTranslate XT"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2019/03/14/qtranslate-is-dead-long-live-qtranslate-xt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress Plugin: TinyMCE and TinyMCE Advanced Professsional Formats and Styles</title>
		<link>https://blog.blackbam.at/2013/06/03/wordpress-plugin-tinymce-and-tinymce-advanced-professsional-formats-and-styles/</link>
					<comments>https://blog.blackbam.at/2013/06/03/wordpress-plugin-tinymce-and-tinymce-advanced-professsional-formats-and-styles/#comments</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Mon, 03 Jun 2013 21:26:28 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[style]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[tinymce advanced]]></category>
		<category><![CDATA[visual editor]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=2073</guid>

					<description><![CDATA[TinyMCE is the standard WordPress visual editor and it might be the best choice for a lot of WordPress websites. Unfortunatly it always required some time and a lot of knowledge to customize and style it to your needs. Using this following Plugin will reduce this problem. &#160; Clients tend to get crazy if they have [&#8230;]]]></description>
										<content:encoded><![CDATA[<div style="float: right;">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"><input type="hidden" name="hosted_button_id" value="VNS6BVGVH69P6" /> <input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" /> <img decoding="async" alt="" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1" border="0" /></form>
</div>
<p>TinyMCE is the standard WordPress visual editor and it might be the best choice for a lot of WordPress websites. Unfortunatly it always required some time and a lot of knowledge to customize and style it to your needs. Using this following Plugin will reduce this problem.</p>
<p>&nbsp;</p>
<p>Clients tend to get crazy if they have to edit HTML code on their own or if little things are not working as expected. Make your editing experience as simple and good as possible: Customize TinyMCE / TinyMCE Advanced (or other TinyMCE variants) to fit your needs. Basically, this Plugin does two things for you:</p>
<h3>1. This Plugin installs two files editor-style.css and editor-style-shared.css into your Theme folder (so you can still do updates of the Plugin), which can be edited in the backend of your site</h3>
<ul>
<li>editor-style.css is used for styling your TinyMCE Editor</li>
<li>editor-style-shared.css is used for styles to be used in your theme AND in your TinyMCE editor (so you do not have to copy)</li>
</ul>
<p><em>Note:</em> To use this feature, you have to write your own CSS code into this files, which is the only professional way to do it.</p>
<h3>2. The main feature of this Plugin is to offer a GUI to create custom style formats for TinyMCE dynamically</h3>
<ul>
<li>Easy and very fast to add/change/delete</li>
<li>You do not have to change one single line of source code any more</li>
</ul>
<p>Please report any bugs you may encounter and support this Plugin if you like it.    </p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://wordpress.org/plugins/tinymce-and-tinymce-advanced-professsional-formats-and-styles/"><span style="font-size: large;"><strong>&gt;&gt; Download the Plugin HERE &lt;&lt;</strong></span></a></p>
<p>&nbsp;</p>
<p>  <strong>Screenshots:</strong></p>
<div style="text-align: center;"><a href="https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-1.png"><img fetchpriority="high" decoding="async" class="size-medium wp-image-2074 aligncenter" alt="screenshot-1" src="https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-1-600x194.png" width="600" height="194" srcset="https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-1-600x194.png 600w, https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-1.png 772w" sizes="(max-width: 600px) 100vw, 600px" /></a></div>
<div style="text-align: center;"> </div>
<div style="text-align: center;"> </div>
<div style="text-align: center;">      <a href="https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-2.png"><img decoding="async" class="size-medium wp-image-2075 aligncenter" alt="screenshot-2" src="https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-2-600x194.png" width="600" height="194" srcset="https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-2-600x194.png 600w, https://blog.blackbam.at/wp-content/uploads/2013/06/screenshot-2.png 772w" sizes="(max-width: 600px) 100vw, 600px" /></a></div>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2013%2F06%2F03%2Fwordpress-plugin-tinymce-and-tinymce-advanced-professsional-formats-and-styles%2F&#038;title=WordPress%20Plugin%3A%20TinyMCE%20and%20TinyMCE%20Advanced%20Professsional%20Formats%20and%20Styles" data-a2a-url="https://blog.blackbam.at/2013/06/03/wordpress-plugin-tinymce-and-tinymce-advanced-professsional-formats-and-styles/" data-a2a-title="WordPress Plugin: TinyMCE and TinyMCE Advanced Professsional Formats and Styles"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2013/06/03/wordpress-plugin-tinymce-and-tinymce-advanced-professsional-formats-and-styles/feed/</wfw:commentRss>
			<slash:comments>27</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress Plugin: Better deactivate visual editor</title>
		<link>https://blog.blackbam.at/2012/12/01/wordpress-plugin-better-deactivate-visual-editor/</link>
					<comments>https://blog.blackbam.at/2012/12/01/wordpress-plugin-better-deactivate-visual-editor/#respond</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Sat, 01 Dec 2012 19:34:50 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP Scripts]]></category>
		<category><![CDATA[deactivate]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[visual]]></category>
		<category><![CDATA[wysiwyg]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=2011</guid>

					<description><![CDATA[As it is happens quite often that the rich editor of WordPress is a barrier concerning posts including difficult HTML, I wrote a Plugin. I am planning to release an improved version to the WordPress Plugin repository soon, but I think this works quite well for now: &#160; // Deactivate Visual Editor if option is [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>As it is happens quite often that the rich editor of WordPress is a barrier concerning posts including difficult HTML, I wrote a Plugin. I am planning to release an improved version to the WordPress Plugin repository soon, but I think this works quite well for now:</p>
<p>&nbsp;</p>
<pre lang="php">
// Deactivate Visual Editor if option is set
add_action('pre_get_posts', 'deactivate_visual_editor');

function deactivate_visual_editor() {
  global $wp_rich_edit;
  $post_id = $_GET['post'];
  
  $value = get_post_meta($post_id, 'deactivate_visual_editor', true);
  if($value == 1)
    $wp_rich_edit = false;
}


// create a box for each post / page
function cis_init(){
	add_meta_box("cis_post_settings", __("Details",TEXTDOMAIN), "cis_post_settings", "page", "normal", "high");
	add_meta_box("cis_post_settings", __("Details",TEXTDOMAIN), "cis_post_settings", "post", "normal", "high");
}

function cis_post_settings() {
    global $post;
    $custom = get_post_custom($post->ID);
	
	// maybe we want to automatize this?
?>
	<div class="inside">
		<table class="form-table" class="customEditor">
			<tr>
				<th><label for="deactivate_visual_editor">Deactivate visual editor?</label></th>
				<td>
					<input type="checkbox" name="deactivate_visual_editor" value="1" <?php if($custom["deactivate_visual_editor"][0]==1) {?>checked="checked"<?php } ?> />
				</td>
			</tr>
		</table>
	</div>
<?php
}

function save_cis_post(){
	global $post;
	
	if ( defined('DOING_AUTOSAVE') &#038;&#038; DOING_AUTOSAVE ) {
		return $post_id;
	}
	if($post->post_type == "post" || $post->post_type == "page") {
		update_post_meta($post->ID, "deactivate_visual_editor", intval($_POST["deactivate_visual_editor"]));
		
	}
}
</pre>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2012%2F12%2F01%2Fwordpress-plugin-better-deactivate-visual-editor%2F&#038;title=WordPress%20Plugin%3A%20Better%20deactivate%20visual%20editor" data-a2a-url="https://blog.blackbam.at/2012/12/01/wordpress-plugin-better-deactivate-visual-editor/" data-a2a-title="WordPress Plugin: Better deactivate visual editor"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2012/12/01/wordpress-plugin-better-deactivate-visual-editor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Custom Header Images Plugin for WordPress</title>
		<link>https://blog.blackbam.at/2012/06/25/custom-header-images-plugin-for-wordpress/</link>
					<comments>https://blog.blackbam.at/2012/06/25/custom-header-images-plugin-for-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Sun, 24 Jun 2012 23:08:37 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Header Images]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=1935</guid>

					<description><![CDATA[Update: There was a short intverview regarding this Plugin by expertentesten.de: https://www.expertentesten.de/news/interview-david-stoeckl-custom-header-images-plugin/(language is german). Why does WordPress need another Header Images Plugin? Really, there are a lot of Plugins for this purpose so why did I have to write another one? The answer is: All these plugins have a lot of code, it is hard [&#8230;]]]></description>
										<content:encoded><![CDATA[<div style="float: right; padding: 15px;">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input name="cmd" type="hidden" value="_s-xclick" /> <input name="hosted_button_id" type="hidden" value="DX9GDC5T9J9AQ" /> <input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" type="image" /> <img loading="lazy" decoding="async" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" alt="" width="1" height="1" border="0" /></form>
</div>
<p>Update: There was a short intverview regarding this Plugin by expertentesten.de: <a href="https://www.expertentesten.de/news/interview-david-stoeckl-custom-header-images-plugin/">https://www.expertentesten.de/news/interview-david-stoeckl-custom-header-images-plugin/</a>(language is german).</p>
<p>Why does WordPress need another Header Images Plugin? Really, there are a lot of Plugins for this purpose so why did I have to write another one? The answer is: All these plugins have<strong> a lot of code</strong>, it is <strong>hard to extend these by oneself</strong> and unfortunatly <strong>none if these is really simple to maintain, extend and to understand</strong>. I was searching for hours for the right header image Plugin which provides the functionality that i needed in a simple clean and easy way, without custom tables and buggy built-in uploads, wihout required theme support and so on. So here is my answer: A quick and easy WordPress Plugin to do this job.</p>
<h2>Features</h2>
<ul>
<li>Simple and easy management of header images</li>
<li>Each possible state is covered, by using the <a href="http://upload.wikimedia.org/wikipedia/commons/3/3d/Wordpress_Template_Hierarchy.png">WordPress template hierarchy</a>for diffentiation</li>
<li>The Media Library is used for image management, images are saved by URL copy/paste (so external images can be used, too)</li>
<li>Requires no extra tables</li>
<li>NEW: Support for Custom Post Types (Single Custom Post Images) and Custom Taxonomies (Taxonomy Page Images)</li>
<li>Clean install/uninstall</li>
</ul>
<div> </div>
<div>Be free to post improvement ideas and feature request as a comment to this post.</div>
<h2>Installation</h2>
<p>&gt;&gt; <a style="font-size: 16px; font-weight: bold;" href="http://wordpress.org/extend/plugins/custom-header-images/">Download this Plugin</a> &lt;&lt;</p>
<ol>
<li>Upload the Plugin to your wp-content/plugins/ folder</li>
<li>Activate the Plugin</li>
<li>Go to Settings -&gt; Header Images and insert the image URLs (get the URLs from the media library)</li>
<li>Paste one of the following codes into your theme:</li>
</ol>
<p><strong>NOTE:</strong>This code must be put into PHP brackets!</p>
<p><!--?php ....code.... ?--></p>
<pre lang="php">// standard code
if(function_exists('chi_display_header')) { chi_display_header(); }</pre>
<p>or this code, use concrete numbers for width and height in pixels:</p>
<pre lang="php">// f.e. chi_display_header(960,250); for header images with 960 px width and 250 px height
if(function_exists('chi_display_header')) { chi_display_header($width,$height); }</pre>
<p>Warning: You can only use conditional query tags after the posts_selection action hook in WordPress (the wp action hook is the first one through which you can use these conditionals). For themes, this means the conditional tag will never work properly if you are using it in the body of functions.php, i.e. outside of a function (<a href="http://codex.wordpress.org/Conditional_Tags">http://codex.wordpress.org/Conditional_Tags</a>).</p>
<p>&nbsp;</p>
<p>============ UPDATE: 2014-02-01 ==========</p>
<p>Some functions were added for better flexibility:</p>
<pre lang="php">chi_get_header_image_url(); // get only the URL of the header image

</pre>
<p>&nbsp;</p>
<pre lang="php">chi_get_header_image_link(); // get only the Link of the header image

</pre>
<p>&nbsp;</p>
<pre lang="php">chi_get_display_header_data($width=-1,$height=-1); // get the full output of the plugin into a variable, but do not display it

</pre>
<p>&nbsp;</p>
<h3>Responsiveness tutorial (short)</h3>
<p>For the sake of responsive web design, you will not be happy to put out the same header image on every device (as huge header images are not good for mobile devices to load). Therefore I suggest the following solution which should work well for you:</p>
<p>&nbsp;</p>
<ol>
<li>Instead of calling  chi_display_header(); you call chi_get_header_image_url(); and pass it to a Javascript variablet</li>
<li>Install the <a href="https://code.google.com/p/timthumb/">timthumb library</a> on your WordPress installation</li>
<li>Use Javascript to get the image in the desired size from timthumb.php by passing the original image url</li>
</ol>
<p>&nbsp;</p>
<h2>How to change header images&#8230;</h2>
<ul>
<li>Go to Settings -&gt;Header images (general images)</li>
<li>Meta Boxes at the bottom of post / page edit screen</li>
<li>Category add/edit screen</li>
</ul>
<h2>FAQ</h2>
<p><strong>Q: The Plugin is not displaying the header images correctly. What is wrong?</strong></p>
<ul>
<li>The function code must be pasted into one of your template files, the<strong> best place in most cases of use is the bottom of header.php</strong></li>
<li>This Plugin uses <strong>conditional tags</strong>. Please make sure that your wp_query object has been loaded correctly, before the code is executed.</li>
</ul>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2012%2F06%2F25%2Fcustom-header-images-plugin-for-wordpress%2F&#038;title=Custom%20Header%20Images%20Plugin%20for%20WordPress" data-a2a-url="https://blog.blackbam.at/2012/06/25/custom-header-images-plugin-for-wordpress/" data-a2a-title="Custom Header Images Plugin for WordPress"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2012/06/25/custom-header-images-plugin-for-wordpress/feed/</wfw:commentRss>
			<slash:comments>93</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress 3.3 &#8211; TinyMCE Advanced &#8211; qTranslate &#8211; fix style problems</title>
		<link>https://blog.blackbam.at/2012/01/28/wordpress-3-3-tinymce-advanced-qtranslate-fix-style-problems/</link>
					<comments>https://blog.blackbam.at/2012/01/28/wordpress-3-3-tinymce-advanced-qtranslate-fix-style-problems/#comments</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Sat, 28 Jan 2012 18:24:46 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP Scripts]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=1791</guid>

					<description><![CDATA[Recently I had to fix a bunch of really annoying problems with this combination. Duplicated contents, automatically inserted line breaks and problems with the custom styles for TinyMCE really caused me to hate these Plugins. The reason for most of the problems is qTranslate though. If you experience similar problems, the following &#8220;library&#8221; will be [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Recently I had to fix a bunch of really annoying problems with this combination. Duplicated contents, automatically inserted line breaks and problems with the custom styles for TinyMCE really caused me to hate these Plugins. The reason for most of the problems is qTranslate though.</p>
<p>If you experience similar problems, the following &#8220;library&#8221; will be helpful for you. It contains a lot of functions to fix problems with this combination and to customize your backend the way you need it. Do not forget to remove the slashes in front of the required filter tags, otherwise the functions are not applied. Improvement ideas are welcome.</p>
<p><span style="font-size: large;"><strong><a href="http://wordpress.org/extend/plugins/tinymce-advanced-qtranslate-fix-editor-problems/">Download the Plugin</a></strong></span></p>
<p><strong><br />
</strong></p>
<p>Code (<span style="color: #f44;">NOTE: GeSHi prints the code with some little errors here, please download the Plugin. Thanks.</span>)</p>
<pre lang="php">




/*
Plugin Name: TinyMCE Advanced qTranslate fix editor problems
Plugin URI: https://blog.blackbam.at/2012/01/28/wordpress-3-3-tinymce-advanced-qtranslate-fix-style-problems/
Description: Remove line breaks and whitespace, enable custom stylesheets and multiple textareas. Fully customizable.
Version: 1.0.0
Author: David Stöckl
Author URI: http://www.blackbam.at/
 * 
Released and distributed under the GPLv2.
 * 
*/

/********** Administration ******************/
register_activation_hook(__FILE__,"tqfep_activate");

function tqfep_activate() {
	add_option('tqfep_styles',"");
	add_option('tqfep_fix_pre',1);
	add_option('tqfep_fix_post',1);
	add_option('tqfep_encoding','UTF-8');
	add_option('tqfep_custom_styles',';My Class=myclass;');
	register_uninstall_hook(__FILE__,"tqfep_uninstall");
}

function tqfep_uninstall() {
	// delete all options, tables, ...
	delete_option('tqfep_styles');
	delete_option('tqfep_fix_pre');
	delete_option('tqfep_fix_post');
	delete_option('tqfep_encoding');
	delete_option('tqfep_custom_styles');
}

function tqfepUpdateCheckbox($option) {
	update_option($option,intval($_POST[$option]));
}

function tqfepUpdateSelect($option,$allowed) {
	if(in_array($_POST[$option],$allowed)) {
		update_option($option,$_POST[$option]);
	}
}


// add the options page on initialization
add_action('admin_menu','tqfep_admin');

// add the actual options page
function tqfep_admin() {
	add_options_page('Fix TQ Editor','Fix TQ Editor','manage_options',__FILE__,'tqfep_backend_page');
}

// add the options page
function tqfep_backend_page() { ?>
	<div class="wrap">
		<div><?php screen_icon('options-general'); ?></div>
		<h2>Settings: TinyMCE Advanced qTranslate fix editor problems</h2>
		<?php
		if(isset($_POST['tqfep_update']) &#038;&#038; $_POST['tqfep_update']!="") {
			
			tqfepUpdateCheckbox('tqfep_fix_pre');
			tqfepUpdateCheckbox('tqfep_fix_post');
			
			tqfepUpdateSelect('tqfep_styles',array('','usual','theme_stylesheet','force_custom'));
			
			update_option('tqfep_encoding',$_POST['tqfep_encoding']);
			update_option('tqfep_custom_styles',$_POST['tqfep_custom_styles']);
			?>
			<div id="message" class="updated">Settings saved successfully</div>
		<?php }
		?>
		<form name="tqfep_update" method="post" action="">
			<div>
				<table class="form-table">
					<tr valign="top">
						<th scope="row"><?php _e('Sanitize content before editing?','ultrasimpleshop'); ?></th>
						<td>
							<input type="checkbox" name="tqfep_fix_pre" value="1" <?php if(get_option('tqfep_fix_pre')==1) {?>checked="checked" <?php } ?> />
						</td>
						<td class="description"><?php _e('Remove blank lines before editing content.','ultrasimpleshop'); ?></td>
					</tr>
					<tr valign="top">
						<th scope="row"><?php _e('Sanitize content after editing?','ultrasimpleshop'); ?></th>
						<td>
							<input type="checkbox" name="tqfep_fix_post" value="1" <?php if(get_option('tqfep_fix_post')==1) {?>checked="checked" <?php } ?> />
						</td>
						<td class="description"><?php _e('Remove blank lines after editing content.','ultrasimpleshop'); ?></td>
					</tr>
					<tr valign="top">
						<th scope="row"><?php _e('Encoding','ultrasimpleshop'); ?></th>
						<td>
							<input type="text" size="8" name="tqfep_encoding" value="<?php echo get_option('tqfep_encoding'); ?>" />
						</td>
						<td class="description"><?php _e('Usually "UTF-8"','ultrasimpleshop'); ?></td>
					</tr>
					<tr valign="top">
						<th scope="row"><?php _e('Fix TinyMCE Advanced custom stylesheets','ultrasimpleshop'); ?></th>
						<td>
							<select name="tqfep_styles">
								<option value="" <?php if(get_option('tqfep_styles')=='') {?>selected="selected"<?php } ?>><?php _e('Nothing to do','ultrasimpleshop'); ?></option>
								<option value="theme_stylesheet" <?php if(get_option('tqfep_styles')=='theme_stylesheet') {?>selected="selected"<?php } ?>><?php _e('TRY to embed theme stylesheet','ultrasimpleshop'); ?></option>
								<option value="force_custom" <?php if(get_option('tqfep_styles')=='force_custom') {?>selected="selected"<?php } ?>><?php _e('Add custom editor stylesheets dirctly','ultrasimpleshop'); ?></option>
							</select>
						</td>
						<td class="description"><?php _e('If you cannot add custom styles using "editor-style.css" via TinyMCE Advanced, you can try one of these options to add custom stylesheets.','ultrasimpleshop'); ?></td>
					</tr>
					<tr valign="top">
						<th scope="row"><?php _e('Custom Stylesheets String','ultrasimpleshop'); ?></th>
						<td>
							<input type="text" size="40" name="tqfep_custom_styles" value="<?php echo get_option('tqfep_custom_styles'); ?>" />
						</td>
						<td class="description"><?php _e('Use: ";Name of Field=CSS-class;. Works only if custom editor stylesheets are selected."','ultrasimpleshop'); ?></td>
					</tr>
				</table>
				<p></p>
				<p><input type="hidden" name="tqfep_update" value="true" />
				<input type="submit" name="Save" value="Save Settings" class="button-primary" /></p>
			</div>
		</form>
	</div>
<?php }


 
// second possibilty - styles inside editor
if(get_option('tqfep_styles')=="theme_stylesheet") {
	add_filter( 'mce_css', 'tinymce_css',5);
}
 
function ses_tinymce_css($wp) {
        $wp .= ',' . get_bloginfo('stylesheet_url');
        return $wp;
}
 
/**
 * The hard way - if other possibilities do not work
 */

if(get_option('tqfep_styles')=="force_custom") {
	add_filter('tiny_mce_before_init', 'cisStyles', 5);
}
	
function cisStyles($initialArray) {
	$modifiedArray = $initialArray;
 
	$modifiedArray['theme_advanced_styles'] .= get_option('tqfep_custom_styles');
	//strip first and last character if it matches ";"
	$modifiedArray['theme_advanced_styles'] = trim($modifiedArray['theme_advanced_styles'], ';');
	return $modifiedArray;
}
 
/** TinyMCE Advanced and qTranslate - fix editing bugs */

if(get_option('tqfep_fix_pre')==1) {
	add_filter('htmledit_pre', 'fix_p_around_languagetag');
	add_filter('richedit_pre', 'fix_p_around_languagetag');
}

if(get_option('tqfep_fix_post')==1) {
	add_filter('content_save_pre','fix_p_after_edit');
}

function fix_p_around_languagetag ($content = '') {
	$content = html_entity_decode($content);
	$content = str_replace("<!--", "<!--", $content);
	$content = str_replace("-->", "-->", $content);
	$content = preg_replace("/(-->)(\s|&nbsp;)*<p>(\s|&nbsp;)*(<\/p>)(\s|&nbsp;)*/","-->",$content); 
	$content = htmlentities($content,ENT_COMPAT | ENT_HTML401,get_option('tqfep_encoding'));
	return $content;
}

function fix_p_after_edit ($content) {
	$content = str_replace("<!--", "<!--", $content);
	$content = str_replace("-->", "-->", $content);
	$content = preg_replace("/(-->)(\s|&nbsp;)*<p>(\s|&nbsp;)*(<\/p>)(\s|&nbsp;)*/","-->",$content); 
	return $content;
} 








</pre>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2012%2F01%2F28%2Fwordpress-3-3-tinymce-advanced-qtranslate-fix-style-problems%2F&#038;title=WordPress%203.3%20%E2%80%93%20TinyMCE%20Advanced%20%E2%80%93%20qTranslate%20%E2%80%93%20fix%20style%20problems" data-a2a-url="https://blog.blackbam.at/2012/01/28/wordpress-3-3-tinymce-advanced-qtranslate-fix-style-problems/" data-a2a-title="WordPress 3.3 – TinyMCE Advanced – qTranslate – fix style problems"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2012/01/28/wordpress-3-3-tinymce-advanced-qtranslate-fix-style-problems/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress improved user search (first name, last name, email) in backend</title>
		<link>https://blog.blackbam.at/2011/06/27/wordpress-improved-user-search-first-name-last-name-email-in-backend/</link>
					<comments>https://blog.blackbam.at/2011/06/27/wordpress-improved-user-search-first-name-last-name-email-in-backend/#comments</comments>
		
		<dc:creator><![CDATA[Blackbam]]></dc:creator>
		<pubDate>Mon, 27 Jun 2011 22:35:01 +0000</pubDate>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP Scripts]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[search]]></category>
		<guid isPermaLink="false">https://blog.blackbam.at/?p=1457</guid>

					<description><![CDATA[Recently, when working on a WordPress website for a huge amount of users, a customer was unsatisfyied with the WordPress backend search for users. The default backend search only is searching for your search string in usernames, but not for first name, last name or email of users. &#160; As most WordPress projects are barely [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Recently, when working on a WordPress website for a huge amount of users, a customer was unsatisfyied with the WordPress backend search for users. The default backend search only is searching for your search string in usernames, but not for first name, last name or email of users.</p>
<p>&nbsp;</p>
<p>As most WordPress projects are barely designed to have a huge amoung of users, this is not necessary in most cases. Anyway, the following code will help with this problem &#8211; add this to your functions.php-file and the WordPress user search will scan first name, last name and e-mail of every user.</p>
<p>&nbsp;</p>
<p style="text-align:center;"><a href="http://wordpress.org/extend/plugins/improved-user-search-in-backend/">Download the official WordPress Plugin</a></p>
<div class="code_title">How the Plugin basically works (code overview of Version 1.2)</div>
<pre lang="php">
 
   // the actual improvement of the query
    function user_search_by_multiple_parameters($wp_user_query) {
        if(false === strpos($wp_user_query -> query_where, '@') && !empty($_GET["s"])) {

            global $wpdb;

            $uids=array();

			// get the custom meta fields to search
			$iusib_custom_meta = get_option('iusib_meta_fields');
			$iusib_cma = array_map('trim', explode(",",$iusib_custom_meta));

			$iusib_add = "";
			// the escaped query string
			$qstr = mysql_real_escape_string($_GET["s"]);
			
			// add all custom fields into the query
			if(!empty($iusib_cma)) {
				$iusib_add = " OR meta_key='".implode("' OR meta_key='",$iusib_cma)."'";
			}

            $usermeta_affected_ids = $wpdb -> get_results("SELECT DISTINCT user_id FROM ".$wpdb->base_prefix."usermeta WHERE (meta_key='first_name' OR meta_key='last_name'".$iusib_add.") AND LOWER(meta_value) LIKE '%".$qstr."%'");

            foreach($usermeta_affected_ids as $maf) {
                array_push($uids,$maf->user_id);
            }

            $users_affected_ids = $wpdb -> get_results("SELECT DISTINCT ID FROM ".$wpdb->base_prefix."users WHERE LOWER(user_nicename) LIKE '%".$qstr."%' OR LOWER(user_email) LIKE '%".$qstr."%'");

            foreach($users_affected_ids as $maf) {
                if(!in_array($maf->ID,$uids)) {
                    array_push($uids,$maf->ID);
                }
            }
			
            $id_string = implode(",",$uids);

            $wp_user_query -> query_where = str_replace("user_nicename LIKE '%".$qstr."%'", "ID IN(".$id_string.")", $wp_user_query -> query_where);
        }
        return $wp_user_query;
    }

</pre>
<p><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fblog.blackbam.at%2F2011%2F06%2F27%2Fwordpress-improved-user-search-first-name-last-name-email-in-backend%2F&#038;title=WordPress%20improved%20user%20search%20%28first%20name%2C%20last%20name%2C%20email%29%20in%20backend" data-a2a-url="https://blog.blackbam.at/2011/06/27/wordpress-improved-user-search-first-name-last-name-email-in-backend/" data-a2a-title="WordPress improved user search (first name, last name, email) in backend"><img src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.blackbam.at/2011/06/27/wordpress-improved-user-search-first-name-last-name-email-in-backend/feed/</wfw:commentRss>
			<slash:comments>74</slash:comments>
		
		
			</item>
	</channel>
</rss>
