<?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>Simon Ottenhaus</title>
	<atom:link href="http://familie-ottenhaus.de/simon/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://familie-ottenhaus.de/simon/blog</link>
	<description>Uni &#38; Software</description>
	<lastBuildDate>Tue, 29 Jun 2010 13:36:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dotfuscator CE + Explizite Schnittstellen- implementierung (Interface) = TypeLoadException: Die Methode GetEnumerator hat keine Implementierung</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/06/dotfuscator-ce-explizite-schnittstellen-implementierung-interface-typeloadexception-die-methode-getenumerator-hat-keine-implementierung/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/06/dotfuscator-ce-explizite-schnittstellen-implementierung-interface-typeloadexception-die-methode-getenumerator-hat-keine-implementierung/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 13:36:49 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Dotfuscator]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1108</guid>
		<description><![CDATA[Ich verwende Dotfuscator CE (Community Edition) um meine .Net Anwendungen zu schützen. 
Kürzlich ist dabei ein Fehler aufgetreten:
TypeLoadException: Die Methode GetEnumerator hat keine Implementierung
Das Problem bestand aber nur nachdem die Anwendung vom Dotfuscator bearbeitet wurde. Vorher funktionierte alles noch prima.
Aufgetreten war das Ganze, weil ich in einer Klasse zwei verschiedene IEnumerable&#60;T&#62; implementiert hatte.
Beispiel:

View Code CSHARP1
2
3
class [...]]]></description>
			<content:encoded><![CDATA[<p>Ich verwende Dotfuscator CE (Community Edition) um meine .Net Anwendungen zu schützen. </p>
<p>Kürzlich ist dabei ein Fehler aufgetreten:</p>
<blockquote><p>TypeLoadException: Die Methode GetEnumerator hat keine Implementierung</p></blockquote>
<p>Das Problem bestand aber nur nachdem die Anwendung vom Dotfuscator bearbeitet wurde. Vorher funktionierte alles noch prima.</p>
<p>Aufgetreten war das Ganze, weil ich in einer Klasse zwei verschiedene IEnumerable&lt;T&gt; implementiert hatte.<br />
Beispiel:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1108code2'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p11082"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1108code2"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">class</span> MyClass <span style="color: #008000;">:</span> IEnumerable<span style="color: #008000;">&lt;</span>ClassA<span style="color: #008000;">&gt;</span>, IEnumerable<span style="color: #008000;">&lt;</span>ClassB<span style="color: #008000;">&gt;</span> <span style="color: #000000;">&#123;</span>
...
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>In diesem Fall ist eine sogenannte <a href="http://msdn.microsoft.com/de-de/library/ms173157%28VS.80%29.aspx" target="_blank" class="liexternal">Explizite Schnittstellenimplementierung</a> notwendig. Dies hat der Dotfuscator offensichtlich nicht verstanden. Nachdem ich die Implementierung der Schnittstelle in eine extra Methode ausgelagert hatte und die Explizite Schnittstellenimplementierung entfernt hatte funktionierte alles wieder gut.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/06/dotfuscator-ce-explizite-schnittstellen-implementierung-interface-typeloadexception-die-methode-getenumerator-hat-keine-implementierung/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/06/dotfuscator-ce-explizite-schnittstellen-implementierung-interface-typeloadexception-die-methode-getenumerator-hat-keine-implementierung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows XP SP3 + Visual Studio 2010 (c#) = Bluescreen</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/05/windows-xp-sp3-visual-studio-2010-c-bluescreen/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/05/windows-xp-sp3-visual-studio-2010-c-bluescreen/#comments</comments>
		<pubDate>Tue, 25 May 2010 10:53:25 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Bluescreen]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1104</guid>
		<description><![CDATA[Nachdem ich angefangen habe einen Teil meiner Projekte in von VS 2008 nach VS 2010 zu konvertieren musste ich Visual Studio 2010 auch auf allen Entwicklungsrechnern installieren. Die Migration der Projekte und build-skripte verlief erstaunlich problem- und reibungslos.
Probleme gab es nur auf dem letzten Windows XP PC. Visual Studio konnte zwar problemlos geöffnet, das Projekt [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich angefangen habe einen Teil meiner Projekte in von VS 2008 nach VS 2010 zu konvertieren musste ich Visual Studio 2010 auch auf allen Entwicklungsrechnern installieren. Die Migration der Projekte und build-skripte verlief erstaunlich problem- und reibungslos.</p>
<p>Probleme gab es nur auf dem letzten Windows XP PC. Visual Studio konnte zwar problemlos geöffnet, das Projekt auch gebaut und gestartet werden. Wenn VS 2010 allerdings geschlossen wurde verabschiedete sich Windows XP jedes Mal ausnahmslos mit einem Bluescreen.</p>
<p><strong>Sofortlösung</strong><br />
Die schnellste Lösung war Visual Studio 2010 nicht zu schließen sondern mit dem Task Manager zu beenden. Da dies allerdings nur eine Notlösung war musste ich weiter probieren&#8230;</p>
<p>Das Installieren der von VS 2010 angemahnten &#8220;Windows-Automatisierungs-API&#8221; brachte leider nichts.</p>
<p><strong>Endgültige Lösung</strong><br />
Da VS 2010 WPF (Windows Presentation Foundation) verwendet und diese Hardwarebeschleunigung verwendet beschloss ich das Problem mit einem Grafikkartrenteiberupdate anzugehen. Nahezu unglaublich aber wahr: Der aktuelle GeForce Treiber (197.45) löste das Problem. VS lässt sich nun wieder ohne Absturz schließen.</p>
<p>Es gilt also:<br />
Windows XP SP3<br />
+ Visual Studio 2010 (c#)<br />
+ Neuer Grafikkarten Treiber = <img src='http://familie-ottenhaus.de/simon/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (Zumindest in meinem Fall)</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/05/windows-xp-sp3-visual-studio-2010-c-bluescreen/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/05/windows-xp-sp3-visual-studio-2010-c-bluescreen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Die Untiefen der GD-lib in PHP</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/05/die-untiefen-der-gd-lib-in-php/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/05/die-untiefen-der-gd-lib-in-php/#comments</comments>
		<pubDate>Tue, 04 May 2010 18:49:40 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1098</guid>
		<description><![CDATA[Bevor die Informationsseiten auf compulearnenglisch.de online gegangen sind habe ich diese offline getestet. Dazu habe ich unter anderem transparente Bilder serverseitig verkleinert. Auf meinem lokalen Linux Server ergaben sich dabei Streifen, bei Hosteurope (dort ist compulearnenglisch.de gehostet) nicht.
links: lokal, rechts: online

Hier stark vergrößert:

]]></description>
			<content:encoded><![CDATA[<p>Bevor die <a href="http://compulearnenglisch.de/information/" target="_blank" class="liexternal">Informationsseiten</a> auf <a href="http://compulearnenglisch.de" target="_blank" class="liexternal">compulearnenglisch.de</a> online gegangen sind habe ich diese offline getestet. Dazu habe ich unter anderem transparente Bilder serverseitig verkleinert. Auf meinem lokalen Linux Server ergaben sich dabei Streifen, bei Hosteurope (dort ist compulearnenglisch.de gehostet) nicht.</p>
<p>links: lokal, rechts: online<br />
<img src="http://familie-ottenhaus.de/simon/blog/wp-content/uploads/2010/05/flaggen-normal.png" alt="flaggen-normal" title="flaggen-normal" width="568" height="180" class="alignnone size-full wp-image-1100" /></p>
<p>Hier stark vergrößert:<br />
<a href="http://familie-ottenhaus.de/simon/blog/wp-content/uploads/2010/05/flaggen-groß.png" ><img src="http://familie-ottenhaus.de/simon/blog/wp-content/uploads/2010/05/flaggen-groß-300x264.png" alt="flaggen-groß" title="flaggen-groß" width="300" height="264" class="alignnone size-medium wp-image-1099" /></a></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/05/die-untiefen-der-gd-lib-in-php/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/05/die-untiefen-der-gd-lib-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zoomimage &amp; jQuery: Schönes kann so einfach sein.</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/zoomimage-jquery-schones-kann-so-einfach-sein/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/zoomimage-jquery-schones-kann-so-einfach-sein/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 16:31:33 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Post Functions]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Zoomimage]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1090</guid>
		<description><![CDATA[Zoomimage ist ein Plugin für jQuery mit dem verlinkte Bilder vergrößert werden können.
Die Einbindung ist denkbar einfach und auf der Zoomimage Homepage auch ausreichend beschrieben.
Um Zoomimage vollständig in Wordpress einzubinden habe ich mein Post Functions Plugin erweitert.

View Code PLAIN1
[zoomimage:src=screenshots/lueckentext-mit-hilfe.png, w=400, zw=800, float=right, alt=Lückentext zu den unregelmäßigen Verben]

Obiger Code resultiert in einem 400px breiten Bild, das [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eyecon.ro/zoomimage/" target="_blank" class="liexternal">Zoomimage</a> ist ein Plugin für <a href="http://jquery.com/" target="_blank" class="liexternal">jQuery</a> mit dem verlinkte Bilder vergrößert werden können.<br />
Die Einbindung ist denkbar einfach und auf der Zoomimage Homepage auch ausreichend beschrieben.</p>
<p>Um Zoomimage vollständig in Wordpress einzubinden habe ich mein <a href="http://familie-ottenhaus.de/simon/blog/tag/post-functions/" class="liinternal">Post Functions Plugin</a> erweitert.</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1090code4'); return false;">View Code</a> PLAIN</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p10904"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1090code4"><pre class="plain" style="font-family:monospace;">[zoomimage:src=screenshots/lueckentext-mit-hilfe.png, w=400, zw=800, float=right, alt=Lückentext zu den unregelmäßigen Verben]</pre></td></tr></table></div>

<p>Obiger Code resultiert in einem 400px breiten Bild, das bei Klick auf 800px verbreitert wird. Zusätzlich wird unter dem Bild der alt-Text angezeigt.</p>
<p>Die Resultate können dann in absehbarer Zeit auf <a href="http://compulearnenglisch.de/information/" target="_blank" class="liexternal">compulearnenglisch.de/information</a> besichtigt werden.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/zoomimage-jquery-schones-kann-so-einfach-sein/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/zoomimage-jquery-schones-kann-so-einfach-sein/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Services_JSON vs. json_decode</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/php-services_json-vs-json_decode/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/php-services_json-vs-json_decode/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 18:30:14 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1086</guid>
		<description><![CDATA[Da PHP4 noch keine native JSON-Unterstützung mitbrachte hatte ich mich für Services_JSON entschieden. Eine neue Anwendung erforderte nun das Hochladen von größeren Datenmengen. Dabei stieß Services_JSON an seine Grenzen: Ab einer gewissen Datenmenge wurden die Daten nicht mehr umgewandelt.
Da PHP5 inzwischen gut verbreitet ist konnte ich

View Code PHP1
2
3
4
function json2array&#40;$sJson&#41; &#123;
	$oJson = new Services_JSON &#40; SERVICES_JSON_LOOSE_TYPE [...]]]></description>
			<content:encoded><![CDATA[<p>Da PHP4 noch keine native <a href="http://json.org/" target="_blank" class="liexternal">JSON</a>-Unterstützung mitbrachte hatte ich mich für <a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=198" target="_blank" class="liexternal">Services_JSON</a> entschieden. Eine neue Anwendung erforderte nun das Hochladen von größeren Datenmengen. Dabei stieß Services_JSON an seine Grenzen: Ab einer gewissen Datenmenge wurden die Daten nicht mehr umgewandelt.</p>
<p>Da PHP5 inzwischen gut verbreitet ist konnte ich</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1086code7'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p10867"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1086code7"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> json2array<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sJson</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$oJson</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Services_JSON <span style="color: #009900;">&#40;</span> SERVICES_JSON_LOOSE_TYPE <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$oJson</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">decode</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$sJson</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>nun durch</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1086code8'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p10868"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1086code8"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> json2array<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sJson</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <a href="http://www.php.net/json_decode"><span style="color: #990000;">json_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sJson</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>ersetzen.</p>
<p><strong>Das Resultat</strong><br />
Das Parsen der JSON codierten Daten läuft nun um Faktoren schneller.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/php-services_json-vs-json_decode/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/php-services_json-vs-json_decode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress: Virtuelle Seiten erstellen &#8211; Von .htaccess zu Hooks</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-virtuelle-seiten-erstellen-von-htaccess-zu-hooks/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-virtuelle-seiten-erstellen-von-htaccess-zu-hooks/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 21:31:35 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[HowTo / Anleitung]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Hooks]]></category>
		<category><![CDATA[Seiten]]></category>
		<category><![CDATA[Virtuelle]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1057</guid>
		<description><![CDATA[Worpress ist praktisch, wenn man manuell Seiten (Pages) erstellt und diese im Admin Bereich editieren möchte. Allerdings gibt es keine (mitgelieferte) Möglichkeit &#8220;virtuelle Seiten&#8221; unterzubringen.
Virtuelle Seiten?!
Nun rede ich hier von virtuellen Seiten, aber was verstehe ich darunter?
Im Prinzip ist die Idee ganz einfach: Der Webseitenbesucher soll keinen Unterschied zwischen einer virtuellen und einer &#8220;realen&#8221; Seite [...]]]></description>
			<content:encoded><![CDATA[<p>Worpress ist praktisch, wenn man manuell Seiten (Pages) erstellt und diese im Admin Bereich editieren möchte. Allerdings gibt es keine (mitgelieferte) Möglichkeit &#8220;virtuelle Seiten&#8221; unterzubringen.</p>
<p><strong>Virtuelle Seiten?!</strong><br />
Nun rede ich hier von virtuellen Seiten, aber was verstehe ich darunter?<br />
Im Prinzip ist die Idee ganz einfach: Der Webseitenbesucher soll keinen Unterschied zwischen einer virtuellen und einer &#8220;realen&#8221; Seite sehen &#8211; allerdings ist die virtuelle Seite nicht in der Wordpress Datenbank abgelegt.</p>
<p><strong>Die Probleme</strong><br />
Aus dieser Aufgabenstellung ergeben sich folgende Probleme:</p>
<ol>
<li>Umleitung der Anfrage auf ein eigenes php-Skript</li>
<li>Einbinden des Wordpress Layouts</li>
<li>Erweitern der Navigation um die Virtuellen Seiten</li>
</ol>
<p><strong>Umleitung der Anfrage auf ein eigenes php-Skript</strong><br />
Auszug aus der .htaccess</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1057code15'); return false;">View Code</a> PLAIN</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p105715"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1057code15"><pre class="plain" style="font-family:monospace;">RewriteEngine On
RewriteBase /pfad/zu/meinem/blog/
RewriteRule ^uebung/([\w,=;\-]+)\.html$ ce_exercise.php?id=$1 [L]
RewriteRule ^uebung/?$ ce_exercise.php [L]</pre></td></tr></table></div>

<p>In diesem Beispiel werden alle Anfragen auf /uebung, /uebung/, /uebung/xyz-abc-etc.html auf ce_exercise.php umgeleitet. ce_exercise.php bindet dann Wordpress ein und lädt die angeforderte Seite aus der (eigenen) Datenbank.</p>
<p><strong>Einbinden des Wordpress Layouts</strong><br />
Mit</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1057code16'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p105716"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p1057code16"><pre class="php" style="font-family:monospace;"><a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'WP_USE_THEMES'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/** hier fehlt noch was! Siehe unten */</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/** Loads the WordPress Environment and Template */</span>
<span style="color: #b1b100;">require</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'./wp-blog-header.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>wird Wordpress eingebunden (angenommen, dass wp-blog-header.php im selben Verzeichnis liegt).<br />
<em>define ( &#8216;WP_USE_THEMES&#8217;, false );</em> verhindert, dass Wordpress selbstständig wird und Theme Dateien lädt &#8211; Das wollen wir ja selbst machen!</p>
<p>Dies alleine reicht allerdings nicht aus, da Wordpress die url analysiert und trotzdem versucht den Inhalt der Seite zu laden. Da die angeforderte Seite virtuell ist wird Wordpress immer davon ausgehen, dass ein 404 (Seite nicht gefunden) vorliegt. </p>
<p>Dies lässt sich wie folgt lösen:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1057code17'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p105717"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1057code17"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/* confuse wordpress: make it think the url is something else */</span>
<a href="http://www.php.net/preg_match"><span style="color: #990000;">preg_match</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'#(.*)/uebung/#'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$treffer</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SERVER</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$treffer</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/uebung/&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Ich gebe zu, diese Lösung ist weder schön noch Zukunftssicher &#8211; aber sie funktioniert.</p>
<p><strong>Wichtige Hinweise zu dieser Lösung:</strong></p>
<ul>
<li>Ich verwende &#8220;schöne&#8221; permalinks mit mod_rewrite</li>
<li>Es muss eine Seite angelegt werden, die auf die umgeschriebene url passt. Hier: <em>/uebung/</em></li>
<li>Der Code muss <em>vor</em> <em>require (&#8217;./wp-blog-header.php&#8217;);</em> stehen!</li>
</ul>
<p>Der Anfang des php-Skriptes sieht dann so aus:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1057code18'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p105718"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p1057code18"><pre class="php" style="font-family:monospace;"><a href="http://www.php.net/error_reporting"><span style="color: #990000;">error_reporting</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'WP_USE_THEMES'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* confuse wordpress: make it think the url is something else */</span>
<a href="http://www.php.net/preg_match"><span style="color: #990000;">preg_match</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'#(.*)/uebung/#'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$treffer</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SERVER</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$treffer</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/uebung/&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$requested_page</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_GET</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$_GET</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;main&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/** Loads the WordPress Environment and Template */</span>
<span style="color: #b1b100;">require</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'./wp-blog-header.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Nun können die Wordpress-Funktionen <em>get_header (); get_sidebar ();</em> und <em>get_footer ();</em> aufgerufen werden.</p>
<p>Damit ist das Problem des Layouts gelöst &#8211; bleibt noch:</p>
<p><strong>Erweitern der Navigation um die Virtuellen Seiten</strong><br />
Wordpress stellt viele sogenannter &#8220;hooks&#8221; zur Verfügung, um die Ausgabe von Wordpress Funktionen zu beeinflussen. Diese Hooks werden auf den Resultaten der Wordpress Funktionen ausgeführt, nachdem die Wordpress Funktion fertig ist.</p>
<p>Vereinfacht kann man sich das so vorstellen:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1057code19'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p105719"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p1057code19"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$reslut</span> <span style="color: #339933;">=</span> wp_some_funtion<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> my_hook<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$result</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Die Kunst besteht darin die richtige Wordpress Funktion auszuwählen. Ich hab hier auch einen unschönen aber schnellen und effektiven Weg gewhält: Ich modifiziere die Navigation, nachdem diese als HTML generiert wurde. Konkret: Ich verwende einen Hook auf <em>wp_list_pages</em>.</p>
<p>In meinem Fall möchte ich nur die Navigation der Sidebar beeinflussen und nicht die des Headers. Deshalb wird der Hook erst nach Ausgabe des Headers aufgerufen.</p>
<p>Jetzt bleibt nur noch das Hinzufügen der zusätzlichen Navigationselemente im Hook. Ich suche dazu nach dem Navigationseintrag, der &#8220;uebung&#8221; enthält und füge danach die virtuellen Seiten ein.</p>
<p><strong>Der gesamte (auf das Wesentliche reduzierte) Code:</strong></p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1057code20'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p105720"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
</pre></td><td class="code" id="p1057code20"><pre class="php" style="font-family:monospace;">&nbsp;
<a href="http://www.php.net/error_reporting"><span style="color: #990000;">error_reporting</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">/* verhindern, dass WP selbständig Themes lädt */</span>
<a href="http://www.php.net/define"><span style="color: #990000;">define</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'WP_USE_THEMES'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* confuse wordpress: make it think the url is something else */</span>
<a href="http://www.php.net/preg_match"><span style="color: #990000;">preg_match</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'#(.*)/uebung/#'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$treffer</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SERVER</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$treffer</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/uebung/&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$requested_page</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$_GET</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$_GET</span> <span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;main&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/** Loads the WordPress Environment and Template */</span>
<span style="color: #b1b100;">require</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'./wp-blog-header.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
get_header <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// hier den eigentlichen Seiteninhalt ausgeben</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// hier $added_pages_str mit den virtuellen Seiten füllen</span>
&nbsp;
add_filter <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wp_list_pages'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ce_mod_pages_list'</span><span style="color: #339933;">,</span> 1<span style="color: #339933;">,</span> 2 <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
get_sidebar <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
get_footer <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> ce_mod_pages_list<span style="color: #009900;">&#40;</span><span style="color: #000088;">$pages_str</span><span style="color: #339933;">,</span> <span style="color: #000088;">$opt</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$added_pages_str</span><span style="color: #339933;">,</span> <span style="color: #000088;">$requested_page</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_split"><span style="color: #990000;">preg_split</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;#&lt;/li&gt;#&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pages_str</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$parts</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/strpos"><span style="color: #990000;">strpos</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;uebung&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$requested_page</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;main&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$parts</span> <span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;current_page_item&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$parts</span> <span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000088;">$parts</span> <span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$added_pages_str</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;&lt;/li&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$parts</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>Schlussbemerkungen</strong></p>
<ul>
<li><em>ce_</em> steht für CompuLearn Englisch</li>
<li>Das Deutsch / Englisch Chaos in Code und Kommentaren ist ärgerlich aber nicht zu vermeiden.</li>
<li>Oje, das ist ja ganz schön viel geworden &#8211; Ich hoffe jemand liest das und findet Anwendung dafür.</li>
<li>Die Resultate können auf <a href="http://compulearnenglisch.de/uebung/" target="_blank" class="liexternal">compulearnenglisch.de/uebung</a> besichtigt werden.</li>
<li>Fragen und Kommentare wie immer erwünscht.</li>
<li>Listen machen alles übersichtlicher <img src='http://familie-ottenhaus.de/simon/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-virtuelle-seiten-erstellen-von-htaccess-zu-hooks/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-virtuelle-seiten-erstellen-von-htaccess-zu-hooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CompuLearn Englisch: Übungsseiten online</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/compulearn-englisch-ubungsseiten-online/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/compulearn-englisch-ubungsseiten-online/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 20:43:59 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CompuLearn]]></category>
		<category><![CDATA[Englisch]]></category>
		<category><![CDATA[Übungsseiten]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1052</guid>
		<description><![CDATA[Auf compulearnenglisch.de/uebung finden sich ab sofort Auszüge der Übungen aus CompuLearn Englisch.
Die Übungen werden direkt aus dem CompuLearn Englisch Editor hochgeladen und dann als &#8220;virtuelle Wordpress-Seiten&#8221; angezeigt. Soeben habe ich es auch geschafft diese &#8220;virtuellen Seiten&#8221; in der Xml-Sitemap unterzubringen. Siehe dazu: Wordpress: XML-Sitemap: Zusätzliche Seiten hinzufügen
]]></description>
			<content:encoded><![CDATA[<p>Auf <a href="http://compulearnenglisch.de/uebung/" target="_blank" class="liexternal">compulearnenglisch.de/uebung</a> finden sich ab sofort Auszüge der Übungen aus CompuLearn Englisch.</p>
<p>Die Übungen werden direkt aus dem CompuLearn Englisch Editor hochgeladen und dann als &#8220;virtuelle Wordpress-Seiten&#8221; angezeigt. Soeben habe ich es auch geschafft diese &#8220;virtuellen Seiten&#8221; in der Xml-Sitemap unterzubringen. Siehe dazu: <a href="http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-xml-sitemap-zusatzliche-seiten-hinzufugen/" class="liinternal">Wordpress: XML-Sitemap: Zusätzliche Seiten hinzufügen</a></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/compulearn-englisch-ubungsseiten-online/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/compulearn-englisch-ubungsseiten-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress: XML-Sitemap: Zusätzliche Seiten hinzufügen</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-xml-sitemap-zusatzliche-seiten-hinzufugen/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-xml-sitemap-zusatzliche-seiten-hinzufugen/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 20:39:29 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[HowTo / Anleitung]]></category>
		<category><![CDATA[Seite]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[XML-Sitemap]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1043</guid>
		<description><![CDATA[Auf compulearnenglisch.de/uebung finden sich viele generierte Seiten, die nicht in der Wordpress Datenbank gespeichert sind. Demnach werden diese Seiten nicht automatisch in der Xml-Sitemap aufgenommen.
Ein Blick in die Dokumentation genügt allerdings um das Problem zu lösen:
 Adding other pages to the sitemap via other plugins
  This plugin uses the action system of WordPress to [...]]]></description>
			<content:encoded><![CDATA[<p>Auf <a href="http://compulearnenglisch.de/uebung/" target="_blank" class="liexternal">compulearnenglisch.de/uebung</a> finden sich viele generierte Seiten, die nicht in der Wordpress Datenbank gespeichert sind. Demnach werden diese Seiten nicht automatisch in der Xml-Sitemap aufgenommen.</p>
<p>Ein Blick in die Dokumentation genügt allerdings um das Problem zu lösen:</p>
<blockquote><p> Adding other pages to the sitemap via other plugins</p>
<p>  This plugin uses the action system of WordPress to allow other plugins  to add urls to the sitemap. Simply add your function with add_action to  the list and the plugin will execute yours every time the sitemap is build.  Use the static method &#8220;GetInstance&#8221; to get the generator and AddUrl method   to add your content.
</p></blockquote>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1043code22'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p104322"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p1043code22"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> your_pages<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$generatorObject</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>GoogleSitemapGenerator<span style="color: #339933;">::</span><span style="color: #004000;">GetInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//Please note the &quot;&amp;&quot; sign for PHP4!</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$generatorObject</span><span style="color: #339933;">!=</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$generatorObject</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddUrl</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://blog.uri/tags/hello/&quot;</span><span style="color: #339933;">,</span><a href="http://www.php.net/time"><span style="color: #990000;">time</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;daily&quot;</span><span style="color: #339933;">,</span>0<span style="color: #339933;">.</span>5<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;sm_buildmap&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;your_pages&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-xml-sitemap-zusatzliche-seiten-hinzufugen/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/wordpress-xml-sitemap-zusatzliche-seiten-hinzufugen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vista &amp; IE 8: Bugware ohne Ende</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/vista-ie-8-bugware-ohne-ende/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/vista-ie-8-bugware-ohne-ende/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 21:33:04 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bugware]]></category>
		<category><![CDATA[Explorer]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1040</guid>
		<description><![CDATA[Nachdem ich den Internet Explorer 8 nun endlich installiert hatte (aus Sorge vor Fehlern&#8230;) hatte ich nun folgendes unschöne Problem:
Der Windows Explorer öffnete ungeachtet der Einstellungen immer jeden Ordner in einem neuen Fenster.
Lösung des Problems
Start des Internet Explorers einmal als Administrator. Klingt komisch, ist aber so &#8211; hat gut funktioniert.
Da der IE anscheinend noch Einstellungen [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich den Internet Explorer 8 nun endlich installiert hatte (aus Sorge vor Fehlern&#8230;) hatte ich nun folgendes unschöne Problem:</p>
<p>Der Windows Explorer öffnete ungeachtet der Einstellungen immer jeden Ordner in einem neuen Fenster.</p>
<p><strong>Lösung des Problems</strong><br />
Start des Internet Explorers einmal als Administrator. Klingt komisch, ist aber so &#8211; hat gut funktioniert.</p>
<p>Da der IE anscheinend noch Einstellungen beim 1. Start als Admin verändert wäre ein allgemeiner Hinweis nett gewesen. Aber so kennt man Windows: gesprächig war es noch nie&#8230;</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/vista-ie-8-bugware-ohne-ende/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/vista-ie-8-bugware-ohne-ende/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keine neuen Artikel? &#8211; Arbeit an CompuLearn Englisch</title>
		<link>http://familie-ottenhaus.de/simon/blog/2010/04/keine-neuen-artikel-arbeit-compulearn-englisch/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2010/04/keine-neuen-artikel-arbeit-compulearn-englisch/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 22:50:53 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CompuLearn]]></category>
		<category><![CDATA[Englisch]]></category>
		<category><![CDATA[Französisch]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1022</guid>
		<description><![CDATA[In den letzten Monaten hatte ich leider wenig Zeit neue Blog Artikel zu verfassen, da ich mich auf die Entwicklung von CompuLearn Englisch konzentriert habe.
Auf dem CompuLearn Englisch Blog werden alle neuen Versionen angekündigt.
Zur Zeit arbeite ich an den Online Übungsseiten, wie es sie für CompuLearn Französisch schon gibt.
Und Zum Abschluss noch ein wenig &#8220;Artwork&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Monaten hatte ich leider wenig Zeit neue Blog Artikel zu verfassen, da ich mich auf die Entwicklung von <a href="http://compulearnenglisch.de/" target="_blank" class="liexternal">CompuLearn Englisch</a> konzentriert habe.</p>
<p>Auf dem <a href="http://compulearnenglisch.de/blog/" target="_blank" class="liexternal">CompuLearn Englisch Blog</a> werden alle neuen Versionen angekündigt.</p>
<p>Zur Zeit arbeite ich an den Online Übungsseiten, wie es sie für <a href="http://franzoesischsoftware.de/" target="_blank" class="liexternal">CompuLearn Französisch</a> <a href="http://franzoesischsoftware.de/onl_possessivbegleiter.html" target="_blank" class="liexternal">schon gibt</a>.</p>
<p>Und Zum Abschluss noch ein wenig &#8220;Artwork&#8221; aus dem Programm:<br />
<img src="http://compulearnenglisch.de/wp-content/themes/compulearn_englisch/img/icon.png" alt="c3" /> <img src="http://compulearnenglisch.de/wp-content/themes/compulearn_englisch/img/sm_orange_thumbs_up.png" alt="c3" /></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2010/04/keine-neuen-artikel-arbeit-compulearn-englisch/" target="_blank"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2010/04/keine-neuen-artikel-arbeit-compulearn-englisch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
