<?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>soderlind.no &#187; wp-plugins</title>
	<atom:link href="http://soderlind.no/archives/category/wp-plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://soderlind.no</link>
	<description>I code for fun</description>
	<lastBuildDate>Wed, 01 Feb 2012 07:06:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress plugin: Remove &#8220;Comments are closed&#8221;</title>
		<link>http://soderlind.no/archives/2012/01/11/wordpress-plugin-remove-comments-are-closed/</link>
		<comments>http://soderlind.no/archives/2012/01/11/wordpress-plugin-remove-comments-are-closed/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 03:55:59 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=3098</guid>
		<description><![CDATA[On posts where comments are closed, the plugin will remove the text &#8216;Comments are closed.&#8217; The plugin supports any languages/text domains, and will remove the text from themes and plugins. Prerequisite: Since the plugin is filtering gettext, your theme/plugin must &#8230; <a href="http://soderlind.no/archives/2012/01/11/wordpress-plugin-remove-comments-are-closed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://soderlind.no/wp-content/uploads/2012/01/banner-772x250-e1326317189640-300x153.png" alt="" title="banner-772x250" width="300" height="153" class="aligncenter size-medium wp-image-3119" /></p>
<p>On posts where comments are closed, the plugin will remove the text &#8216;Comments are closed.&#8217; The plugin supports any languages/text domains, and will remove the text from themes and plugins. </p>
<p>Prerequisite: Since the plugin is <a href="http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext">filtering gettext</a>, your theme/plugin must be <a href="http://wp.smashingmagazine.com/2011/12/29/internationalizing-localizing-wordpress-theme/">localized</a>.</p>
<p>The plugin is available in the <a href="http://wordpress.org/extend/plugins/remove-comments-are-closed/">WordPress plugin directory</a></p>
<p><span id="more-3098"></span><br />
<strong>Plugin source code:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Plugin Name: Remove &quot;Comments are closed&quot;
Plugin URI: http://soderlind.no/archives/2012/01/11/wordpress-plugin-remove-comments-are-closed/
Description: On posts where comments are closed, the plugin will remove the text 'Comments are closed.' The plugin supports any languages/text domains, and will remove the text from themes and plugins.
Author: Per Soderlind
Version: 1.2
Author URI: http://soderlind.no/
*/

add_filter('gettext', 'ps_remove_comments_are_closed', 20, 3);

function ps_remove_comments_are_closed($translated_text, $untranslated_text, $domain) {
    if ( $untranslated_text == 'Comments are closed.' ) {
        return '';
    }
    return $translated_text;
}
?&gt;
</pre>
<p><strong>Changelog:</strong></p>
<ul>
<li>1.2 removed unnecessary code</li>
<li>1.1 initial public release</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2012/01/11/wordpress-plugin-remove-comments-are-closed/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adding custom headers to the WordPress plugin directory</title>
		<link>http://soderlind.no/archives/2012/01/10/adding-custom-headers-to-the-wordpress-plugin-directory/</link>
		<comments>http://soderlind.no/archives/2012/01/10/adding-custom-headers-to-the-wordpress-plugin-directory/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 20:34:57 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[custom header]]></category>
		<category><![CDATA[plugin directory]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=3090</guid>
		<description><![CDATA[As an experiment, Matt has turned on custom headers for the plugin directory. How to add a custom header: Make a 772×250 pixel jpeg or png In the plugin root directory, create a new directory &#8220;assets&#8221;: After you&#8217;ve created the &#8230; <a href="http://soderlind.no/archives/2012/01/10/adding-custom-headers-to-the-wordpress-plugin-directory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://soderlind.no/wp-content/uploads/2012/01/custom-plugin-header.png"><img src="http://soderlind.no/wp-content/uploads/2012/01/custom-plugin-header-300x205.png" alt="" title="Custom plugin header" width="300" height="205" class="aligncenter size-medium wp-image-3125" /></a><br />
As an experiment, Matt has turned on <a href="http://wpdevel.wordpress.com/2011/12/21/been-giving-a-lot-of-thought-to-how/">custom headers for the plugin directory</a>.</p>
<p><span id="more-3090"></span><br />
<strong>How to add a custom header:</strong></p>
<ol>
<li>Make a 772×250 pixel jpeg or png</li>
<li>In the plugin root directory, create a new directory &#8220;assets&#8221;:
<pre class="brush: bash; light: true; title: ; notranslate">mkdir assets</pre>
<p>After you&#8217;ve created the assets directory, you should have the following directories in the plugin root:</p>
<pre class="brush: bash; highlight: [3]; title: ; notranslate">
$ ls -l
total 0
drwxr-xr-x  4 per  _www  136 Jan 11 22:19 assets
drwxr-xr-x  3 per  _www  102 Jan 11 19:57 branches
drwxr-xr-x  3 per  _www  102 Jan 11 19:57 tags
drwxr-xr-x  5 per  _www  170 Jan 11 19:59 trunk
</pre>
</li>
<li>Copy the 772×250 pixel jpeg or png to the assets directory:
<pre class="brush: bash; light: true; title: ; notranslate">cp my-custom-plugin-header.png assets/banner-772x250.png</pre>
</li>
<li>Add the assets directory to svn:
<pre class="brush: bash; light: true; title: ; notranslate">svn add assets</pre>
</li>
<li>Check it in:
<pre class="brush: bash; light: true; title: ; notranslate">svn ci -m 'Adding custom header'</pre>
</li>
</ol>
<p>I&#8217;ve added a custom header to four of my plugins, please have a look: <a href="http://wordpress.org/extend/plugins/lorem-shortcode/">lorem shortcode</a>, <a href="http://wordpress.org/extend/plugins/webputty/">WebPutty Helper</a>, <a href="http://wordpress.org/extend/plugins/wp-denyhost/">WP-DenyHost</a> and <a href="http://wordpress.org/extend/plugins/remove-comments-are-closed/">Remove &#8220;Comments are closed&#8221;</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2012/01/10/adding-custom-headers-to-the-wordpress-plugin-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress and WebPutty</title>
		<link>http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/</link>
		<comments>http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 22:24:53 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[Cascading Style Sheets]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[syntax-highlighting CSS editor]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=3035</guid>
		<description><![CDATA[I&#8217;ve written a simple plugin that allows you to modify your WordPress sites using WebPutty. So what&#8217;s WebPutty? WebPutty is a simple CSS editing and hosting service. WebPutty gives you a syntax-highlighting CSS editor you can use from anywhere, the &#8230; <a href="http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://soderlind.no/wp-content/uploads/2011/12/webputty07.png"><img class="aligncenter size-medium wp-image-3036" title="Modify the style" src="http://soderlind.no/wp-content/uploads/2011/12/webputty07-300x225.png" alt="" width="300" height="225" /></a><br />
I&#8217;ve written a simple <a href="http://wordpress.org/extend/plugins/webputty/">plugin</a> that allows you to modify your WordPress sites using <a href="http://www.webputty.net/">WebPutty</a>.</p>
<p><span id="more-3035"></span><br />
<strong>So what&#8217;s WebPutty?</strong></p>
<pre style="padding-left: 30px;"><a href="http://www.webputty.net/">WebPutty</a> is a simple CSS editing and hosting service.
WebPutty gives you a syntax-highlighting CSS editor you can use from anywhere, the power of <a href="http://sass-lang.com/">SCSS</a> and <a href="http://compass-style.org/">Compass</a>, a side-by-side preview pane, and instant publishing with minification, compression, and automatic cache control.</pre>
<p>There&#8217;s a <a href="http://youtu.be/FNaN789JsUc?hd=1">video at YouTube</a></p>
<p><strong>Integration</strong>:<br />
In WordPress, add the WebPutty integration code to your theme, or add it using my plugin. The integration code looks like:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;//webputty.commondatastorage.googleapis.com/[KEY].css&quot; /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function(w,d){
	if(w.location!=w.parent.location||w.location.search.indexOf('__preview_css__')&gt;-1){
		var t=d.createElement('script');
		t.type='text/javascript';
		t.async=true;
		t.src='http://www.webputty.net/js/[KEY]';
		(d.body||d.documentElement).appendChild(t);
	}
})(window,document);
&lt;/script&gt;
</pre>
<p><strong>Plugin installtion and activation:</strong></p>
<ol>
<li>The plugin is available in the <a href="http://wordpress.org/extend/plugins/webputty/">WordPress Plugin Directory</a></li>
<li>Install and activate it.</li>
<li>Go to Settings -&gt; WebPutty Helper and add the integration code from <a href="http://www.webputty.net/">WebPutty</a> (see images below)</li>
</ol>
<p><strong>Integrating WebPutty and WordPress using my plugin:</strong><br />

<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/wepbutty01/' title='Add a new site'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/wepbutty01-100x100.png" class="attachment-thumbnail" alt="Add a new site" title="Add a new site" /></a>
<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/webputty02/' title='Add name and URL'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/webputty02-100x100.png" class="attachment-thumbnail" alt="Add name and URL" title="Add name and URL" /></a>
<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/webputty03/' title='Get code'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/webputty03-100x100.png" class="attachment-thumbnail" alt="Get code" title="Get code" /></a>
<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/webputty04/' title='Copy the code'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/webputty04-100x100.png" class="attachment-thumbnail" alt="Copy the code" title="Copy the code" /></a>
<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/webputty05/' title='Insert the code'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/webputty05-100x100.png" class="attachment-thumbnail" alt="Insert the code" title="Insert the code" /></a>
<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/webputty06/' title='Reload the page at WebPutty'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/webputty06-100x100.png" class="attachment-thumbnail" alt="Reload the page at WebPutty" title="Reload the page at WebPutty" /></a>
<a href='http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/webputty07/' title='Modify the style'><img width="100" height="100" src="http://soderlind.no/wp-content/uploads/2011/12/webputty07-100x100.png" class="attachment-thumbnail" alt="Modify the style" title="Modify the style" /></a>
</p>
<p><strong>Change log:</strong><br />
0.0.1: Initial version</p>
<p><strong>Todo:</strong></p>
<ul>
<li>Add option to remove local styles</li>
<li>Anything else? Please add your wishes as a comment below</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2011/12/20/wordpress-and-webputty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Front-end editor in WordPress 3.3 is easy</title>
		<link>http://soderlind.no/archives/2011/09/25/front-end-editor-in-wordpress-3-3/</link>
		<comments>http://soderlind.no/archives/2011/09/25/front-end-editor-in-wordpress-3-3/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 10:47:31 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=1866</guid>
		<description><![CDATA[Thanks to the work done by Andrew Ozz et al., adding a front-end editor in WordPress 3.3 is very simple. Syntax: So the simplest one is: Want better control?: Don&#8217;t want the quick tags?: Or you can do: Notes (from &#8230; <a href="http://soderlind.no/archives/2011/09/25/front-end-editor-in-wordpress-3-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thanks to the <a href="http://core.trac.wordpress.org/ticket/17144">work done by Andrew Ozz</a> et al., adding a front-end editor in WordPress 3.3 is very simple.</p>
<p>Syntax:</p>
<pre class="brush: php; title: ; notranslate">
wp_editor( $content, $editor_id, $settings = array() );

// default settings
$settings =   array(
	'wpautop' =&gt; true, // use wpautop?
	'media_buttons' =&gt; true, // show insert/upload button(s)
	'textarea_name' =&gt; $editor_id, // set the textarea name to something different, square brackets [] can be used here
	'textarea_rows' =&gt; get_option('default_post_edit_rows', 10), // rows=&quot;...&quot;
	'tabindex' =&gt; '',
	'editor_css' =&gt; '', // intended for extra styles for both visual and HTML editors buttons, needs to include the &lt;style&gt; tags, can use &quot;scoped&quot;.
	'editor_class' =&gt; '', // add extra class(es) to the editor textarea
	'teeny' =&gt; false, // output the minimal editor config used in Press This
	'dfw' =&gt; false, // replace the default fullscreen with DFW (needs specific css)
	'tinymce' =&gt; true, // load TinyMCE, can be used to pass settings directly to TinyMCE using an array()
	'quicktags' =&gt; true // load Quicktags, can be used to pass settings directly to Quicktags using an array()
);
</pre>
<p><span id="more-1866"></span><br />
So the simplest one is:</p>
<pre class="brush: php; title: ; notranslate">
echo '&lt;form action=&quot;&quot; method=&quot;post&quot; target=&quot;_blank&quot;&gt;';
wp_editor('&lt;p&gt;Some content&lt;/p&gt;', 'textarea01' );
echo '&lt;input type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/form&gt;'
</pre>
<p>Want better control?:</p>
<pre class="brush: php; title: ; notranslate">
$settings = array(
	'wpautop' =&gt; true,
	'media_buttons' =&gt; false,
	'tinymce' =&gt; array(
		'theme_advanced_buttons1' =&gt; 'bold,italic,underline,blockquote,|,undo,redo,|,fullscreen',
		'theme_advanced_buttons2' =&gt; '',
		'theme_advanced_buttons3' =&gt; '',
		'theme_advanced_buttons4' =&gt; ''
	),
	'quicktags' =&gt; array(
		'buttons' =&gt; 'b,i,ul,ol,li,link,close'
	)
);

echo '&lt;form action=&quot;&quot; method=&quot;post&quot; target=&quot;_blank&quot;&gt;';
wp_editor('&lt;p&gt;Some more content&lt;/p&gt;', 'textarea02', $settings );
echo '&lt;input type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/form&gt;';
</pre>
<p>Don&#8217;t want the quick tags?:</p>
<pre class="brush: php; title: ; notranslate">
$settings = array(
	'wpautop' =&gt; true,
	'media_buttons' =&gt; false,
	'tinymce' =&gt; array(
		'theme_advanced_buttons1' =&gt; 'bold,italic,underline,blockquote,|,undo,redo,|,fullscreen',
		'theme_advanced_buttons2' =&gt; '',
		'theme_advanced_buttons3' =&gt; '',
		'theme_advanced_buttons4' =&gt; ''
	),
	'quicktags' =&gt; false
);

echo '&lt;form action=&quot;&quot; method=&quot;post&quot; target=&quot;_blank&quot;&gt;';
wp_editor('&lt;p&gt;Some more content&lt;/p&gt;', 'textarea02', $settings );
echo '&lt;input type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/form&gt;';
</pre>
<p>Or you can do:</p>
<pre class="brush: php; title: ; notranslate">
add_filter( 'teeny_mce_buttons',tinytiny_buttons);

$settings = array(&quot;teeny&quot;=&gt;true,'media_buttons' =&gt; false,'quicktags' =&gt; false);

echo '&lt;form action=&quot;&quot; method=&quot;post&quot; target=&quot;_blank&quot;&gt;';
wp_editor('&lt;p&gt;Some more content&lt;/p&gt;', 'textarea04', $settings );
echo '&lt;input type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/form&gt;';

function tinytiny_buttons($buttons) {
	return array('bold', 'italic', 'underline', 'blockquote', 'separator', 'undo', 'redo', 'fullscreen');
}
</pre>
<p><strong>Notes</strong> (from the <a href="http://codex.wordpress.org/Function_Reference/wp_editor">codex</a>)</p>
<p>Note that the ID that is passed to the wp_editor() function can only be comprised of lower-case letters. No underscores, no hyphens. Anything else will cause the WYSIWYG editor to malfunction.</p>
<p>Once instantiated, the WYSIWYG editor cannot be moved around in the DOM. What this means in practical terms, is that you cannot put it in meta-boxes that can be dragged and placed elsewhere on the page</p>
<p><strong>More information</strong><br />
wp_editor() is located in <a href="http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/general-template.php#L1786">wp-includes/general-template.php</a><br />
The default settings are defined in <a href="http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/class-wp-editor.php#L31">wp-includes/class-wp-editor.php</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2011/09/25/front-end-editor-in-wordpress-3-3/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Fade away and hide the WordPress 3.1 Admin Bar</title>
		<link>http://soderlind.no/archives/2011/02/25/fade-away-wordpress-admin-bar/</link>
		<comments>http://soderlind.no/archives/2011/02/25/fade-away-wordpress-admin-bar/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 17:25:41 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[WordPress Admin Bar]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=1747</guid>
		<description><![CDATA[Instead of disabling the WordPress 3.1 Admin Bar, use this plugin, based on Codrops Fixed Fade Out Menu, to fade away the WordPress Admin Bar when you scroll down the page. The plugin is availeable in the WordPress Plugin Directory &#8230; <a href="http://soderlind.no/archives/2011/02/25/fade-away-wordpress-admin-bar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Instead of disabling the WordPress 3.1 Admin Bar, use this plugin,  based on <a href="http://tympanus.net/Tutorials/FixedFadeOutMenu/">Codrops Fixed Fade Out Menu</a>,  to <a href="http://screencast.com/t/13NEaWQBV">fade away the WordPress Admin Bar</a> when you scroll down the page. <strong>The plugin is availeable in the <a href="http://wordpress.org/extend/plugins/pers-fade-away-wp-admin-bar/">WordPress Plugin Directory</a></strong></p>
<p><span id="more-1747"></span></p>
<p><strong>Changelog</strong>:</p>
<ul>
<li>1.0.1 &#8211; Thanks to @TheFrosty, added is_admin_bar_showing()</li>
<li>1.0.0 &#8211; initial release</li>
</ul>
<p><strong>Source:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Plugin Name: PerS Fade Away WordPress Admin Bar
Plugin URI: http://soderlind.no/archives/2011/02/25/fade-away-wordpress-admin-bar/
Description: Fade away the WordPress Admin Bar when you scroll down the page.
Version: 1.0.1
Author: PerS
Author URI: http://soderlind.no
*/

/*
Change log:
	1.0.1 - Thanks to @TheFrosty, added is_admin_bar_showing()
    1.0.0 - initial release
*/

if (!class_exists('ps_pers_fade_wp_admin_bar')) {
    class ps_pers_fade_wp_admin_bar {
		var $url = '';
		function __construct(){
			$this-&gt;url = plugins_url(basename(__FILE__), __FILE__);
			add_action('wp_print_scripts', array(&amp;$this,'ps_pers_fade_wp_admin_bar_script'));
		}
		function ps_pers_fade_wp_admin_bar_script() {
				if (is_admin_bar_showing()) {
					wp_enqueue_script('jQuery('); // other scripts included with WordPress: http://tinyurl.com/y875age
					wp_enqueue_script('ps_pers_fade_wp_admin_bar_script', $this-&gt;url.'?ps_pers_fade_wp_admin_bar_javascript'); // embed javascript, see end of this file
				}
			}
	} //End Class
} //End if class exists statement

if (isset($_GET['ps_pers_fade_wp_admin_bar_javascript'])) {
	//embed javascript
	Header(&quot;content-type: application/x-javascript&quot;);
	echo&lt;&lt;&lt;ENDJS
/**
* @desc PerS Fade Away WP Admin Bar
* @author PerS - http://soderlind.no
*/
// Script from http://tympanus.net/codrops/2009/12/11/fixed-fade-out-menu-a-css-and-jquery-tutorial/
jQuery(document).ready(function(){
		jQuery(window).scroll(function(){
			var scrollTop = jQuery(window).scrollTop();
			if(scrollTop != 0)
				jQuery('#wpadminbar').stop().animate({'opacity':'0.2'},400);
			else
				jQuery('#wpadminbar').stop().animate({'opacity':'1'},400);
		});

		jQuery('#wpadminbar').hover(
			function (e) {
				var scrollTop = jQuery(window).scrollTop();
				if(scrollTop != 0){
					jQuery('#wpadminbar').stop().animate({'opacity':'1'},400);
				}
			},
			function (e) {
				var scrollTop = jQuery(window).scrollTop();
				if(scrollTop != 0){
					jQuery('#wpadminbar').stop().animate({'opacity':'0.2'},400);
				}
			}
		);
});

ENDJS;

} else {
	if (class_exists('ps_pers_fade_wp_admin_bar')) {
    	$ps_pers_fade_wp_admin_bar_var = new ps_pers_fade_wp_admin_bar();
	}
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2011/02/25/fade-away-wordpress-admin-bar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SimpleModal Janrain Engage</title>
		<link>http://soderlind.no/archives/2010/12/03/simplemodal-janrain-engage/</link>
		<comments>http://soderlind.no/archives/2010/12/03/simplemodal-janrain-engage/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 21:01:15 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[facebook connect]]></category>
		<category><![CDATA[JanRain]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[rpx]]></category>
		<category><![CDATA[SimpleModal]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=1123</guid>
		<description><![CDATA[Images: Login Register Welcome back SI Captcha SimpleModal Janrain Engage adds Janrain Engage (aka rpx) to your SimpleModal Login Download the plugin from the WordPress Plugin Directory If you like and use the plugin, please rate it (if you feel it deserves less &#8230; <a href="http://soderlind.no/archives/2010/12/03/simplemodal-janrain-engage/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p style="text-align: center;"><a href="http://soderlind.no/wp-content/uploads/2010/12/screenshot-1.png"><img class="aligncenter size-medium wp-image-1178" title="Login with your account at an identity provider or your local account" src="http://soderlind.no/wp-content/uploads/2010/12/screenshot-1-300x142.png" alt="" width="300" height="142" /></a></p>
<p style="text-align: center;">Images: <a title="Login with your account at an identity provider or your local account" href="http://soderlind.no/wp-content/uploads/2010/12/screenshot-1.png" class="colorbox-link">Login</a> <a title="Register using your account at an identity provider or create a local account" href="http://soderlind.no/wp-content/uploads/2010/12/screenshot-2.png" class="colorbox-link">Register</a> <a title="Easy login for returning users" href="http://soderlind.no/wp-content/uploads/2010/12/screenshot-3.png" class="colorbox-link">Welcome back</a> <a title="Integrated with SI Captcha" href="http://soderlind.no/wp-content/uploads/2010/12/screenshot-4.png" class="colorbox-link">SI Captcha</a></p>
<p>SimpleModal Janrain Engage adds <a href="http://wordpress.org/extend/plugins/rpx/">Janrain Engage</a> (aka rpx) to your <a href="http://wordpress.org/extend/plugins/simplemodal-login/">SimpleModal Login</a></p>
<p><strong>Download the plugin from the <a href="http://wordpress.org/extend/plugins/simplemodal-janrain-engage/screenshots/">WordPress Plugin Directory</a></strong></p>
<p>If you like and use the plugin, <a href="http://wordpress.org/extend/plugins/simplemodal-janrain-engage/">please rate it</a> (if you feel it deserves less than 5 stars, please tell me why in the comment field below, and I&#8217;ll try to make it better)</p>
<p><span id="more-1123"></span></p>
<div><strong>Changelog</strong></div>
<div>
<ul>
<li>1.2.9 Bugfix, fixed bad path to language file. Many thanks to vinoowijn1 for pointing out this bug.</li>
<li>1.2.8 Bugfix (removed the spinner/loading icon)</li>
<li>1.2.7 Fixed bug that prevented using LinkedIn and Twitter as a identity provider. My bad, many thanks to mattp and Robert for pointing out this bug.</li>
<li>1.2.5 Added &#8220;set modal width&#8221; in the settings page + minor bug fixes</li>
<li>1.2.0 I should have read the Janrain Engage doc a litle better, discovered a paramenter for the inline widget and &#8220;had&#8221; to rewrite the plugin. Now you can change the heading above the Janrain Engage widget using the ps_simplemodal_janrain_engage.pot file</li>
<li>1.1.1 Minor style fix</li>
<li>1.1.0 Added language support for the Janrain Engange embedded widget and updated the ps_simplemodal_janrain_engage.pot file</li>
<li>1.0.0 Initial release</li>
</ul>
</div>
<div><strong>Requirements</strong></div>
<div id="_mcePaste">
<ul>
<li>PHP: 5.2.x or newer</li>
<li><a href="http://wordpress.org/extend/plugins/simplemodal-login/">SimpleModal Login</a>
<ul>
<li>Install and test. I try not to mess with the css (see below), so you should be able to <a href="http://wordpress.org/extend/plugins/simplemodal-login/faq/">add your own theme</a>. The only modification I do to the css is:
<pre class="brush: css; title: ; notranslate">.simplemodal-container, #simplemodal-login-container {width:$m_width; height:auto;} // $m_width is set using the plugins settings page
.simplemodal-container form, #simplemodal-login-container form {overflow:auto;}
.simplemodal-login-credit {width:90%; padding-top:4px; text-align:center; bottom:0;}</pre>
</li>
</ul>
</li>
<li><a href="http://wordpress.org/extend/plugins/rpx/">Janrain Engage</a>
<ul>
<li>Install and test. Don&#8217;t forget to add your Engage API key.</li>
</ul>
</li>
</ul>
</div>
<div id="_mcePaste"><strong>Manual Installation</strong></div>
<div id="_mcePaste">
<ul>
<li>Upload the files to wp-content/plugins/simplemodal-janrain-engage/</li>
<li>Activate the plugin</li>
</ul>
</div>
<div><strong>Automatic Installation</strong></div>
<div id="_mcePaste">
<ul>
<li>On your WordPress blog, open the Dashboard</li>
<li>Go to Plugins-&gt;Install New</li>
<li>Search for &#8220;SimpleModal Janrain Engage&#8221;</li>
<li>Click on install to install SimpleModal Janrain Engage</li>
</ul>
</div>
<p><strong>Localization</strong></p>
<p>The Janrain Engage embedded widget support several languages. The SimpleModal Janrain Engange plugin will try to set the language for the embedded Janrain Engage widget based on your <a href="http://codex.wordpress.org/WordPress_in_Your_Language">locale</a>. If the plugin doesn&#8217;t find a match, it will use the fallback language set by you in the plugin settings page.</p>
<div>
<div>
<ul>
<li>In Settings -&gt; SimpleModal Janrain Engage, set the fallback language for the Janrain Engage widget. Default is English.</li>
<li>Translate the login/register/reset password form, by using the included ps_simplemodal_janrain_engage.pot file in the wp-content/plugins/simplemodal-janrain-engage/languages folder</li>
</ul>
</div>
</div>
<div><strong>Download</strong></div>
<p>The plugin is available in the <a href="http://wordpress.org/extend/plugins/simplemodal-janrain-engage/screenshots/">WordPress Plugin Directory</a></p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2010/12/03/simplemodal-janrain-engage/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>[lorem] shortcode</title>
		<link>http://soderlind.no/archives/2010/11/17/lorem-shortcode/</link>
		<comments>http://soderlind.no/archives/2010/11/17/lorem-shortcode/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 22:47:19 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[lorem ipsum]]></category>
		<category><![CDATA[wordpress shortcode]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=1110</guid>
		<description><![CDATA[Images: Shortcode, Nested shortcode, Example, Lightbox I needed dummy text for a blog I&#39;m working on, and since I like to code I wrote a simple plugin I&#39;d like to share, you&#39;ll find it &#160;in the WordPress Plugin Directory &#160; &#8230; <a href="http://soderlind.no/archives/2010/11/17/lorem-shortcode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-0.png"><img alt="" class="aligncenter size-medium wp-image-1246" src="http://soderlind.no/wp-content/uploads/2010/11/screenshot-1-300x225.png" style="width: 300px; height: 225px;" title="lorem shortcode" /></a></p>
<p style="text-align: center;">Images: <a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-0.png">Shortcode</a>, <a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-1.png">Nested shortcode</a>, <a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-2.png">Example</a>, <a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-3.png">Lightbox</a></p>
<p>I needed dummy text for a blog I&#39;m working on, and since I like to code I wrote a simple plugin I&#39;d like to share, you&#39;ll find it &nbsp;in the <a href="http://wordpress.org/extend/plugins/lorem-shortcode/">WordPress Plugin Directory</a></p>
<p><span id="more-1110"></span></p>
<p>&nbsp;</p>
<p style="margin: 1em 0px;"><strong>Plugin</strong>: You&rsquo;ll find the plugin at&nbsp;<a href="http://wordpress.org/extend/plugins/lorem-shortcode/" style="color: rgb(0, 85, 153); outline-style: none;">http://wordpress.org/extend/plugins/lorem-shortcode/</a></p>
<p style="margin: 1em 0px;"><strong>Installation</strong>:&nbsp;<a href="http://downloads.wordpress.org/plugin/delicious-tagroll-shortcode.zip" style="color: rgb(0, 85, 153); outline-style: none;">Download the plugin</a>&nbsp;and save it in wp-content/plugins (remember to activate in Plugins) or wp-content/mu-plugins or install it from inside WordPress in Plugins-&gt;Add New (search for &ldquo;lorem shortcode&rdquo;)</p>
<p style="margin: 1em 0px;"><strong>Usage</strong>:&nbsp;<a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-0.png" rel="lightbox[584]" style="color: rgb(0, 85, 153); outline-style: none;" title="Adding the shortcode to a Page">Add the shortcode to a Page</a>. The plugin contains two shortcodes, [lorem] and [loremimage], the [loremimage] shortcode <a href="http://soderlind.no/wp-content/uploads/2010/11/screenshot-1.png"><strong>can</strong> be nested</a> in the [lorem] shortcode. Supported parameters, all are optional:</p>
<p style="margin: 1em 0px 1em 40px;"><strong>[lorem]</strong></p>
<p>&nbsp;</p>
<ul>
<li style="margin: 1em 0px 1em 40px;">p=&quot;3&quot; Number of paragraphs. Default is 5</li>
<li style="margin: 1em 0px 1em 40px;">l=&quot;7&quot;, Number of lines per paragraph. Default is 3</li>
<li style="margin: 1em 0px 1em 40px;">align=&quot;right&quot; This tells how you&#39;d like to allign a nested shortcode. There are two alternatives, left or right. Default is right</li>
</ul>
<p style="margin: 1em 0px 1em 40px;"><strong>[loremimage]</strong></p>
<p style="margin: 1em 0px 1em 40px;">The loremimage is created using&nbsp;&nbsp;<a href="http://dummyimage.com/ ">http://dummyimage.com/</a>, and hence the shortcode supports the same parameters as&nbsp;&nbsp;<a href="http://dummyimage.com/ ">http://dummyimage.com/</a></p>
<ul>
<li style="margin: 1em 0px 1em 40px;">size=&quot;400&#215;400&quot; Image size. Default is 300&#215;200.</li>
<li style="margin: 1em 0px 1em 40px;">text=&quot;lorem ipsum&quot; Default is empty.</li>
<li style="margin: 1em 0px 1em 40px;">fgcolor=&quot;fff&quot; Image foreground color. Default is &quot;ccc&quot;.</li>
<li style="margin: 1em 0px 1em 40px;">bgcolor=&quot;ccc&quot;&nbsp;Image foreground color. Default is&nbsp;&nbsp;&quot;eee&quot;.</li>
<li style="margin: 1em 0px 1em 40px;">format=&quot;png&quot;, Image format. Default is &quot;png&quot;.&nbsp;</li>
</ul>
<p style="margin: 1em 0px 1em 40px;">I&#39;ve added two additional parameters/values</p>
<ul>
<li style="margin: 1em 0px 1em 40px;">size=&quot;thumb&quot; This will create a thumbnail, size based on your WordPress image settings. The thumb links to another image and support Lightbox et al (has attribute rel=&quot;lightbox[lorem]&quot;).</li>
<li style="margin: 1em 0px 1em 40px;">style=&quot;padding:5px;&quot; Default is empty</li>
</ul>
<p><strong>Changelog</strong>:</p>
<ul>
<li>1.1&nbsp;Added support for embedded shortcodes and added the [loremimage] short code. The [loremimage] can be used by itself. The image is created using <a href="http://dummyimage.com/">http://dummyimage.com/</a></li>
<li>1.0 Initial release</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2010/11/17/lorem-shortcode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress plugin template</title>
		<link>http://soderlind.no/archives/2010/03/04/wordpress-plugin-template/</link>
		<comments>http://soderlind.no/archives/2010/03/04/wordpress-plugin-template/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 10:21:45 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[admin_print_scripts]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins_url]]></category>
		<category><![CDATA[wp_enqueue_script]]></category>
		<category><![CDATA[wp_localize_script]]></category>
		<category><![CDATA[wp_print_scripts]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=873</guid>
		<description><![CDATA[UPDATE: As of WordPress 3.3, you shouldn&#8217;t use the wp_print_styles hook, I&#8217;ve updated the Adding JavaScript section below to reflect this change. You can create a personalized plugin template by using my WordPress Plugin Template Creator When I  rewrote my &#8230; <a href="http://soderlind.no/archives/2010/03/04/wordpress-plugin-template/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE</strong>: As of WordPress 3.3, <a href="http://wpdevel.wordpress.com/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/">you shouldn&#8217;t use the wp_print_styles hook</a>, I&#8217;ve updated the <a href="#adding_javascript">Adding JavaScript</a> section below to reflect this change.</p>
<blockquote><p>You can create a personalized plugin template by using my <a href="http://soderlind.no/wordpress-plugin-template-creator/">WordPress Plugin Template Creator</a></p></blockquote>
<p>When I  rewrote my <a href="http://soderlind.no/archives/2008/04/18/wp-denyhost/">WP-DenyHost</a> plugin, I wanted to do it as fast as possible. Instead of reinventing the wheel (again), I googled after a plugin template and found a very good one at <a href="http://pressography.com/plugins/wordpress-plugin-template/">Pressography</a>. It had most of what I needed in a plugin template.</p>
<p><span id="more-873"></span></p>
<h3>Modifications to the Pressography plugin template</h3>
<p>I&#8217;ve made some changes to the Pressography plugin template and I have explained them below. Before you continue to read this article, you should view the video at <a href="http://pressography.com/plugins/wordpress-plugin-template/">Pressography</a>, it presents the idea behind the plugin template and how it works. You get the full source of my modified plugin template by using my <a href="http://soderlind.no/wordpress-plugin-template-creator/">WordPress Plugin Template Creator</a></p>
<p>Being able to use new functionality in WordPress, I&#8217;ve decided that my plugins will only support WordPress one <a href="http://en.wikipedia.org/wiki/Software_versioning#Incrementing_sequences">minor version</a> lower than the current i.e. the current is 2.9 and hence my plugins and this plugin template will only supports WordPress 2.8 and later.</p>
<h3>plugins_url()</h3>
<p>WordPress 2.8 extended the <a href="http://codex.wordpress.org/Function_Reference/plugins_url">plugins_url</a>() function which makes it easy to find the plugin location. In the plugin template constructor, I use plugins_url() to find the languages files and the plugin itself:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
function __construct(){
	//Language Setup
	$locale = get_locale();
	$mo = plugins_url(&quot;/languages/&quot; . $this-&gt;localizationDomain . &quot;-&quot;.$locale.&quot;.mo&quot;, __FILE__);
	load_textdomain($this-&gt;localizationDomain, $mo);

	//&quot;Constants&quot; setup
	$this-&gt;url = plugins_url(basename(__FILE__), __FILE__);
	$this-&gt;urlpath = plugins_url('', __FILE__);

	//Initialize the options
	$this-&gt;getOptions();

	//Actions
	add_action(&quot;admin_menu&quot;, array(&amp;$this,&quot;admin_menu_link&quot;));
	add_action('admin_enqueue_scripts', array(&amp;$this,'{plugin_slug}_script')); // or wp_enqueue_scripts or login_enqueue_scripts
	add_action(&quot;init&quot;, array(&amp;$this,&quot;{plugin_slug}_init&quot;));
}
</pre>
<p><a name="adding_javascript"></a></p>
<h3>Adding JavaScript</h3>
<p>I&#8217;ve done it and I still see plugin authors adding scripts using the wp_head function. There&#8217;s only one correct way of adding scripts, and that&#8217;s using <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">wp_enqueue_script</a> via one of the script hooks (<del datetime="2012-01-10T19:23:36+00:00">admin_print_scripts, wp_print_scripts</del> <a href="http://wpdevel.wordpress.com/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/">wp_enqueue_scripts, login_enqueue_scripts and admin_enqueue_scripts</a>). wp_enqueue_script makes sure that the script loads in the correct order and that a script is only loaded once (e.g. If another plugin has already loaded jQuery, my plugin will not load jQuery, but use the script already loaded).</p>
<p>I&#8217;ve added the <del datetime="2012-01-10T19:23:36+00:00">wp_print_scripts</del> admin_enqueue_scripts hook to the plugin template (see the constructor above). Use the wp_enqueue_scripts or login_enqueue_scripts if you want to load the script on the front-end or login page. The <del datetime="2012-01-10T19:23:36+00:00">wp_print_scripts</del> admin_enqueue_scripts hook adds the  {plugin_slug}_script function in which  I enqueue the scripts:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
function {plugin_slug}_script() {
	wp_enqueue_script('jquery'); // other scripts included with WordPress: http://tinyurl.com/y875age
	wp_enqueue_script('jquery-validate', 'http://ajax.microsoft.com/ajax/jquery.validate/1.6/jquery.validate.min.js', array('jquery'));
	wp_enqueue_script('{plugin_slug}_script', $this-&gt;url.'?{plugin_slug}_javascript', array('jquery-validate')); // load embedded javascript
	wp_localize_script( '{plugin_slug}_script', '{plugin_slug}_lang', array(
		'required' =&gt; __('Please enter a number.', $this-&gt;localizationDomain),
		'number'   =&gt; __('Please enter a number.', $this-&gt;localizationDomain),
		'min'	   =&gt; __('Please enter a value greater than or equal to 1.', $this-&gt;localizationDomain),
	));
}
</pre>
<p>wp_localize_script, in the code above, creates a JavaScript object that passes the language strings to the embedded JavaScript:</p>
<pre class="brush: jscript; gutter: false; title: ; notranslate">
&lt;script type='text/javascript'&gt;
/* CDATA[ */
var {plugin_slug}_lang = {
	required: &quot;Please enter a number.&quot;,
	number: &quot;Please enter a number.&quot;,
	min: &quot;Please enter a value greater than or equal to 1.&quot;
};
/* ]]&gt; */
&lt;/script&gt;
</pre>
<h3>Embedding JavaScript</h3>
<p>When I write my plugins I like to keep the code in one file, that&#8217;s why I also embed the JavaScript code:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
if (isset($_GET['{plugin_slug}_javascript'])) {

	Header(&quot;content-type: application/x-javascript&quot;);
	echo&lt;&lt;&lt;ENDJS
/**
* @desc {Full Plugin Name}
* @author {Author} - {URL}
*/

jQuery(document).ready(function(){
	jQuery(&quot;#{plugin_slug}_options&quot;).validate({
		rules: {
			{plugin_slug}_option1: {
				required: true,
				number: true,
				min: 1
			}
		},
		messages: {
			{plugin_slug}_option1: {
				// the {plugin_slug}_lang object is define using wp_localize_script() in function {plugin_slug}_script()
				required: {plugin_slug}_lang.required,
				number: {plugin_slug}_lang.number,
				min: {plugin_slug}_lang.min
			}
		}
	});
});

ENDJS;
}
</pre>
<p>Note: If you prefer to keep your JavaScript code in a separate file, you can add it by adding the following to {plugin_slug}_script:</p>
<pre class="brush: php; gutter: false; highlight: [5]; title: ; notranslate">
function {plugin_slug}_script() {
	if (is_admin()){ // Only run when in wp-admin. Other conditional tags at http://codex.wordpress.org/Conditional_Tags
		wp_enqueue_script('jquery'); // other scripts included with WordPress: http://tinyurl.com/y875age
		wp_enqueue_script('jquery-validate', 'http://ajax.microsoft.com/ajax/jquery.validate/1.6/jquery.validate.min.js', array('jquery'));
		wp_enqueue_script('{plugin_slug}_script', $this-&gt;urlpath.'/myscript.js', array('jquery)); //load your script
		wp_localize_script( '{plugin_slug}_script', '{plugin_slug}_lang', array(
			'required' =&gt; __('Please enter a number.', $this-&gt;localizationDomain),
			'number'   =&gt; __('Please enter a number.', $this-&gt;localizationDomain),
			'min'	   =&gt; __('Please enter a value greater than or equal to 1.', $this-&gt;localizationDomain),
		));
	}
}
</pre>
<h3>WordPress Plugin Template Creator</h3>
<p>While writing this article, I decided to create a tool that will create a personalized plugin template. The <a href="http://soderlind.no/wordpress-plugin-template-creator/">WordPress Plugin Template Creator</a> takes your input, creates the necessary slugs and returns a personalized plugin template you can build your own plugin with.</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2010/03/04/wordpress-plugin-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fighting spam</title>
		<link>http://soderlind.no/archives/2010/02/10/fighting-spam/</link>
		<comments>http://soderlind.no/archives/2010/02/10/fighting-spam/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 17:48:42 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://soderlind.no/?p=745</guid>
		<description><![CDATA[I have reduced the number of  splog attacks on my site I use the Akismet and WP-DenyHost anti-spam plugins for WordPress. Akismet is a must-have and has, since I installed it, caught 304,056 spams (!!).  When Akismet catch a spammer, it logs the spammers &#8230; <a href="http://soderlind.no/archives/2010/02/10/fighting-spam/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have reduced the number of  <a href="http://en.wikipedia.org/wiki/Spam_blog">splog</a> attacks on my site</p>
<p style="text-align: center;"><a href="http://soderlind.no/wp-content/uploads/2010/02/soderlind.no-spam-vs-visits.png"><img class="aligncenter size-medium wp-image-746" title="soderlind.no spam vs visits" src="http://soderlind.no/wp-content/uploads/2010/02/soderlind.no-spam-vs-visits-300x171.png" alt="" width="300" height="171" /></a></p>
<p>I use the <a href="http://wordpress.org/extend/plugins/akismet/">Akismet</a> and <a href="http://soderlind.no/archives/2008/04/18/wp-denyhost/">WP-DenyHost</a> anti-spam plugins for WordPress. Akismet is a must-have and has, since I installed it, caught 304,056 spams (!!).  When Akismet catch a spammer, it logs the spammers IP address. WP-DenyHost, written by me, prevents spammers from getting access to my site a second time by blocking access from this IP address.</p>
<p>I installed WP-DenyHost in the fall 2009 and, as you can see from <a href="http://soderlind.no/wp-content/uploads/2010/02/soderlind.no-spam-vs-visits.png">the graph</a> above, the number of spam has dropped dramatically.</p>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2010/02/10/fighting-spam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>delicious tagroll for WordPress</title>
		<link>http://soderlind.no/archives/2009/11/18/delicious-tagroll-for-wordpress/</link>
		<comments>http://soderlind.no/archives/2009/11/18/delicious-tagroll-for-wordpress/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 21:13:17 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>
		<category><![CDATA[alpha]]></category>

		<guid isPermaLink="false">http://www.soderlind.no/?p=584</guid>
		<description><![CDATA[October 25th 2011: Delicious has removed their javascript feed, and the plugin doesn&#8217;t work any more. I writing a new version, and will release it soon. The new version is available at WordPress.org December 19th 2010: Rumor says that Delicious &#8230; <a href="http://soderlind.no/archives/2009/11/18/delicious-tagroll-for-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong><del>October 25th 2011: Delicious has removed their javascript feed, and the plugin doesn&#8217;t work any more. I writing <a href="http://soderlind.no/bookmarks/">a new version</a>, and will release it soon</del>. The new version is available at <a href="http://wordpress.org/extend/plugins/delicious-tagroll-shortcode/">WordPress.org</a></strong></p>
<p><strong>December 19th 2010: Rumor says that Delicious is shutting down, <a href="http://blog.delicious.com/blog/2010/12/whats-next-for-delicious.html">this is NOT true</a>.</strong></p>
<div><strong>The Delicious tagroll for WordPress plugin</strong> adds a new shortcode to WordPress, the <img class="alignnone size-full wp-image-605" style="vertical-align: middle; padding: 0 0 5px 0;" title="the shortcode" src="http://soderlind.no/wp-content/uploads/2009/11/ps_delicious_tagroll_shortcode.png" alt="the shortcode" width="243" height="20" /> shortcode. The shortcode creates a tag cloud or a list of tags (see parameters below).</div>
<div><a href="http://soderlind.no/bookmarks/"><img class="aligncenter size-medium wp-image-595" title="[ delicious_tagroll username=&quot;soderlind&quot; ]" src="http://soderlind.no/wp-content/uploads/2009/11/ps_delicious_tagroll-300x179.png" alt="ps_delicious_tagroll" width="300" height="179" /></a><span id="more-584"></span></div>
<p><strong>Demo</strong>: <a href="http://soderlind.no/bookmarks/">http://soderlind.no/bookmarks/</a></p>
<p><strong>Plugin</strong>: You&#8217;ll find the plugin at <a href="http://wordpress.org/extend/plugins/delicious-tagroll-shortcode/">http://wordpress.org/extend/plugins/delicious-tagroll-shortcode/</a></p>
<p><strong>Installation</strong>: <a href="http://downloads.wordpress.org/plugin/delicious-tagroll-shortcode.zip">Download the plugin</a> and save it in wp-content/plugins (remember to activate in Plugins) or wp-content/mu-plugins or install it from inside WordPress in Plugins-&gt;Add New (search for &#8220;delicious tagroll&#8221;)</p>
<p><strong>Usage</strong>: <a title="Adding the shortcode to a Page" href="http://soderlind.no/wp-content/uploads/2009/11/ps_delicious_tagroll_edit_page.png">Add the shortcode to a Page</a>. The shortcode supports the following parameters:</p>
<ul>
<li><strong>Mandatory</strong>:
<ul>
<li>username=&#8221;delicious username&#8221; (if you forget it, my tagroll is displayed instead <img src='http://soderlind.no/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</li>
</ul>
</li>
<li>Optional:
<ul>
<li>title=&#8221;tagroll title&#8221; (default =&#8221;My Delicious Tags&#8221;, use &#8221; &#8221; if you don&#8217;t want a tagroll title)</li>
<li><del>icon=&#8221;true or false&#8221; (default=&#8221;true&#8221;)</del></li>
<li>count=&#8221;number of tags&#8221; (default=&#8221;100&#8243;)</li>
<li>sort=&#8221;alpha or freq&#8221; (default = &#8220;alpha&#8221;)</li>
<li><del>flow=&#8221;cloud or list&#8221; (default = &#8220;cloud&#8221;)</del></li>
<li><del>showname=&#8221;true or false&#8221;(default = &#8220;true&#8221;, show your delicious name)</del></li>
<li><del>showadd=&#8221;true or false&#8221;  (default = &#8220;true&#8221;, show add to network)</del></li>
<li>showcounts=&#8221;true or false&#8221; (default = &#8220;false&#8221;, show tag counts)</li>
<li>mincount (default mincount=&#8221;10&#8243;), eg. show only tags with 10 or more links</li>
<li><del>mincolor=&#8221;73adff&#8221;</del></li>
<li><del>maxcolor=&#8221;3274d0&#8243;</del></li>
<li>minfont=&#8221;12&#8243;</li>
<li>maxfont=&#8221;35&#8243;</li>
</ul>
</li>
</ul>
<p><strong>Change log</strong></p>
<p><strong>v 2.0</strong></p>
<ul>
<li>Delicious removed their JavaScript feed so I had to do a <a href="http://plugins.trac.wordpress.org/changeset/455721/delicious-tagroll-shortcode/trunk/ps_delicious_tagroll.php">total rewrite</a>
<ul>
<li>Creates the tag cloud server-side (good for SEO) and lets you change the look and feel using the included style sheet.</li>
<li>Uses the <a href="http://delicious.com/help/feeds">Delicious RSS feed API</a></li>
<li>Caches the feed for one hour. Delicious might block you if you access their feed API too often.</li>
</ul>
</li>
</ul>
<ul>
<li>Some attributes are removed from the shortcode (you can change these using the ps_delicious_tagroll.css style sheet in the plugin directory):
<ul>
<li>mincolor</li>
<li>maxcolor</li>
<li>flow</li>
</ul>
</li>
<li>Also removed the attributes
<ul>
<li>showname</li>
<li>showadd</li>
<li>icon</li>
</ul>
</li>
<li>Added a new attribute:
<ul>
<li>mincount (default mincount=&#8221;10&#8243;), eg. show only tags with 10 or more links</li>
</ul>
</li>
</ul>
<p><strong>v 1.1</strong></p>
<ul>
<li>changed parameter name=&#8221;true&#8221; to showname=&#8221;true&#8221;</li>
<li>added missing parameter showcounts=&#8221;false&#8221;</li>
</ul>
<p><strong>v 1.0</strong></p>
<ul>
<li>initial release<strong><br />
</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2009/11/18/delicious-tagroll-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

