<?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>Fri, 16 Jul 2010 13:05:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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[jquery]]></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: You can create a personalized plugin template by using my WordPress Plugin Template Creator When I  rewrote my WP-DenyHost 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 Pressography. It had most of what [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE</strong>: 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>
<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;">
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('wp_print_scripts', array(&amp;$this,'{plugin_slug}_script'));
	add_action(&quot;init&quot;, array(&amp;$this,&quot;{plugin_slug}_init&quot;));
}
</pre>
<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 (admin_print_scripts, wp_print_scripts etc). 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 wp_print_scripts hook to the plugin template (see the constructor above)  since it&#8217;s the generic load-script-hook. The wp_print_scripts hook adds the  {plugin_slug}_script function in which  I enqueue the scripts:</p>
<pre class="brush: php; gutter: false;">
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;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;">
&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;">
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];">
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>0</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 IP address. WP-DenyHost, written by me, prevents spammers from getting access to my site a second [...]]]></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" rel="wp-prettyPhoto[g745]"><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" rel="wp-prettyPhoto[g745]">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>

		<guid isPermaLink="false">http://www.soderlind.no/?p=584</guid>
		<description><![CDATA[The Delicious tagroll for WordPress plugin adds a new shortcode to WordPress, the shortcode. The shortcode creates a tag cloud or a list of tags (see parameters below). Demo: http://soderlind.no/bookmarks/ Plugin: You&#8217;ll find the plugin at http://wordpress.org/extend/plugins/delicious-tagroll-shortcode/ Installation: Download the plugin and save it in wp-content/plugins (remember to activate in Plugins) or wp-content/mu-plugins or install [...]]]></description>
			<content:encoded><![CDATA[<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><a href="http://soderlind.no/code/view/ps_delicious_tagroll.php"></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" rel="wp-prettyPhoto[g584]">Add the shortcode to a Page</a>. The shortcode supports the following parameters (the parameters are also &#8220;documented&#8221; at<a href="http://delicious.com/help/tagrolls"> http://delicious.com/help/tagrolls</a>):</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>icon=&#8221;true or false&#8221; (default=&#8221;true&#8221;)</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>flow=&#8221;cloud or list&#8221; (default = &#8220;cloud&#8221;)</li>
<li>showname=&#8221;true or false&#8221;(default = &#8220;true&#8221;, show your delicious name)</li>
<li>showadd=&#8221;true or false&#8221;  (default = &#8220;true&#8221;, show add to network)</li>
<li>showcounts=&#8221;true or false&#8221; (default = &#8220;false&#8221;, show tag counts)</li>
<li>mincolor=&#8221;73adff&#8221;</li>
<li>maxcolor=&#8221;3274d0&#8243;</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 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>0</slash:comments>
		</item>
		<item>
		<title>CSS Editor for WP and WPMU</title>
		<link>http://soderlind.no/archives/2009/10/23/css-editor/</link>
		<comments>http://soderlind.no/archives/2009/10/23/css-editor/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 23:20:08 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://www.soderlind.no/?p=487</guid>
		<description><![CDATA[Still work in progress, but here&#8217;s a teaser: The Soderlind CSS Editor will be ready when it&#8217;s done (that is, I don&#8217;t have a release date) Prerequisites: WordPress and WordPress MU 2.8.4 or newer PHP 5.x The Sandbox theme It will use HTML Purifier to validate the CSS code before it&#8217;s saved. Here&#8217;s a peek [...]]]></description>
			<content:encoded><![CDATA[<p>Still work in progress, but here&#8217;s a teaser:</p>
<p><a href="http://soderlind.no/wp-content/uploads/2009/10/css-editor.swf" rel="wp-prettyPhoto[g487]"><img class="aligncenter size-medium wp-image-497" title="CSS Editor" src="http://soderlind.no/wp-content/uploads/2009/10/FirstFrame-300x167.jpg" alt="CSS Editor" width="300" height="167" /></a><br />
<span id="more-487"></span></p>
<ul>
<li>The Soderlind CSS Editor will be ready when it&#8217;s done (that is, I don&#8217;t have a release date)</li>
<li>Prerequisites:
<ul>
<li>WordPress and WordPress MU 2.8.4 or newer</li>
<li>PHP 5.x</li>
<li>The <a href="http://www.plaintxt.org/themes/sandbox/">Sandbox</a> theme</li>
</ul>
</li>
<li>It will use <a href="http://htmlpurifier.org/">HTML Purifier</a> to validate the CSS code before it&#8217;s saved.</li>
</ul>
<p>Here&#8217;s a peek at the code:</p>
<pre class="brush: php;">
class ps_sandbox_editor {
	private $url = &quot;&quot;;
	private $urlpath = &quot;&quot;;

	function __construct($urlpath,$url) {

		$this-&gt;urlpath = $urlpath;
		$this-&gt;url = $url;

		if (!is_admin()) {
			add_filter('stylesheet_uri',array(&amp;$this,'ps_sandbox_stylesheet_uri'),10,2);
		} else {
			add_action('init',array(&amp;$this,'ps_sandbox_editor_load_l10n'));
			add_action('admin_menu',array(&amp;$this,'ps_sandbox_editor_add_admin_subpanel'));
			add_filter('attachment_fields_to_edit', array(&amp;$this,'ps_sandbox_editor_modify_media_form'), 11, 2);
			add_filter('media_send_to_editor', array(&amp;$this,'ps_sandbox_editor_media_send_to_editor'), 11, 3);
			if ($_GET['page'] == 'ps_sandbox_editor.php') {
				wp_enqueue_script('thickbox');
				wp_enqueue_style('thickbox');
				wp_enqueue_script('media-upload');
			}
		}
	}

	function ps_sandbox_editor_add_admin_subpanel() {
		get_currentuserinfo();
		if (is_site_admin()) {
			add_submenu_page('wpmu-admin.php',__('CSS Editor Settings','ps_sandbox_editor'),__('CSS Editor Settings','ps_sandbox_editor'), 'administrator', basename(__FILE__), 'ps_sandbox_editor_adminpage');
		}
		if( 'Sandbox'==get_option('current_theme') ) {
			$themehook = add_theme_page( __('CSS Editor','ps_sandbox_editor'),__('CSS Editor','ps_sandbox_editor'), 'administrator', basename(__FILE__), array(&amp;$this,'ps_sandbox_editor_themepage'));
			add_action( &quot;admin_print_scripts-$themehook&quot;, array(&amp;$this,'ps_sandbox_editor_enqueue_scripts') );
		}
	}
	.
	.
	.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2009/10/23/css-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AHP Sitewide Recent Posts Widget for WPMU</title>
		<link>http://soderlind.no/archives/2009/03/04/ahp-sitewide-recent-posts-widget-for-wpmu/</link>
		<comments>http://soderlind.no/archives/2009/03/04/ahp-sitewide-recent-posts-widget-for-wpmu/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 12:23:44 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://www.soderlind.no/?p=382</guid>
		<description><![CDATA[AHP Sitewide Recent Posts Widget for WPMU makes it  easy to add and configure the AHP Sitewide Recent Posts plugin. Prerequisite: AHP Sitewide Recent Posts plugin Version history (change log): 0.9 (Mars 4 2009) Initial release Installation: Download the latest zip file and extract the files Copy ahp_recent_posts_widget_ps.php to wp-content/mu-plugins Copy ahp_recent_posts_widget_ps.po to wp-content/languages Configuration: [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://soderlind.no/wp-content/uploads/2009/03/ahp_recent_posts_widget_ps.png" rel="wp-prettyPhoto[g382]"><img class="size-medium wp-image-383 aligncenter" style="border: 1px solid #000000;" title="ahp_recent_posts_widget_ps" src="http://soderlind.no/wp-content/uploads/2009/03/ahp_recent_posts_widget_ps-300x221.png" alt="AHP Sitewide Recent Posts Configuration" width="300" height="221" /></a></p>
<p style="text-align: left;"><strong>AHP Sitewide Recent Posts Widget for WPMU</strong> makes it  easy to add and configure the <a href="http://wpmudev.org/project/AHP-Sitewide-Recent-Posts-for-WPMU">AHP Sitewide Recent Posts plugin</a>.</p>
<p style="text-align: left;"><span id="more-382"></span></p>
<p style="text-align: left;"><strong>Prerequisite:</strong></p>
<ul>
<li><a href="http://wpmudev.org/project/AHP-Sitewide-Recent-Posts-for-WPMU">AHP Sitewide Recent Posts plugin</a></li>
</ul>
<p><strong>Version history</strong> (change log):</p>
<p>0.9 (Mars 4 2009) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Initial release</li>
</ul>
<p><strong>Installation:</strong></p>
<ol>
<li>Download the latest zip file and extract the files</li>
<li>Copy ahp_recent_posts_widget_ps.php to wp-content/mu-plugins</li>
<li>Copy ahp_recent_posts_widget_ps.po to wp-content/languages</li>
</ol>
<p><strong>Configuration:</strong></p>
<ol>
<li>Go to <em>Site Admin-&gt;AHP Sitewide Recent Posts configuration</em></li>
<li>In the WPMU dashboard, open <em>Appearance -&gt; Widgets</em> and add the widget to your theme</li>
<li>If you need to translate the plugin, in wp-content/languages:
<ol>
<li>Copy ahp_recent_posts_widget_ps.po to ahp_recent_posts_widget_ps-<a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html#Country-Codes">countrycode</a>_<a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_15.html#Language-Codes">LANGUAGECODE</a>.po e.g: ahp_recent_posts_widget_ps-no_NB.po</li>
<li>Edit the file using <a href="http://www.poedit.net/">poedit</a> or its like, and save the .mo file</li>
</ol>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2009/03/04/ahp-sitewide-recent-posts-widget-for-wpmu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>toksta* chat plugin for BuddyPress</title>
		<link>http://soderlind.no/archives/2009/02/27/toksta-chat-plugin-for-buddypress/</link>
		<comments>http://soderlind.no/archives/2009/02/27/toksta-chat-plugin-for-buddypress/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 22:17:12 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://www.soderlind.no/?p=330</guid>
		<description><![CDATA[The toksta* chat plugin for BuddyPress makes it easy to add toksta* chat and webcam to your BuddyPress site. The plugin doesn&#8217;t working any more. A new version will be released soon. Features: Chat widget, click on an online user to invite to a chat. Chatbar, shows friends online, number of users online, set online [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><script src="http://widgets.clearspring.com/o/46928cc51133af17/49a656f6657fba87/46928cc516a6a652/80bc4c2/-cpid/ba1ceaec9e11c7f5/autostart/false/widget.js" type="text/javascript"></script></p>
<p>The <strong>toksta* chat plugin for BuddyPress</strong> makes it easy to add <a href="http://www.toksta.com/en/liveconfig/">toksta* chat and webcam</a> to your BuddyPress site.</p>
<p style="text-align: center;"><span id="more-330"></span><br />
<strong><span style="color: #ff0000;">The plugin doesn&#8217;t working any more. A new version will be released soon.</span></strong></p>
<p><strong>Features</strong>:</p>
<ol>
<li><strong>Chat widget</strong>, click on an online user to invite to a chat.</li>
<li><strong>Chatbar</strong>, shows friends online, number of users online, set online status (online/offline) etc.</li>
<li><strong>Localized</strong> plugin , makes it easy to translate.</li>
<li><strong>Site admin</strong> control panel.</li>
</ol>
<p><strong>Prerequisite</strong>:</p>
<ol>
<li><a href="http://buddypress.org/download/">BuddyPress</a> (doh!)</li>
<li><a href="http://www.toksta.com/en/liveconfig/configPageTwo">toksta* account</a> (it&#8217;s free)</li>
</ol>
<p><strong>Tested</strong>: Using my <a href="http://soderlind.no/archives/2008/10/04/my-digital-tool-chest/">Mac</a>, the plugin has been tested with</p>
<ul>
<li>IE 6.x on Windows XP</li>
<li>IE 7.x on Windows Vista</li>
<li>FireFox 3.x and Safari 3.2.1 on Mac OS X 10.5.6</li>
</ul>
<p><strong>Version history</strong> (change log):</p>
<p>0.93 (Mars 2 2009) Note: There is a file embedded within this post, please visit this post to download the file. <span style="color: #ff0000;">NOTE, does not support BuddyPress r1303+, <span style="color: #000000;">a version supporting r1303+ will be released soon</span></span></p>
<ul>
<li>Bugfix, fixed bug in ps_bp_toksta_my_friends.php (thanks Miguael)</li>
</ul>
<p>0.92 (Mars 1 2009) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Bugfix, max members to show in chat widget</li>
<li>Moved &#8220;max members to show in chat widget&#8221; to  <em>Site Admin-&gt;toksta* configuration</em></li>
<li>Updated ps_bp_toksta.po</li>
</ul>
<p>0.91 (February 27 2009) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Updated  the ps_bp_toksta.po file (previous version was empty, thank you Dan for pointing out this)</li>
</ul>
<p>0.9 (February 26 2009) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>First public release</li>
</ul>
<p><strong>Installation</strong>:</p>
<ol>
<li>Download the latest zip file and extract the files</li>
<li>Copy ps_bp_toksta.php to wp-content/mu-plugins</li>
<li>Copy ps_bp_toksta.po to wp-content/languages</li>
<li>Copy ps_bp_toksta_my_friends.php to your WordPress MU root folder</li>
</ol>
<p><strong>Configuration</strong>:</p>
<ol>
<li>In the BuddyPress dashboard, open <em>Site Admin -&gt; toksta* configuration</em>
<ol>
<li>Enter your Application ID and Application Password. You&#8217;ll find this in your control panel at <a href="http://www.toksta.com/en/liveconfig/">toksta*</a> (toksta* chat plugin for BuddyPress will not work until you&#8217;ve added the application id and application password).</li>
<li>Choose <em>Show Site Admin</em> if you want do show  site admin in Chat</li>
</ol>
</li>
<li>In the BuddyPress dashboard, open <em>Apperance -&gt; Widgets</em> (the Chat widget control is only available to the site admin)
<ol>
<li>Add the Chat widget to your BuddyPress theme.</li>
<li><span style="text-decoration: line-through;">Select Edit and set <em>Maximum number of members to show</em></span> Moved to <em>Site Admin -&gt; toksta* configuration</em></li>
</ol>
</li>
<li>Go to <a href="http://www.toksta.com/en/liveconfig/">toksta*</a> and configure the chat and chatbar. If you want to display a friends list in the chatbar, on the settings page, select import friends and add <span style="white-space: nowrap;">http://example.org</span>/ps_bp_toksta_my_friends.php?my_user_id=%userid% (<span style="white-space: nowrap;">example.org is your BuddyPress site).<br />
</span><span style="color: #ff0000;">Security tips</span>: rename ps_bp_toksta_my_friends.php to &#8220;my secret filename&#8221;.php</li>
<li>If you need to translate the plugin, in wp-content/languages:
<ol>
<li>Copy ps_bp_toksta.po to ps_bp_toksta-<a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html#Country-Codes">countrycode</a>_<a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_15.html#Language-Codes">LANGUAGECODE</a>.po e.g: ps_bp_toksta-no_NB.po</li>
<li>Edit the file using <a href="http://www.poedit.net/">poedit</a> or its like, and save the .mo file</li>
</ol>
</li>
</ol>
<p>If you are using the plugin, it would be nice if you posted the url to your site in a comment to this post.</p>
<p>btw, the music in the video is by <a href="http://www.ugress.com/">Ugress</a> playing <a href="http://www.last.fm/music/Ugress/_/Redrum">Redrum</a></p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2009/02/27/toksta-chat-plugin-for-buddypress/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>WP-DenyHost</title>
		<link>http://soderlind.no/archives/2008/04/18/wp-denyhost/</link>
		<comments>http://soderlind.no/archives/2008/04/18/wp-denyhost/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 00:20:14 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://www.soderlind.no/?p=265</guid>
		<description><![CDATA[This is a plugin that will block a spammer if he already has been tagged as a spammer. I use it together with the Akismet plugin. Akismet tags the spammer, and wp-denyhost prevents him from adding more comment spam. Core functionality : define('PS_DENYHOST_THRESHOLD', 5); function ps_denyhost() { global $wpdb; $suspect = $this-&#62;get_IP(); $count = (int) [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Times; line-height: normal; font-size: small;"> </span></p>
<div style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; font: normal normal normal 13px/19px Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; background-position: initial initial; background-repeat: initial initial; padding: 0.6em; margin: 0px;">
<p>This is a plugin that will block a spammer if he already has been tagged as a spammer. I use it together with the Akismet plugin. Akismet tags the spammer, and wp-denyhost prevents him from adding more comment spam.</p>
<p style="text-align: center;"><a href="http://soderlind.no/archives/2010/02/10/fighting-spam/"><img class="aligncenter size-medium wp-image-746" title="Fighting spam" src="http://soderlind.no/wp-content/uploads/2010/02/soderlind.no-spam-vs-visits-300x171.png" alt="" width="300" height="171" /></a></p>
<p><strong>Core functionality :</strong></p>
<pre class="brush: php;">
define('PS_DENYHOST_THRESHOLD', 5);
function ps_denyhost() {
    global $wpdb;

    $suspect = $this-&gt;get_IP();
    $count = (int) $wpdb-&gt;get_var(&quot;SELECT COUNT(comment_ID) FROM $wpdb-&gt;comments WHERE comment_approved = 'spam' AND comment_author_IP = '$suspect'&quot;);

    if ($count &gt; PS_DENYHOST_THRESHOLD) {
        exit;
    }
}
add_action('init', 'ps_denyhost');
</pre>
<p><strong>Download / install: </strong><a href="http://wordpress.org/extend/plugins/wp-denyhost/">http://wordpress.org/extend/plugins/wp-denyhost/</a></p>
<p><strong>View-source</strong>: <a href="http://soderlind.no/code/view/ps_wp_denyhost.php">http://soderlind.no/code/view/ps_wp_denyhost.php</a></p>
<p><strong>Changelog </strong>(updated 28.12.2009)<strong>:</strong></p>
<p><strong> </strong></p>
<div id="_mcePaste">v1.1.3: Fixed a minor bug<br />
v1.1.2: Added response 403 Forbidden<br />
v1.1.1: Added languages/wp-denyhost.pot</div>
<div id="_mcePaste">v1.1.0: Major rewrite. Added option page</div>
<div id="_mcePaste">v1.0.1: Replaced LIKE (‘%$suspect%’) with = ‘$suspect’ i.e. look for exact match</div>
<div id="_mcePaste">v1.0: Initial release</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2008/04/18/wp-denyhost/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sandbox Skin Editor</title>
		<link>http://soderlind.no/archives/2007/01/07/sandbox-skin-editor/</link>
		<comments>http://soderlind.no/archives/2007/01/07/sandbox-skin-editor/#comments</comments>
		<pubDate>Sun, 07 Jan 2007 14:26:59 +0000</pubDate>
		<dc:creator>PerS</dc:creator>
				<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://www.soderlind.no/archives/2007/01/07/sandbox-skin-editor/</guid>
		<description><![CDATA[Note: This is work in progress, when the editor is done, it will be announced here. I’m coding a skin editor for the sandbox theme. The code will be gpl, so you can adjust it to other themes, but I will only support the sandbox theme. Here’s a demo of the prototype: http://soderlind.no/demo/skineditor.php v1.0 will: [...]]]></description>
			<content:encoded><![CDATA[<p><em>Note: This is work in progress, when the editor is done, it will be announced here.</em></p>
<p>I’m coding a skin editor for the sandbox theme. The code will be gpl, so you can adjust it to other themes, but I will only support the sandbox theme.</p>
<p>Here’s a demo of the prototype: <a href="http://soderlind.no/demo/skineditor.php">http://soderlind.no/demo/skineditor.php</a></p>
<p>v1.0 will:</p>
<ul>
<li>support both WordPress 2.x and MU</li>
<li>have a preview</li>
<li>allow you to save a style to a temporary file prior to publishing it (for testing)</li>
<li>in MU, save the style to wp-content/blogs.dir/$wpdb->blogid/css</li>
<li>filter the saved css to prevent xss</li>
</ul>
<p>btw, if you don’t know the Sandbox theme, have a look here: <a href="http://www.plaintxt.org/themes/sandbox/">http://www.plaintxt.org/themes/sandbox/</a>. It is one of the easiest/best themes to use as a building block for creating your own themes using css.</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2007/01/07/sandbox-skin-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageManager 2.0</title>
		<link>http://soderlind.no/archives/2006/01/03/imagemanager-20/</link>
		<comments>http://soderlind.no/archives/2006/01/03/imagemanager-20/#comments</comments>
		<pubDate>Tue, 03 Jan 2006 00:12:32 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://soderlind.no/archives/2006/01/03/imagemanager-20/</guid>
		<description><![CDATA[R.I.P. ImageManager As of today (13.11.08), ImageManager is e.o.l. If you need image editing functionality in WordPress, head over to Scissors Current Version: 2.5.3 (supporting WordPress 2.5, WPMU 1.3.3 and WordPress 2.3.3) The ImageManager plugin integrates the stand alone PHP ImageManager + Editor with WordPress. The ImageManager provides an interface for browsing and uploading image [...]]]></description>
			<content:encoded><![CDATA[<h1 style="text-align: center;"><span style="color: #ff0000;">R.I.P. ImageManager</span></h1>
<p><span style="color: #ff0000;">As of today (13.11.08), ImageManager is e.o.l. If you need image editing functionality in WordPress, head over to</span> <a href="http://wordpress.org/extend/plugins/scissors/">Scissors</a></p>
<p><strong>Current Version: 2.5.3 (supporting WordPress 2.5, WPMU 1.3.3 and WordPress 2.3.3)</strong></p>
<p><strong><br />
</strong><strong> </strong></p>
<p><a href="http://soderlind.no/demo/imagemanager.php" target="_blank"><img style="padding-right: 0px; padding-left: 10px; padding-bottom: 4px; padding-top: 4px;" src="http://soderlind.no/wp-content/uploads/imagemanager_thumb.jpg" border="0" alt="click to view the ImageManager demo" width="310" height="193" align="right" /></a>The ImageManager plugin integrates the stand alone <a href="http://www.zhuo.org/htmlarea/docs/index.html">PHP ImageManager + Editor</a> with WordPress. The ImageManager provides an interface for browsing and uploading image files on/to your server. The Editor allows for some basic image manipulations such as, cropping, rotation, flip, and scaling.</p>
<p>View the <a href="http://soderlind.no/demo/imagemanager.php" target="_blank">flash demo</a>.</p>
<p><strong>Feature list</strong></p>
<ul>
<li>Simple image editor (crop, rotate, flip, and scale).</li>
<li>Upload and delete images.</li>
<li>Can be localized using the included ImageManager.pot file.<br />
<a href="http://soderlind.no/language-files/">Language files</a>: Chinese, English (default), German, Japanese, Norwegian and Spanish.</li>
<li>Supports the <a href="http://www.im-web-gefunden.de/wordpress-plugins/role-manager/">Role Manager</a> plugin. Capabilities: Upload Files, Make Direcory, Edit Image and Delete Image.</li>
<li>Add style using inline style or by setting a class name.</li>
<li>Insert the selected image as; the original image, thumbnail with popup (create mini galleries), thumbnail with a link to the original image, thumbnail, or a text link to the original image.</li>
<li><a href="http://www.huddletogether.com/projects/lightbox/">Lightbox</a> support. Added rel=&#8221;lightbox&#8221; to the <em>Thumbnail with link to image </em>and to <em>Link to image.</em> This should make it possible to use the <a href="http://zeo.unic.net.my/2006/01/17/wp-lightbox-js-wordpress-plugin/">WP lightbox JS</a> or other lightbox plugins together with ImageManager.</li>
<li>You can disable the native WordPress Upload Files.</li>
</ul>
<p><span id="more-229"></span></p>
<p><strong>Version History (Change log)</strong></p>
<p>v2.5.3 (June 14 2008) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li><strong>SECURITY UPDATE</strong>, everyone should upgrade to this version.</li>
<li>In WP 2.5 The setting &#8216;Remove WordPress Upload Files&#8217; will disable media buttons</li>
</ul>
<p>v2.5.2 (April 16 2008) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Added support for WPMU 1.3.3:<br />
Installation:</p>
<ol>
<li>Copy the ImageManager tree into mu-plugins</li>
<li>Edit ImageManager/wpmu/imagemanager-config-php</li>
<li>Move ImageManager/wpmu/imagemanager-bootstrap.php into mu-plugins</li>
</ol>
</li>
<li>Added support for WordPress 2.3.3</li>
<li>Minor fixes</li>
</ul>
<p>v2.5.1 (April 12 2008) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Minor fixes and clean ups:<br />
New <a href="http://soderlind.no/archives/2008/04/11/last-night-i-became-a-jquery-fan/">check for new version</a> routine added<br />
It doesn&#8217;t include Prototype.lite.js and Moo.fx.js any more<br />
The button is placed on the first line of the editor<br />
ps_imagemanager_quicktag.js is only included when needed<br />
Removed unnecessary  files</li>
</ul>
<p>v2.5.0 (April 10 2008) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Maintenance release, added support for WordPress 2.5 (i.e. no new features are added). It’s only tested with  WordPress 2.5 (but it should work in older versions) and in IE 7 / Firefox 2.x</li>
<li>Credits:<br />
All you guys who asked for this release. My plan was to kill this project, but you convinced me to continue <img src='http://soderlind.no/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Viper007, I used his <a href="http://www.viper007bond.com/wordpress-plugins/vipers-video-quicktags/">Viper’s Video Quicktags</a> plugging as a template for WordPress 2.5 integration</li>
<li>Note: As I said, this is a maintenance release. I will not add new features to ImageManager 2.x (but I&#8217;ll try to fix bugs), it really need a total rewrite. The next version will be available when it&#8217;s done (i.e. I don&#8217;t know when)</li>
</ul>
<p>v2.4.1 (January 29 2007) Note: There is a file embedded within this post, please visit this post to download the file.</p>
<ul>
<li>Minor fix, I forgot to update the tracking/version number.</li>
</ul>
<p>v2.4.0 (January 29 2007)</p>
<ul>
<li>Bugfix: <em>Error: openImageManager is not defined </em>and the popup should resize to correctly.</li>
</ul>
<p>v2.3.9 (January 24 2007)</p>
<ul>
<li>Bug fix</li>
</ul>
<p>v2.3.8 (January 24 2007)</p>
<ul>
<li>WordPress 2.1 support added. If you&#8217;re not running WordPress 2.1, you don&#8217;t need this update.</li>
</ul>
<p>v2.3.7 (April 2 2006) <a href="http://soderlind.no/download/ImageManager2.37.zip"></a></p>
<ul>
<li>Added <em>Insert Image Defaults</em> to the Option Page, which allows you to preconfigure how you&#8217;d like the images to be inserted.</li>
<li>Minor bug fixes</li>
</ul>
<p>v2.3.6 (Mars 27 2006)<a href="http://soderlind.no/download/ImageManager2.36.zip"></a></p>
<ul>
<li>Maintenance release, fixes short tags, missing popup and some minor bugs. Also, Ralph @ <a href="http://rainonline.ws/">http://rainonline.ws</a> has helped me cleaning the localization in the Option page. The incuded ImageManager.pot is updated</li>
</ul>
<p>v2.3.5 (Mars 23 2006)</p>
<ul>
<li><strong>SECURITY UPDATE</strong>, everyone should upgrade to this version.</li>
</ul>
<p>v2.3.4 (Mars 18 2006) <a href="http://soderlind.no/download/ImageManager2.34.zip"></a></p>
<ul>
<li>Added <em>Thumbnail with PopUp</em>, which allows you to create mini galleries.</li>
<li>Added <a href="http://www.huddletogether.com/projects/lightbox/">lightbox</a> support (rel=&#8221;lightbox&#8221;) to the <em>Thumbnail with link to image </em>and to <em>Link to image.</em> This should make it possible to use the <a href="http://zeo.unic.net.my/2006/01/17/wp-lightbox-js-wordpress-plugin/">WP lightbox JS</a> or other lightbox plugins together with ImageManager.</li>
<li>Added translation support for the Options page (please upload translations to the <a href="http://soderlind.no/forum/uploads.php">forum</a>).</li>
<li>Minor fixes; set border=&#8221;0&#8243; as default, added width and height to thumbnails.</li>
</ul>
<p>v2.3.3 (February 26 2006) <a href="http://soderlind.no/download/ImageManager2.33.zip"></a></p>
<ul>
<li>For you who are running the <a href="http://www.im-web-gefunden.de/wordpress-plugins/role-manager/" target="_blank">Role Manager</a> plugin, I&#8217;ve added two more capabilities; Edit Image and Delete Image.</li>
<li>All php short tags are converted to regular php opening tag.</li>
</ul>
<p>v2.3.2 (February 23 2006)</p>
<ul>
<li>Fixed a major bug in the image editor, if you&#8217;re running v2.3.0 or v2.3.1, this version is a must.</li>
</ul>
<p>v2.3.1 (February 21 2006)</p>
<ul>
<li>Added the title attribute (same value as the alt attribute).</li>
<li>Added the style attribute, which allows you to add inline style.</li>
<li>Added the class attribute, which allows you to set a class name.</li>
<li>The lang/ImageManager.pot file is updated to reflect these changes</li>
</ul>
<p>v2.3.0 (February 20 2006)</p>
<ul>
<li>Localization: Added gettext support, you can now translate the plugin (see below). If you don&#8217;t need localization, you don&#8217;t have to upgrade to v2.3.0.</li>
</ul>
<p>v2.2.0 (January 22 2006)</p>
<ul>
<li>Added the option to insert the selected image as; the original image, thumbnail with a link to the original image, thumbnail, or a text link to the original image.</li>
</ul>
<p>v2.1.3 (January 20 2006)</p>
<ul>
<li>bugfix for this error: &#8220;Parse error: parse error, unexpected T_VARIABLE in wp-content/plugins/ImageManager/classes/transform.php on line 130&#8243;</li>
</ul>
<p>v2.1.2 (January 17 2006)</p>
<ul>
<li>Added the option to disable the native WordPress Upload Files.</li>
<li>Fixed minor bugs</li>
</ul>
<p>v2.1.1 (January 13 2006)</p>
<ul>
<li>Changed the role names, ImageManager is now using the Upload Files and Make Direcory roles if you are using <a href="http://www.im-web-gefunden.de/wordpress-plugins/role-manager/" target="_blank">Role Manager</a>. After upgrading from the privious version, remember to set the new roles.</li>
<li>ImageManager will add a trailing slash to the library path if you forgot to add it.</li>
<li>All filenames are now in lower case and the calls to them reflect this. Remeber to flush the browser cache if you are upgrading from a previous version.</li>
</ul>
<p>v2.1.0 (January 8 2006)<a href="http://soderlind.no/download/ImageManager2.1.zip"></a></p>
<ul>
<li>Added support for the <a href="http://www.im-web-gefunden.de/wordpress-plugins/role-manager/" target="_blank">Role Manager Plugin</a>.</li>
</ul>
<p>v2.0.1 (January 4 2006)</p>
<ul>
<li>Fixed one major bug (wrong option name in get_option()) + some minor bugs</li>
</ul>
<p>v2.0.0 (January 3 2006)</p>
<ul>
<li>Initial release</li>
</ul>
<p><strong>To do / wish list</strong></p>
<p>These are the features I&#8217;m looking at. I might do them all, but I also might drop some.</p>
<ul>
<li><span style="text-decoration: line-through;">Add title attribute (same value as the alt attribute).</span></li>
<li><span style="text-decoration: line-through;">Add style attribute, which allows you to set the border, position the image etc.</span></li>
<li><span style="text-decoration: line-through;">Add class attribute, which allows you to set class name.</span></li>
<li>Set the default size for the thumbnails in articles</li>
<li>Save the edited images to a temp folder</li>
<li>Add &#8220;Insert thumbnail in Index.php page and full image in Single.php&#8221;</li>
</ul>
<p><strong>Upgrading</strong></p>
<p>If you are upgrading, delete the old version and continue with the installation instructions below (you might have to flush the browser cache (= ctrl+F5 or ctrl+r).</p>
<p><strong>Installation</strong></p>
<p>Installation is simple, just follow the instructions below.</p>
<p><strong>Step 1</strong></p>
<p>Extract the archive and save into your WordPress plugins directory. After you&#8217;ve done this you should have a diretory structure like this:</p>
<div style="text-align: center;"><img src="http://soderlind.no/wp-content/uploads/imagemanager_tree.png" alt="" width="330" height="229" /></div>
<p><strong>Step 2</strong></p>
<p>Activate the plugin<br />
<strong>Step 3</strong></p>
<p>Configure ImageManager on the Options &gt;&gt;&gt; ImageManager page. ImageManager will not be enabled until you have configured it.</p>
<p><strong>Step 4</strong></p>
<p>You are done, open the editor, click on the ImageManager icon and test it. If you can not upload images and / or the editor doesn&#8217;t create thumbnails, you must check file permissions. The web server must have write access to the image folder.</p>
<p>If you are LOST i.e. can&#8217;t find your base image directory, download Note: There is a file embedded within this post, please visit this post to download the file., extract LOST.php and put it in your base image directory. Access it from your brower i.e.: http://domain.com/wp-content/uploads/LOST.php (remember to remove the file when you are done. )</p>
<p><strong>Localization </strong></p>
<p>You can translate the plugin by copying the lang/ImageManager.pot to lang/LOCALE.po (LOCALE being your locale i.e. <em>fr</em> for French). Edit the LOCALE.po file using <a href="http://www.poedit.net/">poEdit</a> or an other editor. If you are using poEdit, create a locale/ImageManager-LOCAL.mo file. If you are using another editor, after you are done editing, run imagemanager-gettext.sh (in the lang directory) with your LOCALE as parameter, i.e.:</p>
<p><em>./imagemanager-gettext.sh fr</em></p>
<p><strong>Bugs/Comments</strong></p>
<p>Please post bugs or general comments in my forum: <a href="http://soderlind.no/forum">http://soderlind.no/forum</a></p>
<p><strong>Donate</strong></p>
<p>If you enjoy using this plugin or appreciate the hard work that goes into developing and maintaining it for the community, please consider donating. All funds will go into the support, maintenance, and development of future ImageManager releases. Thanks for your support.</p>
<p>I would like to thank everyone who has made a donation, I really appreciate your support!</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2006/01/03/imagemanager-20/feed/</wfw:commentRss>
		<slash:comments>107</slash:comments>
		</item>
		<item>
		<title>Search your WordPress blog using MSN Search and aggrss</title>
		<link>http://soderlind.no/archives/2005/02/02/search-your-wordpress-blog-using-msn-search-and-aggrss/</link>
		<comments>http://soderlind.no/archives/2005/02/02/search-your-wordpress-blog-using-msn-search-and-aggrss/#comments</comments>
		<pubDate>Wed, 02 Feb 2005 10:26:41 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[wp-plugins]]></category>

		<guid isPermaLink="false">http://soderlind.no/archives/2005/02/02/search-your-wordpress-blog-using-msn-search-and-aggrss/</guid>
		<description><![CDATA[Scott Mitchell wrote an article on how to use MSN Search to search your own site. The article triggered me, and using the aggrss plugin I wrote a &#8220;snippet&#8221; you can use to search your WordPress blog. Note, this is just a proof of concept and not supported.]]></description>
			<content:encoded><![CDATA[<p>Scott Mitchell  wrote an <a href="http://scottonwriting.net/sowblog/posts/3142.aspx">article</a> on how to use MSN Search to search your own site. The article triggered me, and using the <a href="http://soderlind.no/archives/2004/11/08/aggrss-an-rss-aggregator/">aggrss plugin</a> I wrote a &#8220;snippet&#8221; you can use to <a href="http://soderlind.no/aggress-msnsearch.php">search your WordPress blog</a>.</p>
<p>Note, this is just a proof of concept and <strong>not supported</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://soderlind.no/archives/2005/02/02/search-your-wordpress-blog-using-msn-search-and-aggrss/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
