<?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>tobias.kochs-online.net &#187; Code</title>
	<atom:link href="http://tobias.kochs-online.net/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://tobias.kochs-online.net</link>
	<description></description>
	<lastBuildDate>Fri, 28 Oct 2011 17:07:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>OpenID 3.3.3 &amp; WordPress 2.9.x</title>
		<link>http://tobias.kochs-online.net/2010/08/openid-3-3-3-wordpress-2-9-x/</link>
		<comments>http://tobias.kochs-online.net/2010/08/openid-3-3-3-wordpress-2-9-x/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 15:45:47 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[get_usermeta]]></category>
		<category><![CDATA[get_user_meta]]></category>
		<category><![CDATA[OpenID 3.3.3]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[undefined function]]></category>
		<category><![CDATA[WordPress 2.9.2]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=312</guid>
		<description><![CDATA[Today was WordPress maintenance Sunday for me. I sorted out all the spam Akismet hadn&#8217;t caught and updated a few of the plugins we are using with WordPress. However I hadn&#8217;t enough time to update WordPress itself to version 3.0.1. &#8230; <a href="http://tobias.kochs-online.net/2010/08/openid-3-3-3-wordpress-2-9-x/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today was WordPress maintenance Sunday for me. I sorted out all the spam <a title="Akismet" href="http://akismet.com/">Akismet</a> hadn&#8217;t caught and updated a few of the plugins we are using with WordPress. However I hadn&#8217;t enough time to update WordPress itself to version <a title="WordPress: WordPress 3.0.1" href="http://wordpress.org/news/2010/07/wordpress-3-0-1/">3.0.1</a>. So we are still running 2.9.2. This caused some trouble when I was upgrading the <a title="WordPress Plugins: OpenID" href="http://wordpress.org/extend/plugins/openid/">OpenID plugin</a> to its latest version 3.3.3. Accessing the WordPress admin panel I got stuck with an PHP error reading</p>
<p><code>Call to undefined function get_user_meta()</code></p>
<p>WordPress codex tells us this function <a title="WordPress Codex: get_user_meta" href="http://codex.wordpress.org/Function_Reference/get_user_meta">get_user_meta</a> is not available in WordPress until version 3.0. It is replacing the now deprecated function <a title="WordPress Codex: get_usermeta" href="http://codex.wordpress.org/Function_Reference/get_usermeta">get_usermeta</a> which is available for earlier versions of WordPress. So I came up with a little hack to get the OpenID plugin running again for my ancient 2.9.2 version of WordPress.</p>
<p>Simply add these lines at the top of the plugin files admin_panels.php, server.php and server_ext.php:</p>
<p><code>/**<br />
* Hotfix for WordPress 2.x<br />
*/<br />
if ( !function_exists('get_user_meta') ) {<br />
function get_user_meta($user_id, $key, $single = false) {<br />
if ( $single == false )<br />
return array(get_usermeta($user_id, $key));<br />
else<br />
return get_usermeta($user_id, $key);<br />
}<br />
}</code></p>
<p>This code defines a new function get_user_meta in case it is not existing already. The new function calls the deprecated function get_usermeta and returns the result so the plugin is working as expected again.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2010/08/openid-3-3-3-wordpress-2-9-x/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Summer of Code 2009</title>
		<link>http://tobias.kochs-online.net/2009/03/summer-of-code-2009/</link>
		<comments>http://tobias.kochs-online.net/2009/03/summer-of-code-2009/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 21:54:35 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Private]]></category>
		<category><![CDATA[Corpus Christi]]></category>
		<category><![CDATA[Fronleichname]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[GSOC]]></category>
		<category><![CDATA[GSOC2009]]></category>
		<category><![CDATA[Spaß]]></category>
		<category><![CDATA[Summer of Code]]></category>
		<category><![CDATA[Weekend of Code]]></category>
		<category><![CDATA[Wochenende]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=198</guid>
		<description><![CDATA[Summer is just around the corner. At least it feels like that as soon as the rain stops falling these days. Fittingly the application period for Google&#8217;s Summer of Code 2009 started two days ago and so I thought, I &#8230; <a href="http://tobias.kochs-online.net/2009/03/summer-of-code-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Summer is just around the corner. At least it feels like that as soon as the rain stops falling these days. Fittingly the application period for <a title="Google Summer of Code 2009" href="http://socghop.appspot.com/program/home/google/gsoc2009">Google&#8217;s Summer of Code 2009</a> started two days ago and so I thought, I could announce one myself. Unfortunately I haven&#8217;t got a whole summer of spare time. Hence I&#8217;m calling for applications for the <strong><span style="text-decoration: line-through;">Summer</span> Weekend of Code 2009</strong>!</p>
<p>I chose the long weekend at <a title="Wikipedia: Corpus Christi (feast)" href="http://en.wikipedia.org/wiki/Corpus_Christi_(feast)">Corpus Christi</a>, which is 11th to 14th of June this year. In case you don&#8217;t have anything better to do and a software or hardware project in your mind you always wanted to realize (or at least start to), drop me a line. Of course I&#8217;d love to see an appetizer in the comments.</p>
<p>Suggestions for a supporting programme are welcome as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2009/03/summer-of-code-2009/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TinyMCE broken</title>
		<link>http://tobias.kochs-online.net/2008/09/tinymce-broken/</link>
		<comments>http://tobias.kochs-online.net/2008/09/tinymce-broken/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 14:11:57 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[0xEF 0xBB 0xBF]]></category>
		<category><![CDATA[Byte Order Mark]]></category>
		<category><![CDATA[Cannot modify header information]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[EF BB BF]]></category>
		<category><![CDATA[EFBBBF]]></category>
		<category><![CDATA[Headers already sent]]></category>
		<category><![CDATA[Notepad]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[TinyMCE]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=60</guid>
		<description><![CDATA[If WordPress&#8217; visual editor TinyMCE stops working after you have edited the config file tiny_mce_config.php and begins droping error messages telling you &#8220;Cannot modify header information &#8211; headers already sent&#8221;, make sure the config file doesn&#8217;t start with a byte-order &#8230; <a href="http://tobias.kochs-online.net/2008/09/tinymce-broken/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If WordPress&#8217; visual editor <a title="TinyMCE" href="http://tinymce.moxiecode.com/">TinyMCE</a> stops working after you have edited the config file tiny_mce_config.php and begins droping error messages telling you &#8220;Cannot modify header information &#8211; headers already sent&#8221;, make sure the config file doesn&#8217;t start with a <a title="Wikipedia: Byte-order mark" href="http://en.wikipedia.org/wiki/Byte-order_mark">byte-order mark</a> (e. g. 0xEF 0xBB 0xBF). It seems Windows Notepad writes these bytes to the file if you edit and save it with Notepad.</p>
<p>To get TinyMCE running again, <a title="WordPress Download" href="http://wordpress.org/download/">get a fresh copy</a> of the config file and overwrite your flawed one with it. If you need to edit the config file try a different editor. WordPad did the job for me. Just to make sure you are not running into the same problem again, check the edited file with a hex editor of your choice and see that it&#8217;s not starting with EF BB BF.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/09/tinymce-broken/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Zooomr Manager</title>
		<link>http://tobias.kochs-online.net/2008/09/wordpress-zooomr-manager/</link>
		<comments>http://tobias.kochs-online.net/2008/09/wordpress-zooomr-manager/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 13:39:00 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Fotos]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Upload]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WordPress Flickr Manager]]></category>
		<category><![CDATA[WordPress Zooomr Manager]]></category>
		<category><![CDATA[Zooomr]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=50</guid>
		<description><![CDATA[When Zooomr released it&#8217;s API to the public earlier this summer, I hoped someone would use it to add Zooomr support to WordPress. This topic became important again, when my brother began to fill up our precious webspace with more &#8230; <a href="http://tobias.kochs-online.net/2008/09/wordpress-zooomr-manager/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When <a title="Zooomr" href="http://www.zooomr.com/">Zooomr</a> released it&#8217;s <a title="Zooomr Services | API Documentation" href="http://www.zooomr.com/services/api/">API</a> to the public earlier this summer, I hoped someone would use it to add Zooomr support to <a title="WordPress" href="http://wordpress.org/">WordPress</a>. This topic became important again, when <a title="Adrian's Blog" href="http://adrian.kochs-online.net/">my brother</a> began to fill up our precious webspace with more and more photos. I recommended Zooomr to him as a hosting service for his pictures, but since he&#8217;s not that much of a techie, I started thinking about an easier way to add Zooomr photos to WordPress articles than looking up the photo URLs by hand at Zooomr. This is how I found <a title="WordPress Flickr Manager by Trent Gardner" href="http://tgardner.net/wordpress-flickr-manager/">Trent Gardner&#8217;s great WordPress Flickr Manager</a> – a plugin for just this purpose. Unfortunately the plugin is focussed on <a title="Flickr" href="http://www.flickr.com/">Flickr</a> as you can guess by the name.</p>
<p>So I had to rewrite some of the code to match it Zooomr&#8217;s API and to my honest surprise it worked quite well. The plugin reached sort of a first stable <a title="Wikipedia: Software release life cycle/Alpha" href="http://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha">alpha</a> and although not all features supported by WordPress Flickr Manager are working, the most important of them do. This is a feature matrix of WordPress Zooomr Manager:</p>
<table border="0">
<tbody>
<tr>
<td>Application authentification</td>
<td class="center"><span style="color: #99ff33;">working</span></td>
</tr>
<tr>
<td>Inserting photos into posts</td>
<td class="center"><span style="color: #99ff33;">working</span></td>
</tr>
<tr>
<td>JS Lightbox viewer</td>
<td class="center"><span style="color: #99ff33;">working</span></td>
</tr>
<tr>
<td>Sorting by smart sets</td>
<td class="center"><span style="color: #99ff33;">working</span></td>
</tr>
<tr>
<td>Managing your photos in WordPress</td>
<td class="center"><span style="color: #99ff33;">working</span></td>
</tr>
<tr>
<td>Plugin options</td>
<td class="center"><span style="color: #99ff33;">working</span></td>
</tr>
<tr>
<td>Uploading photos to Zooomr</td>
<td class="center"><span style="color: #ffff66;">untested</span></td>
</tr>
<tr>
<td>Inserting photos sets</td>
<td class="center"><span style="color: #ffff66;">untested</span></td>
</tr>
<tr>
<td>JS Highslide viewer</td>
<td class="center"><span style="color: #ffff66;">untested</span></td>
</tr>
<tr>
<td>Tag search</td>
<td class="center"><span style="color: #ff6600;">not working</span></td>
</tr>
<tr>
<td>Changing image size</td>
<td class="center"><span style="color: #ff6600;">buggy</span></td>
</tr>
<tr>
<td>Internationalization</td>
<td class="center"><span style="color: #ff6600;">unsupported</span></td>
</tr>
<tr>
<td>Labels changed from &#8220;Flickr&#8221; to &#8220;Zooomr&#8221;</td>
<td class="center"><span style="color: #ff6600;">nah</span></td>
</tr>
</tbody>
</table>
<p>Because I&#8217;m a bit short of spare time right now, I&#8217;m gonna release the modified plugin in it&#8217;s current state. I&#8217;d LOVE to see someone improve it or – even better – integrate both Flickr and Zooomr support into Trent&#8217;s WordPress Flickr Manager. If you need further information on the modified code or the Zooomr API, I will happily provide it for you as far as I can.</p>
<p style="text-align: center;"><a class="flickr-image" title="WordPress Zooomr Manager" rel="flickr-mgr" href="http://www.zooomr.com/photos/27212@Z01/5806578/"><img class="flickr-medium" src="http://static.zooomr.com/images/5806578_6bb510c619_m.jpg" alt="WordPress Zooomr Manager" /></a></p>
<p style="text-align: center;"><a title="Download WordPress Zooomr Manager (132 KB)" href="http://tobias.kochs-online.net/wp-content/uploads/2008/09/wordpress-zooomr-manager.zip">Download <strong>WordPress Zooomr Manager</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/09/wordpress-zooomr-manager/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Even more feeds</title>
		<link>http://tobias.kochs-online.net/2008/07/noch-mehr-feeds/</link>
		<comments>http://tobias.kochs-online.net/2008/07/noch-mehr-feeds/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 12:28:30 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[4 Sale]]></category>
		<category><![CDATA[APBoard]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[Duo]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[Gebot]]></category>
		<category><![CDATA[Gesuch]]></category>
		<category><![CDATA[JZR]]></category>
		<category><![CDATA[jzr-threewheeler.de]]></category>
		<category><![CDATA[marketplace]]></category>
		<category><![CDATA[Marktplatz]]></category>
		<category><![CDATA[News Feed]]></category>
		<category><![CDATA[Offer]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[Parsing]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Sale]]></category>
		<category><![CDATA[Simson]]></category>
		<category><![CDATA[Simsonforum]]></category>
		<category><![CDATA[simsonforum.de]]></category>
		<category><![CDATA[Threewheeler]]></category>
		<category><![CDATA[Verkauf]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=15</guid>
		<description><![CDATA[Like I promised to my brother, I started working on a news feed for the marketplace of jzr-threewheeler.de. Contrary to my expectations the problem in this case was not so much the caching mechanism I had to implement. I had &#8230; <a href="http://tobias.kochs-online.net/2008/07/noch-mehr-feeds/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Like I <a title="Lomax in da Feed: Comments" href="/2008/07/lomax-in-da-feed/#comment-9">promised</a> to my brother, I started working on a news feed for the <a title="jzr-threewheeler.de: 4 Sale" href="http://www.jzr-threewheeler.de/sale.htm">marketplace of jzr-threewheeler.de</a>. Contrary to my expectations the problem in this case was not so much the <a title="Wikipedia: Cache" href="http://en.wikipedia.org/wiki/Cache">caching</a> mechanism I had to implement. I had done that before and could reuse most of the code. What took me so long was the fact, that the marketplace page seems to be created and updated manually – resulting in an chaotic structure of both content and HTML. While containing over 181 000 lines only about 1 200 of them contain more than <a title="Wikipedia: Whitespace (computer science)" href="http://en.wikipedia.org/wiki/Whitespace_(computer_science)">whitespaces</a> actually. The content doesn&#8217;t follow any strict rule either. All this made it quite complex to write a good parser to process the information into a nice (and valid) feed.</p>
<p>Well, I managed to get it done and here it is:<br />
<a title="Feed for the jzr-threewheeler.de marketplace" href="http://threewheeler.feeds.kochs-online.net/jzr-threewheeler.xml">http://threewheeler.feeds.kochs-online.net/jzr-threewheeler.xml</a></p>
<p>I hadn&#8217;t finished the work on this, when Adrian came up with the next task for me. He wanted to have a news feed to follow all recent posts at <a title="Simsonforum.de" href="http://www.simsonforum.de/">simsonforum.de</a>. This was a way easier job to accomplish. Message board software does follow strict rules when compiling the pages so parsing them is quite easy because you don&#8217;t need to take all kinds of exceptions into account. So a set of simple rules is sufficient to process all the data. Using the board&#8217;s search function my PHP script downloads a list of all recently changed threads and generates the feed based on it. Because this produces quite heavy load on both involved servers (the forum&#8217;s and mine) results are cached for at least an hour before an update is made – another script using the caching code. <img src='http://tobias.kochs-online.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can find this feed here:<br />
<a title="Simsonforum.de recent posts feed" href="http://simsonforum.feeds.kochs-online.net/simsonforum.xml">http://simsonforum.feeds.kochs-online.net/simsonforum.xml</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/07/noch-mehr-feeds/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lomax in da Feed</title>
		<link>http://tobias.kochs-online.net/2008/07/lomax-in-da-feed/</link>
		<comments>http://tobias.kochs-online.net/2008/07/lomax-in-da-feed/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 16:31:53 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[Gebrauchtwagen]]></category>
		<category><![CDATA[kit car]]></category>
		<category><![CDATA[Lomax]]></category>
		<category><![CDATA[lomax-club.de]]></category>
		<category><![CDATA[News Feed]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[second hand]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=12</guid>
		<description><![CDATA[Again I have written a parser to create a RSS feed. Adrian told me about how much he&#8217;d appreciate a feed to follow all newly advertised Lomax kit cars over at the second-hand market of lomax-club.de. As is so often &#8230; <a href="http://tobias.kochs-online.net/2008/07/lomax-in-da-feed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Frollein Kuttner's Feed" href="/2008/07/Frollein-Kuttners-Feed/">Again</a> I have written a parser to create a <a title="Wikipedia: Web feed" href="http://en.wikipedia.org/wiki/Web_feed">RSS feed</a>. Adrian told me about how much he&#8217;d appreciate a feed to follow all newly advertised <a title="German Wikipedia: Lomax (Auto)" href="http://de.wikipedia.org/wiki/Lomax_%28Auto%29">Lomax kit cars</a> over at the <a title="Second-hand market for Lomax kit cars" href="http://www.lomax-club.de/gebrauchtmarkt/index.php">second-hand market of lomax-club.de</a>. As is so often the case with pre-web-2.0 sites there wasn&#8217;t a feed available, so I sat down and made one. Et voilà &#8211; there it is: <a title="Lomax second-hand market feed" href="http://lomax.feeds.kochs-online.net/lomax.xml">http://lomax.feeds.kochs-online.net/lomax.xml</a></p>
<p>I tried to make it as compliant as possible, but lacking most of the sellers/buyers e-mail addresses and being reluctant to publish mine to all those <a title="Wikipedia: Spambot" href="http://en.wikipedia.org/wiki/Spambot">spambots</a> out there, the feed isn&#8217;t completely <a title="Feed Validator: Lomax second-hand market feed" href="http://feedvalidator.org/check.cgi?url=http%3A%2F%2Flomax.feeds.kochs-online.net%2Flomax.xml">valid</a>. Maybe I&#8217;ll come up with a solution to that problem someday.</p>
<p>An optional &#8220;items=&#8221; <a title="Wikipedia: URI scheme" href="http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax">URI query string</a> may be used to define the maximum number of feed entries to be generated.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/07/lomax-in-da-feed/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Frollein Kuttner&#8217;s Feed</title>
		<link>http://tobias.kochs-online.net/2008/07/frollein-kuttners-feed/</link>
		<comments>http://tobias.kochs-online.net/2008/07/frollein-kuttners-feed/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 11:29:46 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[ARD]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[Kuttners Kleinanzeigen]]></category>
		<category><![CDATA[Neuigkeiten]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[News Feed]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Sarah Kuttner]]></category>
		<category><![CDATA[sarahkuttner.de]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=9</guid>
		<description><![CDATA[Being a longtime fan of Sarah Kuttner, I was happy to hear she&#8217;s producing a new little show these days. The announcement of &#8220;Kuttners Kleinanzeigen&#8221; was some weeks ago and I almost forgot until yesterday evening, so I checked her &#8230; <a href="http://tobias.kochs-online.net/2008/07/frollein-kuttners-feed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Being a longtime fan of <a title="Wikipedia: Sarah Kuttner" href="http://en.wikipedia.org/wiki/Sarah_Kuttner">Sarah Kuttner</a>, I was happy to hear she&#8217;s producing a new little show these days. The announcement of &#8220;<a title="Kuttners Kleinanzeigen" href="http://www.daserste.de/kuttnerskleinanzeigen/"><em>Kuttners Kleinanzeigen</em></a>&#8221; was some weeks ago and I almost forgot until yesterday evening, so I checked <a title="Sarah Kuttner" href="http://www.sarahkuttner.de/">her site</a> to see the exact air dates of her show. Being there I visited the news section and thought about reading it more regularly. So I wanted to add the <a title="Wikipedia: News feed" href="http://en.wikipedia.org/wiki/Web_feed">news feed</a> to my <a title="FeedReader" href="http://www.feedreader.com/">FeedReader</a>, but I had to discover there was no feed available.</p>
<p>Well, now there is. I wrote a little <a title="Wikipedia: Parsing" href="http://en.wikipedia.org/wiki/Parsing">parser</a> that converts all news entries into a nice, <a title="Feed Validator: Sarah Kuttner news feed" href="http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fkuttner.feeds.kochs-online.net%2Fkuttner.xml">(almost) well-formed</a> <a title="Wikipedia: RSS" href="http://en.wikipedia.org/wiki/RSS">RSS 2.0</a> feed. You can find it under <a title="RSS 2.0 Feed: Sarah Kuttner's news" href="'">http://kuttner.feeds.kochs-online.net/kuttner.xml</a>. Using the optional <a title="Wikipedia: URI scheme" href="http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax">query string</a> &#8220;items=&#8221; you can specify how many of the latest news items the feed should contain. Default is 10.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/07/frollein-kuttners-feed/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple blogs with a single WordPress installation</title>
		<link>http://tobias.kochs-online.net/2008/05/multiple-blogs-with-a-single-wordpress-installation/</link>
		<comments>http://tobias.kochs-online.net/2008/05/multiple-blogs-with-a-single-wordpress-installation/#comments</comments>
		<pubDate>Thu, 08 May 2008 00:12:31 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[configuration files]]></category>
		<category><![CDATA[einzelne]]></category>
		<category><![CDATA[einzige]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Konfiguration]]></category>
		<category><![CDATA[mehrere]]></category>
		<category><![CDATA[multiblog]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[single]]></category>
		<category><![CDATA[subdirectories]]></category>
		<category><![CDATA[subdomain]]></category>
		<category><![CDATA[subdomains]]></category>
		<category><![CDATA[Tabellen]]></category>
		<category><![CDATA[tables]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=5</guid>
		<description><![CDATA[When I started setting up the blogs some days ago, I began to create subdomains and subdirectories on the server where I could install WordPress. Soon I discovered, how complicated and prone to errors this procedure can be and started &#8230; <a href="http://tobias.kochs-online.net/2008/05/multiple-blogs-with-a-single-wordpress-installation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I started setting up the blogs some days ago, I began to create subdomains and subdirectories on the server where I could install <a title="WordPress" href="http://wordpress.org/">WordPress</a>. Soon I discovered, how complicated and prone to errors this procedure can be and started to think about alternatives allowing me to run several separate blogs while administrating and maintaining only a single software installation. You can find some more or less complex hacks for this floating around the net. In addition there exists a special multi user/multi blog version of WordPress called <a title="WordPress MU" href="http://mu.wordpress.org/">WordPress <sup>µ</sup></a>, but it seems it is turned mostly towards very large projects and uses a number of modifications of the original variant for this purpose. On the other hand there is an approach by Strider which is called <a title="Virtual Multiblog for WordPress" href="http://striderweb.com/nerdaphernalia/features/virtual-multiblog/">Virtual Multiblog</a> and looks quite feasible. However this looks a bit intricately at first glance because it seems to require an additional WordPress plugin.</p>
<p>Finally I discovered a very elegant way by myself: Because WordPress stores all settings of a blog – including articles, comments and users – in the MySQL tables defined in the file wp-config.php, it would be sufficient to use different configuration files depending on the used subdomain. So I modified the wp-config.php to simply evaluate the used subdomain and load a configuration based on the result. Which looks like this:</p>
<p><code>&lt;?php<br />
if ($_SERVER['SERVER_NAME'] == 'blog1.example.com')<br />
{<br />
require('wp-config.blog1.php');<br />
}<br />
else if ($_SERVER['SERVER_NAME'] == 'blog2.example.com')<br />
{<br />
require('wp-config.blog2.php');<br />
}<br />
?&gt;</code></p>
<p>The files wp-config.blog1.php and wp-config.blog2.php are just standard WordPress configuration scripts without a single line of extra code. Using different prefixes for the MySQL tables it even would be sufficient to have a single database to store all blogs. As simple as it is, as low-maintenance it is too, because WordPress updates don&#8217;t overwrite the new wp-config.php or the newly created configuration files. At the same time all blogs benefit from the update, of course.</p>
<p>[<strong>Update:</strong> It just caught my eye, that you might run into difficulties if you are running multiple blogs with the same plugin. If an upgrade of that plugin requires an update of the plugin's database table, you have to pay attention to update all of those tables (for every blog using the plugin)!]</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/05/multiple-blogs-with-a-single-wordpress-installation/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Multilingual blogging using WordPress</title>
		<link>http://tobias.kochs-online.net/2008/05/multilingual-blogging-using-wordpress/</link>
		<comments>http://tobias.kochs-online.net/2008/05/multilingual-blogging-using-wordpress/#comments</comments>
		<pubDate>Tue, 06 May 2008 12:50:52 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[bilingual]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[bloggen]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[Language Switcher]]></category>
		<category><![CDATA[mehrsprachig]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[quotes]]></category>
		<category><![CDATA[Quotes Collection]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[zweisprachig]]></category>

		<guid isPermaLink="false">http://tobias.kochs-online.net/?p=3</guid>
		<description><![CDATA[As said before, I wanted to blog bilingual in English and German for quite some time. Translating my posts into Swedish as well is a bit too much effort compared to the number of potential readers, I guess. Even though &#8230; <a href="http://tobias.kochs-online.net/2008/05/multilingual-blogging-using-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Let's Start!" href="/2008/05/lets-start/">As said before</a>, I wanted to blog bilingual in English and German for quite some time. Translating my posts into Swedish as well is a bit too much effort compared to the number of potential readers, I guess. Even though it&#8217;d be a good training of my language skills. Nevertheless I would like to have the possibility to do so and therefore the new blog system should not only support bilingual, but also multilingual posts. After searching around a bit, I found the <a title="WordPress Plugin: Language Switcher" href="http://www.poplarware.com/languageplugin.html">Language Switcher</a> WordPress Plugin which allows users to create multilingual posts, categories, blogroll links, comments (!) and even more by adding some simple tags.</p>
<p>The installation is quite easy as well, if you follow the given instructions. A bit more of a hassle was the internationalization of the <a title="WordPress Theme: Dust 3.17" href="http://themes.wordpress.net/columns/3-columns/3969/dust-317/">WordPress Theme Dust 3.17</a> I use. Every language needs to have a separate file translating all the text shown. PHP functions inside the code of themes or plugins replace this text with the translated text in a language the reader can choose. In case you have to add these functions by yourself, the Language Switcher plugin page provides instructions for this task, which allowed me to internationalize the <a title="WordPress Plugin: Quotes Collection" href="http://srinig.com/wordpress/plugins/quotes-collection/">Quotes Collection</a> plugin you can see to the right. In a few days I&#8217;m gonna send the changed to code to the plugin&#8217;s author Srini who I already contacted last week, so he can publish an internationalized version of his great plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias.kochs-online.net/2008/05/multilingual-blogging-using-wordpress/feed/langswitch_lang/en/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
	</channel>
</rss>

