<?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>mgBlog &#187; WordPress</title>
	<atom:link href="http://mgsimon.de/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://mgsimon.de</link>
	<description>Esc(ape), einfach ein anderes Blog über technische Spielerei ...</description>
	<lastBuildDate>Sun, 18 Dec 2011 08:52:23 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>apt-cache search wordpress</title>
		<link>http://mgsimon.de/2010/01/10/apt-cache-search-wordpress/</link>
		<comments>http://mgsimon.de/2010/01/10/apt-cache-search-wordpress/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 09:26:39 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Linux & Unix]]></category>
		<category><![CDATA[uup]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=436</guid>
		<description><![CDATA[Die Paketverwaltung unter Ubuntu Karmic Koala 9.10 enth&#228;lt laut Suche nach &#8220;wordpress&#8221; die Gnome Desktop Blogging Anwendungen drivel, gnome-blog, lekhonee und tomboy-blogposter. $ apt-cache search wordpress drivel - Blogging client for the GNOME desktop gnome-blog - GNOME applet to post to weblog entries kblogger - a simple blogging application for KDE 4 kblogger-kde4 - a [...]]]></description>
			<content:encoded><![CDATA[<p>Die Paketverwaltung unter Ubuntu Karmic Koala 9.10 enth&#228;lt laut Suche nach &#8220;wordpress&#8221; die Gnome Desktop Blogging Anwendungen drivel, gnome-blog, lekhonee und tomboy-blogposter.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">apt-cache</span> search wordpress
drivel - Blogging client <span style="color: #000000; font-weight: bold;">for</span> the GNOME desktop
gnome-blog - GNOME applet to post to weblog entries
kblogger - a simple blogging application <span style="color: #000000; font-weight: bold;">for</span> KDE <span style="color: #000000;">4</span>
kblogger-kde4 - a simple blogging application <span style="color: #000000; font-weight: bold;">for</span> KDE <span style="color: #000000;">4</span> - Transitional Package
lekhonee-common - Wordpress blogging client
lekhonee-gnome - Wordpress blogging client <span style="color: #7a0874; font-weight: bold;">&#40;</span>GNOME front-end<span style="color: #7a0874; font-weight: bold;">&#41;</span>
lekhonee-kde - Wordpress blogging client <span style="color: #7a0874; font-weight: bold;">&#40;</span>KDE4 front-end<span style="color: #7a0874; font-weight: bold;">&#41;</span>
libmarkdown-php - PHP library <span style="color: #000000; font-weight: bold;">for</span> rendering Markdown data
tomboy-blogposter - Tomboy addin <span style="color: #000000; font-weight: bold;">for</span> posting notes to a blog
wordpress - weblog manager</pre></div></div>

<p>Eigentlich schreibe ich die Blog-Artikel im FireFox mit dem Editor von WordPress, Zeit sich mal die Offline-Editoren kurz anzusehen &#8230;</p>
<p><span id="more-436"></span><div style="background-color: rgb(191, 255, 191); border:1px solid rgb(128, 255, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/tip.png" alt="Tipp" title="Tipp" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Zum selbst ausprobieren einfach in der WordPress-Administration unter &#8220;Einstellungen / Schreiben&#8221; die Option XML-RPC unter Fernpublizieren aktivieren und im Desktop-Blogging-Programm die Adresse auf http://meinblog/xmlrpc.php einstellen.</div> </p>
<p><strong>drivel</strong></p>
<p>Drivel ist &#252;bersichtlich, die wichtigstens Formatierungen sind vorhanden und Entw&#252;rfe k&#246;nnen lokal als XML-Datei gespeichert werden. Die Aktionen &#8220;Absenden&#8221;, &#8220;Aktualisieren&#8221; und &#8220;L&#246;schen&#8221; werden sofort ausgef&#252;hrt. Artikel befinden sich nicht ganz intuitiv versteckt im Pulldown-Men&#252; &#8220;Tagebuch / Letzte Eintr&#228;ge >&#8221;. Eine sch&#246;ne Variante f&#252;r Netbooks?</p>
<div id="attachment_2026" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/01/DrivelEditor.png" alt="Drivel :: Editor" title="DrivelEditor" width="442" height="295" class="size-full wp-image-2026 stamp" /><p class="wp-caption-text">Drivel :: Editor</p></div>
<p><em>Installation</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> drivel</pre></div></div>

<p>Die Anwendung befindet sich nach der Installation unter &#8220;Anwendungen / Internet / Drivel Tagebucheditor&#8221; und kann mit der folgenden Konfiguation mit WordPress verbunden werden.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Benutzername: MeinUser
Passwort: MeinPasswort
Tagebuchtyp: Movable Type
Serveradresse: http://meinblog.de/xmlrpc.php</pre></div></div>

<p><strong>gnome-blog</strong></p>
<p>gnome-blog ist minimalistischer als Drivel. Lediglich Formatierungen f&#252;r fett und kursiv sind vorhanden. Entw&#252;rfe k&#246;nnen nicht lokal gespeichert werden. Artikel werden durch &#8220;Eintrag ver&#246;ffentlichen&#8221; sofort publiziert und die Anwendung wird beendet? Daf&#252;r kann die Anwendung dem Panel hinzugef&#252;gt werden. Vielleicht eher etwas f&#252;r Kurznachrichten?</p>
<div id="attachment_2029" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/01/gnome-blogEditor.png" alt="gnome-blog :: Editor" title="gnome-blogEditor" width="442" height="333" class="size-full wp-image-2029 stamp" /><p class="wp-caption-text">gnome-blog :: Editor</p></div>
<p><em>Installation</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> gnome-blog</pre></div></div>

<p>Gnome-blog kann nach der Installation &#252;ber &#8220;Anwendungen / Internet / Blog-Eintr&#228;ge verfassen&#8221; gestartet werden oder dem Panel &#252;ber das Kontextmen&#252; hinzugef&#252;gt werden. Mit folgender Konfiguation werden Artikel im WordPress-Blog ver&#246;ffentlicht.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Blog-Typ: Selbst betrieben, WordPress
Blog-Basisadresse: http://meinblog.de/xmlrpc.php
Benutzername: MeinUser
Passwort: MeinPasswort
Blogs nachschlagen &gt; Blog-Name: Mein Blog</pre></div></div>

<p><strong>lekhonee</strong></p>
<p>Lekhonee wirkt unvollst&#228;ndig, Kategorien k&#246;nnen nicht aktualisiert werden und im unterem Bereich ist ein Tab &#8220;WordPress&#8221; mit dem Hinweis &#8220;For Future Use&#8221;. Das Publizieren, Aktualisieren funktioniert, aber die Artikel werden mit eigener Werbung ver&#246;ffentlicht &#8220;The post is brought to you by lekhonee v0.7&#8243;.</p>
<div id="attachment_2039" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/01/lekhoneeEditor.png" alt="Lekhonee Gnome :: Editor" title="lekhoneeEditor" width="442" height="310" class="size-full wp-image-2039 stamp" /><p class="wp-caption-text">Lekhonee Gnome :: Editor</p></div>
<p><em>Installation</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> lekhonee-gnome</pre></div></div>

<p>Lekhonee startet &#252;ber &#8220;Anwendungen / Internet / Lekhonee Gnome&#8221; und mit folgender Konfiguration funktionierts mit WordPress.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Server: http://meinblog.de/xmlrpc.php
Username: MeinUser
Password: MeinPasswort</pre></div></div>

<p><strong>tomboy-blogposter</strong></p>
<div style="background-color: rgb(191, 255, 191); border:1px solid rgb(128, 255, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/tip.png" alt="Tipp" title="Tipp" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Das Tomboy-Plugin Blogposter verwendet das Atom Publishing Protokoll. Zum selbst ausprobieren einfach in der WordPress-Administration unter &#8220;Einstellungen / Schreiben&#8221; die Option &#8220;Atom Publishing Protocol&#8221; unter Fernpublizieren aktivieren und die URL http://meinblog/wp-app.php/posts verwenden.</div>
<p>Notizen werden ohne Feedback &#252;ber &#8220;Post note to your blog&#8221; direkt zum Blog gesendet. Wird die Voreinstellung &#8220;Create posts as drafts&#8221; beibehalten, werden die Artikel unter Entw&#252;rfe gespeichert. Auch die von Tomboy erweiterteten Formatierungen werden &#252;bernommen.</p>
<div id="attachment_2043" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2010/01/TomboyEditor.png" alt="Tomboy :: Editor" title="TomboyEditor" width="442" height="354" class="size-full wp-image-2043 stamp" /><p class="wp-caption-text">Tomboy :: Editor</p></div>
<p><em>Installation</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> tomboy-blogposter</pre></div></div>

<p>Tomboy befindet sich unter &#8220;Anwendungen / Zubeh&#246;r / Tomboy Notizen&#8221; und mit der folgenden Plugin-Konfiguation k&#246;nnen Notizen entfernt als Entw&#252;rfe gespeichert werden.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Einstellungen / Add-Ins / Tools / Post note to your blog
Aktivieren
Einstellungen
Label for this blog (only used internally): MeinBlog
Username: MeinUser
Password (optional. Will not be encrypted, just scrambled): MeinPasswort</pre></div></div>

<p><strong>Fazit</strong></p>
<p>Mir pers&#246;nlich hat am besten das Plugin <em>Blogposter</em> f&#252;r Tomboy gefallen. Sch&#246;n mit Ubuntu One die Notizen synchronisiert sammeln und dann wird schon aus der einen oder anderen Idee ein Artikel.</p>
<p>Oder wie blogst Du? :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2010/01/10/apt-cache-search-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WordPress Carmen 2.9</title>
		<link>http://mgsimon.de/2009/12/20/wordpress-carmen-2-9/</link>
		<comments>http://mgsimon.de/2009/12/20/wordpress-carmen-2-9/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 09:41:23 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=1880</guid>
		<description><![CDATA[Ja, auch ich hab es getan; automatische WordPress-Aktualisierung von Chet Baker 2.8.6 nach Carmen 2.9. :-) Erst ganz vorsichtig und dann vollautomatisch &#8230; Test und Backup Vor der eigentlichen Aktualisierung erst im Testblog die automische Aktualisierung erfolgreich getestet. Schnell noch ein Backup der Datenbank durch das Plugin WP-DB-Backup erstellt und alle Dateien via FileZilla lokal [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://schnurpsel.de/wordpress-update-2-9-291/">Ja, auch ich hab es getan</a>; automatische WordPress-Aktualisierung von Chet Baker 2.8.6 nach Carmen 2.9. :-)</p>
<div id="attachment_1881" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2009/12/WordPressAktualisieren.png" alt="WordPress :: Aktualisierung 2.8.6 =&gt; 2.9" title="WordPressAktualisieren" width="442" height="178" class="size-full wp-image-1881 stamp" /><p class="wp-caption-text">WordPress :: Aktualisierung 2.8.6 => 2.9</p></div>
<p>Erst ganz vorsichtig und dann vollautomatisch &#8230;</p>
<p><span id="more-1880"></span><div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Die Aktualisierung wurde in folgender Umgebung durchgef&#252;hrt. Provider: <a href="http://www.hosteurope.de/">HostEurope</a>, Produkt: <a href="http://www.hosteurope.de/produkt/WebPack-L">WebPack L 2.0</a></div></p>
<p><strong>Test und Backup</strong></p>
<p>Vor der eigentlichen Aktualisierung erst im Testblog die automische Aktualisierung erfolgreich getestet.</p>
<p>Schnell noch ein Backup der Datenbank durch das Plugin <a href="http://wordpress.org/extend/plugins/wp-db-backup/">WP-DB-Backup</a> erstellt und alle Dateien via <a href="http://filezilla-project.org/">FileZilla</a> lokal gesichert.</p>
<p><strong>Aktualisierung</strong></p>
<p>Die automatische Aktualisierung von WordPress im Bereich &#8220;WP-Admin&#8221; &#252;ber &#8220;Werkzeuge / Autoupdate&#8221; konnte ich nach einer gef&#252;hlten Ewigkeit erfolgreich durchf&#252;hren.   </p>
<p><strong>Was ist neu?</strong></p>
<p>Auf den ersten Blick nicht viel, schnell gefunden die neue M&#246;glichkeit Bilder direkt in WordPress zu bearbeiten.</p>
<div id="attachment_1884" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2009/12/WordPressMedienBearbeiten.png" alt="WordPress :: Medien bearbeiten" title="WordPressMedienBearbeiten" width="442" height="308" class="size-full wp-image-1884 stamp" /><p class="wp-caption-text">WordPress :: Medien bearbeiten</p></div>
<p>Auf den zweiten Blick findet ihr eine &#220;bersicht der neuen Funktionalit&#228;ten in <a href="http://blog.wordpress-deutschland.org/2009/12/18/wordpress-2-9-eine-uebersicht-der-neuen-funktionen.html">diesem Beitrag</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/12/20/wordpress-carmen-2-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HostEurope Webanwendungen &#8211; WordPress</title>
		<link>http://mgsimon.de/2009/12/13/hosteurope-webanwendungen-wordpress/</link>
		<comments>http://mgsimon.de/2009/12/13/hosteurope-webanwendungen-wordpress/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 10:08:34 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=1773</guid>
		<description><![CDATA[Webanwendungen k&#246;nnen bei HostEurope auch &#252;ber einen Easy Application Installer installiert werden. 34 Anwendungen in den Kategorien Foren-, Blog-, WiKi-, Community-, E-Commerce-, Marketing-Software, Groupware, Webkalender, CMS-Systeme und weitere Applikationen k&#246;nnen schnell und leicht &#252;ber das KIS (Kunden-Informations-System) eingerichtet werden. Einfach eine andere Installationsvariante f&#252;r das Webblogsystem WordPress kurz angetestet. Testblog bei HostEurope installieren. Datenbank f&#252;r [...]]]></description>
			<content:encoded><![CDATA[<p>Webanwendungen k&#246;nnen bei HostEurope auch &#252;ber einen Easy Application Installer installiert werden. <a href="http://www.hosteurope.de/content/Web-Applikationen-WebPack-2">34 Anwendungen</a> in den Kategorien Foren-, Blog-, WiKi-, Community-, E-Commerce-, Marketing-Software, Groupware, Webkalender, CMS-Systeme und weitere Applikationen k&#246;nnen schnell und leicht &#252;ber das <a href="https://kis.hosteurope.de/">KIS</a> (Kunden-Informations-System) eingerichtet werden.</p>
<div id="attachment_1801" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2009/12/HostEuropeKISWebanwendungWordPress.png" alt="HostEurope KIS :: Webanwendung WordPress" title="HostEuropeKISWebanwendungWordPress" width="442" height="144" class="size-full wp-image-1801 stamp" /><p class="wp-caption-text">HostEurope KIS :: Webanwendung WordPress</p></div>
<p>Einfach eine andere Installationsvariante f&#252;r das Webblogsystem WordPress kurz angetestet.</p>
<p><span id="more-1773"></span><strong>Testblog bei HostEurope installieren.</strong></p>
<div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Die folgende WordPress Testinstallation wurde im Paket <a href="http://www.hosteurope.de/produkt/WebPack-L">WebPack L 2.0</a> durchgef&#252;hrt. Die Administration f&#252;r das Webhosting-Paket befindet sich unter &#8220;Administration / Webhosting / Konfigurieren&#8221;.</div>
<ul>
<li>Datenbank f&#252;r das Testblog unter &#8220;Datenbanken / Datenbank verwalten &#8221; anlegen.</li>
<li>WordPress unter &#8220;Skripte / Webanwendungen / WordPress-2.8 ( Web/Blog ) / Konfigurieren&#8221; konfigurieren.
<ul>
<li>Konfiguration starten.</li>
<ol>
<li>Domain ohne Weiterleitung ausw&#228;hlen.</li>
<li>Datenbank ausw&#228;hlen.</li>
</ol>
<li>Installation abschliessen</li>
<ol>
<li>Tabellen-Prefix</li>
<li>Installationsverzeichnis (leider mit vorangestelltem www)</li>
<li>Loginname</li>
<li>Passwort f&#252;r Adminzugang</li>
<li>E-Mail</li>
<li>Weblog Titel</li>
<li>Spracheinstellungen</li>
</ol>
</ul>
</li>
<li>Webanwendung wurde erfolgreich eingerichtet.</li>
</ul>
<p>WordPress wird in der Version 2.8 installiert und kann unmittelbar nach der Installation unter der angegebenen URL aufgerufen werden.</p>
<p><strong>Test Aktualisierung von WordPress Version 2.8 zu 2.8.6</strong></p>
<p>Auch die von HostEurope installierte WordPress Version ben&#246;tigt f&#252;r ein Update (&#8220;Werkzeuge / Autoupdate / Automatisch aktualisieren&#8221;) Zugangsdaten.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Verbindungsinformation
&nbsp;
Um die geforderte Anfrage durchzuführen, sind Informationen zu deiner Verbindung erforderlich.
...</pre></div></div>

<p>Die automatische Aktualisierung &#252;ber FTPS (SSL) funktioniert nicht wirklich.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">WordPress aktualisieren
&nbsp;
Downloading update from http://de.wordpress.org/wordpress-2.8.6-de_DE.zip.
&nbsp;
Unpacking the update.</pre></div></div>

<p>Mit etwas Geduld und der Variante FTP konnte die automatische Aktualisierung erfolgreich durchgef&#252;hrt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">WordPress aktualisieren
&nbsp;
Downloading update from http://de.wordpress.org/wordpress-2.8.6-de_DE.zip.
&nbsp;
Unpacking the update.
&nbsp;
Überprüfe die entpackten Dateien
&nbsp;
Installiere die neueste Version
&nbsp;
Aktualisiere Datenbank
&nbsp;
WordPress wurde erfolgreich aktualisiert</pre></div></div>

<p><strong>Test Installation Plugin mg404Rewrite</strong></p>
<p>mg404Rewrite &#252;ber &#8220;Plugins / Installieren / Jetzt installieren / Jetzt installieren&#8221; installieren.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Installiere Plugin: mg404Rewrite 0.8
&nbsp;
Lade Installationspaket von http://downloads.wordpress.org/plugin/mg404rewrite.0.8.zip herunter.
&nbsp;
Paket wird entpackt.
&nbsp;
Installiere das Plugin.
&nbsp;
Das Plugins mg404Rewrite 0.8 wurde erfolgreich installiert.
&nbsp;
Aktionen: Aktivieren Sie dieses Plugin | Zurück zur Plugin-Installation</pre></div></div>

<p>Permalinks unter &#8220;Einstellungen / Permalinks&#8221; auf sprechende URL &#228;ndern.</p>
<p>Bsp. von</p>
<p><em>http:/sub.domain.tld/wordpress/?p=123</em></p>
<p>nach<br />
<em></p>
<p>http://sub.domain.tld/wordpress/2009/12/12/sample-post/</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Wenn Ihre .htaccess-Datei beschreibbar wäre, könnte WordPress sie automatisch bearbeiten.
Das ist nicht der Fall. Darum finden Sie hier die mod_rewrite-Regeln, die Sie manuell in Ihre .htaccess-Datei einfügen müssen.
Klicken Sie in das Feld und verwenden Sie Strg+A, um alles auszuwählen.</pre></div></div>

<div style="background-color: rgb(191, 255, 191); border:1px solid rgb(128, 255, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/tip.png" alt="Tipp" title="Tipp" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Erst die Schreibberechtigung auf das WordPress-Installationsverzeichnis f&#252;r Andere (777) erm&#246;glicht die Aktualisierung der .htaccess-Datei durch WordPress.</div>
<p><strong>mg404Rewrite Version 0.9</strong></p>
<p>Aufruf der sprechenden URL </p>
<p><em>http://sub.domain.tld/wordpress/2009/12/12/sample-post/ </em></p>
<p>mit aktiviertem mod_rewrite Workaround (200 OK) funktioniert.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>sub.domain.tld<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span>06<span style="color: #000000; font-weight: bold;">/</span>hello-world<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #660033;">--2009-12-13</span> <span style="color: #000000;">12</span>:<span style="color: #000000;">24</span>:<span style="color: #000000;">31</span>--  http:<span style="color: #000000; font-weight: bold;">//</span>sub.domain.tld<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span>06<span style="color: #000000; font-weight: bold;">/</span>hello-world<span style="color: #000000; font-weight: bold;">/</span>
Auflösen des Hostnamen »sub.domain.tld«.... 80.237.132.205
Verbindungsaufbau zu sub.domain.tld<span style="color: #000000; font-weight: bold;">|</span>80.237.132.205<span style="color: #000000; font-weight: bold;">|</span>:<span style="color: #000000;">80</span>... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... <span style="color: #000000;">200</span> OK
Länge: <span style="color: #000000;">7754</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">7</span>,6K<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>text<span style="color: #000000; font-weight: bold;">/</span>html<span style="color: #7a0874; font-weight: bold;">&#93;</span>
In »index.html« speichern.
&nbsp;
<span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>======================================<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">7.754</span>       --.-K<span style="color: #000000; font-weight: bold;">/</span>s   <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000;">0</span>,02s   
&nbsp;
<span style="color: #000000;">2009</span>-<span style="color: #000000;">12</span>-<span style="color: #000000;">13</span> <span style="color: #000000;">12</span>:<span style="color: #000000;">24</span>:<span style="color: #000000;">33</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">471</span> KB<span style="color: #000000; font-weight: bold;">/</span>s<span style="color: #7a0874; font-weight: bold;">&#41;</span> - »index.html« gespeichert <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">7754</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">7754</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Das Plugin mg404rewrite konnte erfolgreich unter WordPress 2.8.6 getestet werden, Zeit das Plugin zu aktualisieren. </p>
<p>Die neue Version ist auf der <a href="http://mgsimon.de/mg404rewrite/">Plugin-Seite</a> und im <a href="http://wordpress.org/extend/plugins/mg404rewrite/">WordPress Plugin Directory</a>.</p>
<p><strong>Fazit</strong></p>
<p>Der Easy Application Installer ist eine M&#246;glichkeit bekannte Webanwendung leicht und schnell, ohne Einarbeitung in die jeweilige Webanwendung, zu installieren. Da werde ich mir bestimmt noch die eine oder andere der 34 Anwendungen ansehen &#8230;</p>
<p>Apropos mg404rewrite, <a href="http://faq.hosteurope.de/index.php?cpid=12009&#038;in_object=2&#038;searchword=rewrite">mod_rewrite</a> bei HostEurope kann erst ab &#8220;WebPack L/WebPack L 2.0&#8243; genutzt werden, vielleicht funktioniert der Workaround f&#252;r sprechende URLs in kleineren Paketen? ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/12/13/hosteurope-webanwendungen-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress ShortCodes</title>
		<link>http://mgsimon.de/2009/12/06/wordpress-shortcodes/</link>
		<comments>http://mgsimon.de/2009/12/06/wordpress-shortcodes/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 00:03:54 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[AdWz]]></category>
		<category><![CDATA[ShortCode]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=1630</guid>
		<description><![CDATA[(AdWz; Auf dem Weg zum) WP-Plugin – MyShortCodes Kurze Anweisungen werden in WordPress f&#252;r Bildlegenden (caption) oder Bildgalerien (gallery) verwendet und k&#246;nnen leicht um eigene ShortCodes erweitert werden. Hier eine Idee &#8230; &#8230; und die Umsetzung. Beispiellayout f&#252;r Hinweistexte. Man k&#246;nnte f&#252;r das Beispiel Hinweistext &#8230; &#60;div style=&#34;border: 1px solid silver; margin: 0pt 0pt 1.5em; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>(AdWz; Auf dem Weg zum) WP-Plugin – MyShortCodes</strong></p>
<p>Kurze Anweisungen werden in WordPress f&#252;r Bildlegenden (caption) oder Bildgalerien (gallery) verwendet und k&#246;nnen leicht um eigene ShortCodes erweitert werden. Hier eine Idee &#8230;<br />
<div id="attachment_1635" class="wp-caption alignnone" style="width: 452px"><img src="http://mgsimon.de/wp-content/uploads/2009/12/WordPressShortCodes.png" alt="Offline Notizen :: WordPress ShortCodes" title="WordPressShortCodes" width="442" height="282" class="size-full wp-image-1635 stamp" /><p class="wp-caption-text">Offline Notizen :: WordPress ShortCodes</p></div>&#8230; und die Umsetzung.</p>
<p><span id="more-1630"></span><strong>Beispiellayout f&#252;r Hinweistexte.</strong><br />
<div style="background-color: rgb(191, 228, 255); border:1px solid rgb(128, 201, 255); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/info.png" alt="Hinweis" title="Hinweis" width="24" height="24" style="margin: 4px 8px 0 0; float:left;"/>Dies ist ein Hinweis &#8230; Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. &#8230;<br />
</div></p>
<p>Man k&#246;nnte f&#252;r das Beispiel <em>Hinweistext</em> &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div style=&quot;border: 1px solid silver; margin: 0pt 0pt 1.5em; padding: 3px; overflow: auto; background-color: rgb(176, 224, 230); color: rgb(17, 0, 0);&quot;&gt;
&lt;img src=&quot;/wp-content/uploads/..../../info.png&quot; alt=&quot;Hinweis&quot; title=&quot;Hinweis&quot; style=&quot;margin: 4px 8px 0pt 0pt; float: left;&quot; height=&quot;24&quot; width=&quot;24&quot;&gt;
Mein Text für Hinweise.
&lt;/div&gt;</pre></div></div>

<p>&#8230; schreiben.</p>
<p>Oder einfach einen Shortcode &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">[info]Mein Text für Hinweise.[/info]</pre></div></div>

<p>&#8230; verwenden.</p>
<p><strong>Quellcode f&#252;r die drei ShortCodes &#8220;info&#8221;, &#8220;warn&#8221; und &#8220;tip&#8221;.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*
Plugin Name: MyShortCodes
Plugin URI: http://mgsimon.de/2009/12/05/wordpress-shortcodes
Description: My short codes for [info]...[/info], [warn]...[/warn] and [tip]...[/tip]
Version: 0.1
Author: mgsimon
Author URI: http://mgsimon.de
*/</span>
&nbsp;
add_shortcode<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'info'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'sc_info'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> sc_info<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$atts</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'&lt;div style=&quot;background-color:#B0E0E6; border:1px solid silver; color:#110000; margin:0 0 1.5em; overflow:auto; padding: 3px;&quot;&gt;
&lt;img src=&quot;/wp-content/plugins/MyShortCodes/info.png&quot; alt=&quot;Hinweis&quot; title=&quot;Hinweis&quot; width=&quot;24&quot; height=&quot;24&quot; style=&quot;margin: 4px 8px 0 0; float:left;&quot;/&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$content</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/div&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_shortcode<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'warn'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'sc_warn'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> sc_warn<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$atts</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'&lt;div style=&quot;background-color:#FFC0CB; border:1px solid silver; color:#110000; margin:0 0 1.5em; overflow:auto; padding: 3px;&quot;&gt;
&lt;img src=&quot;/wp-content/plugins/MyShortCodes/warn.png&quot; alt=&quot;Warnung&quot; title=&quot;Warnung&quot; width=&quot;24&quot; height=&quot;24&quot; style=&quot;margin: 4px 8px 0 0; float:left;&quot; /&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$content</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/div&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_shortcode<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'tip'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'sc_tip'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> sc_tip<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$atts</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'&lt;div style=&quot;background-color:#98FB98; border:1px solid silver; color:#110000; margin:0 0 1.5em; overflow:auto; padding: 3px;&quot;&gt;
&lt;img src=&quot;/wp-content/plugins/MyShortCodes/tip.png&quot; alt=&quot;Tipp&quot; title=&quot;Tipp&quot; width=&quot;24&quot; height=&quot;24&quot; style=&quot;margin: 4px 8px 0 0; float:left;&quot; /&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$content</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/div&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><strong>Beispiellayout f&#252;r wichtige Hinweise.</strong><br />
<div style="background-color: rgb(255, 204, 191); border:1px solid rgb(255, 153, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/warn.png" alt="Warnung" title="Warnung" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Dies ist eine Warnung &#8230; Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. &#8230;<br />
</div></p>
<p><strong>Beispiellayout f&#252;r Tipps.</strong><br />
<div style="background-color: rgb(191, 255, 191); border:1px solid rgb(128, 255, 128); color: rgb(0, 0, 0); margin:0 0 1.5em; overflow:auto; padding: 3px;">
<img src="/wp-content/plugins/MyShortCodes/tip.png" alt="Tipp" title="Tipp" width="24" height="24" style="margin: 4px 8px 0 0; float:left;" />Dies ist ein Tipp &#8230; Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. &#8230;<br />
</div></p>
<p><strong>weitere Infos zu ShortCodes</strong></p>
<ul>
<li>da &#8220;<a href="http://bueltge.de/wordpress-25-shortcode-api/">WordPress 2.5 Shortcode API</a>&#8220;,
</li>
<li>dort &#8220;<a href="http://www.catswhocode.com/blog/10-incredibly-cool-wordpress-shortcodes">10 incredibly cool WordPress shortcodes</a>&#8221; oder
</li>
<li>hier &#8220;<a href="http://codex.wordpress.org/Shortcode_API">Shortcode API</a>&#8220;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/12/06/wordpress-shortcodes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Providerumzug</title>
		<link>http://mgsimon.de/2009/11/22/providerumzug/</link>
		<comments>http://mgsimon.de/2009/11/22/providerumzug/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 10:36:35 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=1573</guid>
		<description><![CDATA[Ein Umzug von Strato (PowerWeb Advanced) zu Host Europe (WebPack L 2.0) in eigener Sache ohne Worte &#8230; &#8230; und einigen Auswertungen. Die Seiten werden bei Host Europe bei gleicher Grundkonfiguration wesentlich schneller ausgeliefert. FireBug zeigt im Netzwerk-Reiter drei bis vier Sekunden f&#252;r das Laden der kompletten Einstiegsseite an und monitorus hat zuvor bei Strato [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Umzug von Strato (PowerWeb Advanced) zu Host Europe (WebPack L 2.0) in eigener Sache ohne Worte &#8230; </p>
<div id="attachment_1575" class="wp-caption alignnone" style="width: 452px"><img src="http://blog.mgsimon.de/wp-content/uploads/2009/11/googleWebmasterToolsDauerHerunterladenSeiteMillisekundenChart.png" alt="Quelle Google webmaster-tools :: Dauer des Herunterladens einer Seite (in Millisekunden)" title="googleWebmasterToolsDauerHerunterladenSeiteMillisekundenChart" width="442" height="150" class="size-full wp-image-1575 stamp" /><p class="wp-caption-text">Quelle Google webmaster-tools :: Dauer des Herunterladens einer Seite (in Millisekunden)</p></div>
<p>&#8230; und einigen Auswertungen.</p>
<p><span id="more-1573"></span>Die Seiten werden bei Host Europe bei gleicher Grundkonfiguration wesentlich schneller ausgeliefert. <a href="https://addons.mozilla.org/de/firefox/addon/1843">FireBug</a> zeigt im Netzwerk-Reiter drei bis vier Sekunden f&#252;r das Laden der kompletten Einstiegsseite an und <a href="http://mon.itor.us/">monitorus</a> hat zuvor bei Strato h&#228;ufig zwei bis drei mal pro Woche eine nicht Erreichbarkeit der URL im Report angezeigt.</p>
<p>Eigentlich war mir die Geschwindigkeit nicht so wichtig, aber wie die zwei folgenden Grafiken zeigen, sind die Seiten seit der Umstellung auch f&#252;r den Crawler von Google interessanter.</p>
<div id="attachment_1578" class="wp-caption alignnone" style="width: 452px"><img src="http://blog.mgsimon.de/wp-content/uploads/2009/11/googleWebmasterToolsGecrawlteSeitenTagChart.png" alt="Quelle Google webmaster-tools :: Pro Tag gecrawlte Seiten" title="googleWebmasterToolsGecrawlteSeitenTagChart" width="442" height="150" class="size-full wp-image-1578 stamp" /><p class="wp-caption-text">Quelle Google webmaster-tools :: Pro Tag gecrawlte Seiten</p></div>
<div id="attachment_1580" class="wp-caption alignnone" style="width: 452px"><img src="http://blog.mgsimon.de/wp-content/uploads/2009/11/googleWebmasterToolsHeruntergeladeneKilobyteTagChart.png" alt="Quelle Google webmaster-tools :: Pro Tag heruntergeladene Kilobyte" title="googleWebmasterToolsHeruntergeladeneKilobyteTagChart" width="442" height="150" class="size-full wp-image-1580 stamp" /><p class="wp-caption-text">Quelle Google webmaster-tools :: Pro Tag heruntergeladene Kilobyte</p></div>
<p>Nichts gegen Strato aber mit einem Webhosting-Paket bin ich mit WordPress bei Host Europe besser aufgehoben.</p>
<p><strong>Domain</strong></p>
<p>Im Zuge des Umzugs auch ein Wechsel von der Subdomain <a href="http://blog.mgsimon.de">blog.mgsimon.de</a> auf die Domain <a href="http://mgsimon.de">mgsimon.de</a>. </p>
<p><em>Kurz notiert &#8230;</em></p>
<ol>
<li>Domain im <a href="https://kis.hosteurope.de/">Host Europe KIS</a> unter &#8220;Administration / Webhosting / Konfigurieren / Domains / Domainzuordnung editieren&#8221; auf das WordPress Installationsverzeichnis einstellen.
</li>
<li>Domain in WordPress unter &#8220;Admin / Einstellungen / Allgemein&#8221; in WordPress-Adresse (URL) und  Blog-Adresse (URL) eintragen.
</li>
<li>Direkt in der Datenbank oder einfacher mit einem <a href="http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114/">Search and Replace Plugin</a> alle absoluten Adressierungen &#228;ndern (http://sub.meinedomain.de => http://meinedomain.de).
</li>
<li>sub.meinedomain.de-Referenzen aus dem weltweitem Netz mit den folgenden zus&#228;tzlichen RewriteRules ordentlich auf meinedomain.de umleiten.

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">RewriteCond %{HTTP_HOST} ^([^.]+)\.meinedomain\.de$ [NC]
RewriteRule ^(.*)$ http://meinedomain.de/$1 [R=301,L]</pre></div></div>

</ol>
</li>
<p><strong>Test</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>blog.mgsimon.de<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">11</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">/</span>mybookworld-backup<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #660033;">--2009-11-22</span> <span style="color: #000000;">15</span>:<span style="color: #000000;">20</span>:<span style="color: #000000;">53</span>--  http:<span style="color: #000000; font-weight: bold;">//</span>blog.mgsimon.de<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">11</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">/</span>mybookworld-backup<span style="color: #000000; font-weight: bold;">/</span>
Auflösen des Hostnamen »blog.mgsimon.de«.... 80.237.132.205
Verbindungsaufbau zu blog.mgsimon.de<span style="color: #000000; font-weight: bold;">|</span>80.237.132.205<span style="color: #000000; font-weight: bold;">|</span>:<span style="color: #000000;">80</span>... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... <span style="color: #000000;">301</span> Moved Permanently
Platz: http:<span style="color: #000000; font-weight: bold;">//</span>mgsimon.de<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">11</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">/</span>mybookworld-backup<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>folge<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #660033;">--2009-11-22</span> <span style="color: #000000;">15</span>:<span style="color: #000000;">20</span>:<span style="color: #000000;">53</span>--  http:<span style="color: #000000; font-weight: bold;">//</span>mgsimon.de<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">11</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">15</span><span style="color: #000000; font-weight: bold;">/</span>mybookworld-backup<span style="color: #000000; font-weight: bold;">/</span>
Auflösen des Hostnamen »mgsimon.de«.... 80.237.132.205
Wiederverwendung der bestehenden Verbindung zu blog.mgsimon.de:<span style="color: #000000;">80</span>.
HTTP Anforderung gesendet, warte auf Antwort... <span style="color: #000000;">200</span> OK
Länge: nicht spezifiziert <span style="color: #7a0874; font-weight: bold;">&#91;</span>text<span style="color: #000000; font-weight: bold;">/</span>html<span style="color: #7a0874; font-weight: bold;">&#93;</span>
In »index.html.1« speichern.</pre></div></div>

<p>Sieht gut aus &#8230; fertig. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/11/22/providerumzug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mg404rewrite 0.7</title>
		<link>http://mgsimon.de/2009/03/22/mg404rewrite-07/</link>
		<comments>http://mgsimon.de/2009/03/22/mg404rewrite-07/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 06:29:38 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=850</guid>
		<description><![CDATA[In der Artikelserie AdWz WP-Plugin &#8211; Auf dem Weg zum WordPress-Plugin &#8211; wurde Schritt f&#252;r die Schritt die Erweiterung zur Verarbeitung HTTP-Post Anfragen an Permalinks ohne mod_rewrite beschrieben. Das Plugin mg404rewrite konnte ich erfolgreich entfernt in der Umgebung des Providers testen, Zeit das Plugin zu aktualisieren. Die neue Version ist auf der Plugin-Seite und im [...]]]></description>
			<content:encoded><![CDATA[<p>In der Artikelserie AdWz WP-Plugin &#8211; Auf dem Weg zum WordPress-Plugin &#8211; wurde Schritt f&#252;r die Schritt die Erweiterung zur Verarbeitung HTTP-Post Anfragen an Permalinks ohne mod_rewrite beschrieben. </p>
<p>Das Plugin mg404rewrite konnte ich erfolgreich entfernt in der Umgebung des Providers testen, Zeit das Plugin zu aktualisieren. </p>
<p>Die neue Version ist auf der <a href="http://mgsimon.de/mg404rewrite/">Plugin-Seite</a> und im <a href="http://wordpress.org/extend/plugins/mg404rewrite/">WordPress Plugin Directory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/03/22/mg404rewrite-07/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AdWz WP-Plugin 19 &#8211; PostProxy</title>
		<link>http://mgsimon.de/2009/03/18/adwz-wp-plugin-19-postproxy/</link>
		<comments>http://mgsimon.de/2009/03/18/adwz-wp-plugin-19-postproxy/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 07:15:49 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[AdWz]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=832</guid>
		<description><![CDATA[(AdWz; Auf dem Weg zum) WP-Plugin 19 &#8211; PostProxy Die letzten vier Teile der AdWz-Serie haben die Erweiterungen f&#252;r das Plugin mg404rewrite zur Umsetzung der Idee aus AdWz WP-Plugin 14 &#8211; Post beschrieben. Der HTTP-Response wird kurz vor dem Senden durch das Plugin ausgewertet und in allen Formularen mit der Methode Post wird eine aufl&#246;sbare [...]]]></description>
			<content:encoded><![CDATA[<p><strong>(AdWz; Auf dem Weg zum) WP-Plugin 19 &#8211; PostProxy</strong></p>
<p>Die letzten vier Teile der AdWz-Serie haben die Erweiterungen f&#252;r das Plugin mg404rewrite zur Umsetzung der Idee aus <a href="http://mgsimon.de/2009/03/03/adwz-wp-plugin-14-post/">AdWz WP-Plugin 14 &#8211; Post</a> beschrieben.</p>
<p>Der HTTP-Response wird kurz vor dem Senden durch das Plugin ausgewertet und in allen Formularen mit der Methode Post wird eine aufl&#246;sbare URL (Nicht-Permalink) gesetzt.</p>
<p>Im letzten Schritt muss diese aufl&#246;sbare URL durch ein weiteres Skript (PostProxy) verarbeitet werden.</p>
<p><span id="more-832"></span></p>
<p><strong>PostProxy</strong></p>
<p>Das <em>Unbekannte</em> &#8211; ein Formular mit der Methode Post an eine Permalink-URL &#8211; muss mit &#252;bertragenen Daten die urspr&#252;ngliche Permalink-Anfrage simulieren.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;mg404_posturl&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;mg404_level&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span>  <span style="color: #990000;">parse_url</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;mg404_posturl&quot;</span><span style="color: #009900;">&#93;</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;">&quot;REQUEST_URI&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;path&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;mg404_level&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> 
			<span style="color: #000088;">$chdir</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;../&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chdir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;index.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;index.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Abgesichert durch die Abfragen in Zeile zwei und acht werden zur Simulation der urspr&#252;nglichen Permalink-Anfrage die Umgebungsvariable <strong>REQUEST_URI</strong> &#252;berschrieben (Zeile 4) und die Datei <strong>index.php</strong> von WordPress eingebettet (Zeile 9).</p>
<p><strong>REQUEST_URI</strong> wird durch WordPress ausgewertet und sollte wie eine <em>normale</em> mod_rewrite Permalink-Anfrage verarbeitet werden.  </p>
<p><strong>weiter &#8230;</strong></p>
<p>Das Plugin funktioniert mit der letzten Erweiterung in der lokalen Entwicklungsumgebung. Bevor die neue Version 0.7 auf der <a href="http://mgsimon.de/mg404rewrite/">Plugin-Seite</a> und im Plugin-Verzeichnis von WordPress.org aktualisiert wird, m&#252;ssen die &#196;nderungen noch entfernt in der vorgegebenen Umgebung des Providers getestet werden. </p>
<p><em>Erst einmal eine AdWz-Pause und dann demn&#228;chst auch die neue Version &#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/03/18/adwz-wp-plugin-19-postproxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AdWz WP-Plugin 18 &#8211; Regex &amp; PHP</title>
		<link>http://mgsimon.de/2009/03/16/adwz-wp-plugin-18-regex-php/</link>
		<comments>http://mgsimon.de/2009/03/16/adwz-wp-plugin-18-regex-php/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 07:25:06 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[AdWz]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=801</guid>
		<description><![CDATA[(AdWz; Auf dem Weg zum) WP-Plugin 18 &#8211; Regex &#038; PHP Im diesen Teil der AdWz-Serie werden die regul&#228;ren Ausdr&#252;cke aus AdWz WP-Plugin 17 &#8211; Regex im Plugin mg404rewrite eingesetzt. mg404_PostProxy 1 2 3 4 5 function mg404_PostProxy&#40;$content&#41; &#123; $formregex = &#34;/&#34; . get_option&#40;'mg404_postproxy_formregex'&#41; . &#34;/i&#34;; $content = preg_replace_callback&#40;$formregex,'mg404_FormProcessor',$content&#41;; return $content; &#125; In der f&#252;r [...]]]></description>
			<content:encoded><![CDATA[<p><strong>(AdWz; Auf dem Weg zum) WP-Plugin 18 &#8211; Regex &#038; PHP</strong></p>
<p>Im diesen Teil der AdWz-Serie werden die regul&#228;ren Ausdr&#252;cke aus <a href="http://mgsimon.de/2009/03/12/adwz-wp-plugin-17-regex/">AdWz WP-Plugin 17 &#8211; Regex</a> im Plugin mg404rewrite eingesetzt.</p>
<p><strong>mg404_PostProxy</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mg404_PostProxy<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$formregex</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_formregex'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/i&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$formregex</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'mg404_FormProcessor'</span><span style="color: #339933;">,</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><span id="more-801"></span></p>
<p>In der f&#252;r den Ausgabepuffer angemeldeten Funktion (Zeile 1) wird der regul&#228;re Ausdruck (Zeile 2) aus der Konfiguration gelesen und f&#252;r die Suche aufbereitet. In PHP werden regul&#228;re Ausdr&#252;cke am Anfang und Ende durch ein <strong>/</strong> gekennzeichnet. Das Zeichen <strong>i</strong> f&#252;hrt diesen Ausdruck unabh&#228;ngig der Gro&#223;- / Kleinschreibung aus.</p>
<p>Die Funktion preg_replace_callback (Zeile 3) meldet f&#252;r diesen regul&#228;ren Ausdruck eine Funktion an. Sollte im Ausgabepuffer eine Form mit der Methode Post vorhanden sein, wird die angemeldete Funktion (mg404_FormProcessor) zur Auswertung ausgef&#252;hrt.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">mixed <span style="color: #990000;">preg_replace_callback</span>  <span style="color: #009900;">&#40;</span> mixed <span style="color: #000088;">$pattern</span>  <span style="color: #339933;">,</span> callback <span style="color: #000088;">$callback</span>  <span style="color: #339933;">,</span> mixed <span style="color: #000088;">$subject</span>  <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span> int <span style="color: #000088;">$limit</span>  <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span> int <span style="color: #339933;">&amp;</span><span style="color: #000088;">$count</span>  <span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span></pre></div></div>

<p>Jeder Treffer wird der Funktion &#252;bergeben und ausgewertet zur&#252;ck gegeben. Am Ende wird der modifizierte Ausgabepuffer &#252;berschrieben und gesendet.</p>
<p><strong>mg404_FormProcessor</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mg404_FormProcessor<span style="color: #009900;">&#40;</span><span style="color: #000088;">$match</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$formtag</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$match</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$urlregex</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_urlregex'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/i&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$urlregex</span><span style="color: #339933;">,</span><span style="color: #000088;">$formtag</span><span style="color: #339933;">,</span><span style="color: #000088;">$actionurl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$linkregex</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_linkregex'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/i&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$linkregex</span><span style="color: #339933;">,</span><span style="color: #000088;">$actionurl</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$formtag</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$postproxyurl</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'siteurl'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$formtag</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$actionurl</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: #000088;">$postproxyurl</span><span style="color: #339933;">,</span><span style="color: #000088;">$formtag</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$formtag</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;input type='hidden' name='mg404_posturl' value='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$actionurl</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;'/&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$formtag</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;input type='hidden' name='mg404_level' value='&quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">substr_count</span><span style="color: #009900;">&#40;</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'/&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$formtag</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>In der f&#252;r den regul&#228;ren Ausdruck angemeldeten Funktion (Zeile 1) wird der Treffer als Array &#252;bergeben. Mehrere Treffer w&#252;rden im Array durch Gruppierung (Klammerung) im regul&#228;ren Ausdruck &#252;bergeben, da in diesem Fall nur ein Treffer vorhanden sein kann wird der erste Index (0) in der Variable formtag (Zeile 2) abgelegt. Die URL der Aktion wird extrahiert (Zeile 4) und in actionurl zur weiteren Verarbeitung abgelegt. actionurl wird &#252;berpr&#252;ft (Zeile 6) und bei einem nicht vorhandenen Permalink wird die Funktion vorzeitig ohne Ver&#228;nderung verlassen (Zeile 7). Im anderen Fall wird das Form-Tag &#252;berarbeitet und zus&#228;tzlich der urspr&#252;nglichen URL der Aktion zur&#252;ck gegeben (Zeile 9-12).</p>
<p><strong>weiter &#8230;</strong></p>
<p>Der Ausgabepuffer wird der Konfiguration entsprechend ausgewertet. Zu guter Letzt muss PostProxy zur Simulation die angefragte URI &#252;berschreiben und die Datei index.php von WordPress einbetten. Ein weiteres Skript wird demn&#228;chst im n&#228;chsten Teil der AdWz-Serie erstellt.</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/03/16/adwz-wp-plugin-18-regex-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AdWz WP-Plugin 17 &#8211; Regex</title>
		<link>http://mgsimon.de/2009/03/12/adwz-wp-plugin-17-regex/</link>
		<comments>http://mgsimon.de/2009/03/12/adwz-wp-plugin-17-regex/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 09:38:34 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[AdWz]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=731</guid>
		<description><![CDATA[(AdWz; Auf dem Weg zum) WP-Plugin 17 &#8211; Regex Regex; regular expressions (regul&#228;re Ausdr&#252;cke) &#8211; in den 1960ern von Ken Thompson f&#252;r die Entwicklung von qed und grep zuerst benutzt &#8211; sind Suchmuster, um eine definierte Menge aus einer Zeichenkette zu extrahieren. Vom Suchen, Ersetzen bis Pr&#252;fen k&#246;nnen in vielen Editoren, mit Tools wie z.B. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>(AdWz; Auf dem Weg zum) WP-Plugin 17 &#8211; Regex</strong></p>
<p>Regex; regular expressions (regul&#228;re Ausdr&#252;cke) &#8211; in den 1960ern von Ken Thompson f&#252;r die Entwicklung von qed und grep zuerst benutzt &#8211; sind Suchmuster, um eine definierte Menge aus einer Zeichenkette zu extrahieren. Vom Suchen, Ersetzen bis Pr&#252;fen k&#246;nnen in vielen Editoren, mit Tools wie z.B. grep und in so gut wie allen Programmiersprachen regul&#228;re Ausdr&#252;cke verwendet werden. </p>
<p>Beispiel eines regul&#228;ren Ausdrucks zur &#220;berpr&#252;fung einer E-mail-Adresse in richtiger Schreibweise (Syntax).</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">^([a-zA-Z0-9]((\.|\-)?[a-zA-Z0-9])*)@([a-zA-Z]((\.|\-)?[a-zA-Z0-9])*)\.([a-zA-Z]{2,8})$</pre></div></div>

<p>Auf den ersten Blick kompliziert, aber angefreundet mit der Syntax kann schnell mit diesem m&#228;chtigen Tool viel Arbeit gespart werden.</p>
<p>Ohne weiter auf das o.a. Beispiel einzugehen werden f&#252;r die Erweiterung des Plugins zur Verarbeitung der Post-Forms an Permalinks einige regul&#228;re Ausdr&#252;cke verwendet.</p>
<p><span id="more-731"></span></p>
<p><strong>mg404rewrite</strong></p>
<p>Im ersten Schritt werden alle Formulare mit der Methode Post gesucht. Die URL der Aktion wird extrahiert und zur weiteren Verarbeitung &#252;berpr&#252;ft.</p>
<p><strong>Varianten</strong></p>
<p>Folgende Varianten &#8211; bestimmt nicht vollst&#228;ndig &#8211; m&#252;ssen durch regul&#228;re Ausdr&#252;cke gefunden und ausgewertet werden.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">... &lt;form method=&quot;post&quot; action=&quot;mypermalinkurl&quot;&gt; ...
... &lt;form method='post' action='mypermalinkurl'&gt; ...
... &lt;form method=post action=mypermalinkurl&gt; ...
... &lt;form action=&quot;mypermalinkurl&quot; method=&quot;post&quot;&gt; ...
... &lt;form action='mypermalinkurl' method='post'&gt; ...
... &lt;form action=mypermalinkurl method=post&gt; ...
... &lt;form method=&quot;post&quot; action=&quot;mypermalinkurl&quot;&gt; &lt;input ...&gt;myinputfield&lt;/input&gt; ...</pre></td></tr></table></div>

<p><strong>Regex Form-Tag</strong></p>
<p>Regul&#228;rer Ausdruck wird auf dem &#252;bergebenen Ausgabepuffer angewendet.</p>
<p><em>Kurz notiert von links nach rechts.</em></p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;form</pre></div></div>

<p>Findet genau die angegebene Zeichenketten.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;form.+method=</pre></div></div>

<p>Das Ergebnis wird auf viele Zeichen bis zum Ende der Zeichenkette <strong>method=</strong> erweitert. <strong>.</strong> f&#252;r ein beliebiges Zeichen und <strong>+</strong> (Wiederholungsfaktor: min. 1) f&#252;r mindestens eins oder mehrere des vorhergenden regul&#228;ren Ausdrucks (beliebiges Zeichen, der Punkt <strong>.</strong>).</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;form.+method=[&quot;']?post</pre></div></div>

<p>Der Ausdruck wird durch die Zeichen in eckigen Klammern und <strong>?</strong> (Wiederholungsfaktor: optional) zus&#228;tzlich der Zeichenkette <strong>post</strong> um optional ein <strong>&#8220;</strong> oder ein <strong>&#8216;</strong> erweitert, um die unterschiedlichen Notationen abzudecken (siehe Varianten Bsp. Unterschiede Zeile 1 <strong>&#8220;</strong>, 2 <strong>&#8216;</strong> und 3).</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&lt;form.+method=[&quot;']?post.*?&gt;</pre></div></div>

<p>Das Form-Tag &#8211; <strong>nicht mehr und nicht weniger</strong> &#8211; wird ben&#246;tigt. Durch die letzte Erweiterung beliebiges Zeichen <strong>.</strong> in beliebiger Anzahl <strong>*</strong> (Wiederholungsfaktor: eins, viele oder keins) bis zum abschlie&#223;enden Zeichen <strong>&gt;</strong>, wird das Tag Form im ganzen gefunden. </p>
<p>Nicht <strong>mehr</strong> durch das letzte <strong>?</strong> (non-greedy). Ohne das Fragezeichen hinter dem Wiederholungsfaktor w&#252;rde das Ergebnis bis zur letzten &gt; des Ausgabepuffers reichen &#8211; etwas viel (siehe Bsp. Variante Zeile 7). </p>
<p><em>Die Wiederholungsfaktoren sind erst einmal &#8220;gierig&#8221; (greedy) &#8211; bis zum letzten und durch die zus&#228;tzliche Angabe <strong>?</strong> wird der Ausdruck &#8220;gen&#252;gsam&#8221; (non-greedy) &#8211; bis zum ersten aufgel&#246;st.</em></p>
<p><strong>Regex Action-URL</strong></p>
<p>Regul&#228;rer Ausdruck wird auf das Ergebnis von <strong>Regex Form-Tag</strong> angewendet.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">.*action=[&quot;'](.*?)[&quot;' &gt;]</pre></div></div>

<p>Referenzierung auf die URL durch die Klammerung. Die URL wird im zweiten Schritt ausgewertet, da die Reihenfolge der Attribute im Form-Tag nicht bekannt ist (siehe Bsp. Variante Zeile 1-3 und 4-6).</p>
<p><em>Gut, mit Look-around assertions h&#228;tte man bestimmt in einem Schritt auch die URL ermitteln k&#246;nnen, aber wollen ja auch nicht &#252;bertreiben.</em></p>
<p><strong>Regex Non-Permalink</strong></p>
<p>Regul&#228;rer Ausdruck wird auf das Ergebnis von <strong>Regex Action-URL</strong> angewendet.</p>
<p><em>Wie der Webserver eingehende Anfragen auswertet, kann au&#223;erhalb der Umgebung nicht f&#252;r alle F&#228;lle vorhergesagt werden. </em></p>
<p>Der folgende Ausdruck soll die URL zur weitere Verarbeitung auswerten. Endet die URL auf <strong>.php</strong> ist die Zieladresse bestimmt kein Permalink und das Formular muss nicht ber&#252;cksichtigt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">.*\.php$</pre></div></div>

<p><strong>$</strong> kennzeichnet das Ende der Zeichenkette und \ hebt die Metabedeutung des n&#228;chsten Zeichens <strong>.</strong> auf.</p>
<p><strong>weiter &#8230;</strong></p>
<p>Die Konfigurationswerte f&#252;r die regul&#228;ren Ausdr&#252;cken k&#246;nnen im Administrationsbereich auf der Seite Einstellungen / Verschiedenes abgelegt werden.</p>
<p><img src="http://mgsimon.de/wp-content/uploads/2009/03/mg404rewrite_settings_misc_vals.png" alt="mg404rewrite_settings_misc_vals" title="mg404rewrite_settings_misc_vals" width="450" height="166" class="alignnone size-full wp-image-782 stamp" /></p>
<p><em>Apropos Konfiguration: Bin gleich &#252;ber einen Fehler gestolpert. Die Werte wurden nicht richtig dargestellt. Das Zeichen &#8221; hatte den Wert der Eigenschaft value vorzeitig beendet. Die in der Form darzustellenden Werte einfach zuvor mit der WordPress-Funktion attribute_escape() anpassen.</em></p>
<p>Soviel erst einmal zu den regul&#228;ren Ausdr&#252;cken. Das Plugin muss <em>nur</em> noch erweitert werden, damit alle Post-Forms an Permalinks verarbeitet werden k&#246;nnen. Dazu ein anderes mal mehr &#8230; :-) </p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/03/12/adwz-wp-plugin-17-regex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AdWz WP-Plugin 16 &#8211; Konfiguration</title>
		<link>http://mgsimon.de/2009/03/10/adwz-wp-plugin-16-konfiguration/</link>
		<comments>http://mgsimon.de/2009/03/10/adwz-wp-plugin-16-konfiguration/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 09:03:55 +0000</pubDate>
		<dc:creator>mg</dc:creator>
				<category><![CDATA[AdWz]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://mgsimon.de/?p=647</guid>
		<description><![CDATA[(AdWz; Auf dem Weg zum) WP-Plugin 16 &#8211; Konfiguration Wieso jetzt auf einmal Konfiguration? Die Erweiterung zur Verarbeitung gesendeter Daten mit der Methode Post an eine Permalink-URL wird jede Antwort auswerten m&#252;ssen. Durch diese Auswertung wird jede Anfrage zus&#228;tzlich Last erzeugen. Die Erweiterung sollte mindestens de-aktivierbar sein, da nicht jeder Formulare in dieser Variante einsetzt. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>(AdWz; Auf dem Weg zum) WP-Plugin 16 &#8211; Konfiguration</strong></p>
<p>Wieso jetzt auf einmal Konfiguration? </p>
<p>Die Erweiterung zur Verarbeitung gesendeter Daten mit der Methode Post an eine Permalink-URL wird <strong>jede</strong> Antwort auswerten m&#252;ssen. Durch diese Auswertung wird <strong>jede</strong> Anfrage zus&#228;tzlich Last erzeugen. Die Erweiterung sollte mindestens de-aktivierbar sein, da nicht <strong>jeder</strong> Formulare in dieser Variante einsetzt. </p>
<p>Zus&#228;tzlich werden Daten f&#252;r regul&#228;re Ausdr&#252;cke, Erkennungskriterien f&#252;r Permalinks und die PostProxy-URL in der Konfiguration abgelegt, damit nicht bei <strong>jeder</strong> kleinen &#196;nderung das Plugin angepasst werden muss.</p>
<p><span id="more-647"></span></p>
<p><strong>WordPress &#038; Konfiguration</strong></p>
<p>Konfigurationen werden in der Datenbanktabelle wp_options verwaltet. Eine nicht verlinkte WordPress-Seite http://[meinblog]/wp-admin/options.php zeigt alle vorhandenen Optionen auf einer Seite an. Seit WordPress 2.7 wurde eine <a href="http://codex.wordpress.org/Settings_API">Settings API</a> hinzugef&#252;gt, um Einstellungen leicht &#252;ber die Administration verwalten zu k&#246;nnen. </p>
<p><em>Das Plugin wird dann nur noch ab Version 2.7 funktionieren, aber was solls &#8211; WordPress sollte so und so auf dem aktuellsten Stand gehostet werden.<br />
</em><br />
<strong>Settings API</strong></p>
<p>Im ersten Schritt muss die Konfiguration &#252;ber die Aktion &#8220;admin_init&#8221; initialisiert werden.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'admin_init'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'mg404_settings_api_init'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In der angemeldeten Funktion zur Initialisierung werden Administrationsbereich, Felder und Callback-Funktionen definiert.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mg404_settings_api_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	add_settings_section<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_setting_section'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mg404rewrite'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mg404_setting_section_callback'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'misc'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	add_settings_field<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_enable'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Activate PostProxy'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mg404_postproxy_enable_callback'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'misc'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mg404_setting_section'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	register_setting<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'misc'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mg404_postproxy_enable'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><em>Hatte versucht die Felder passend dem Administrationsbereich &#8220;Permalink&#8221; zuzuordnen. Leider &#8211; warum auch immer &#8211; funktioniert die Settings API nicht auf dieser Konfigurationsseite? Die Bereiche media, reading, writing und misc konnte ich erfolgreich testen. WP-Bug? mg404rewrite Einstellungen werden jetzt erst einmal misc &#8220;Verschiedene Einstellungen&#8221; zugeordnet.</em></p>
<p><strong>add_settings_section</strong></p>
<p>Die Funktion add_settings_section ordnet die Optionen einem Bereich in der Administration zu.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_settings_section<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #000088;">$callback</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span></pre></div></div>

<ul>
<li>$id &#8211; Bezeichner zur sp&#228;teren Referenzierung (im o.a. Bsp.: mg404_setting_section).</li>
<li>$title &#8211; Titel wird als &#220;berschrift im (Unter-)Bereich ausgegeben (im o.a. Bsp.: mg404rewrite).</li>
<li>$callback &#8211; Callback-Funktion, um u.a. eine Beschreibung auszugeben (im o.a. Bsp.: mg404_setting_section_callback).</li>
<li>$page &#8211; Namen der Konfigurationsseite (general, reading, writing, media etc.). Bereich wird am Ende dieser Seite hinzugef&#252;gt (im o.a. Bsp.: misc).</li>
</ul>
<p><strong>add_settings_field</strong></p>
<p>Die Funktion add_settings_field f&#252;gt ein Feld auf der Konfigurationsseite hinzu.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_settings_field<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #000088;">$callback</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$section</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'default'</span><span style="color: #339933;">,</span> <span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span></pre></div></div>

<ul>
<li>$id &#8211; Eindeutiger Bezeichner f&#252;r das anzulegende Konfigurationsfeld (im o.a. Bsp.: mg404_postproxy_enable).</li>
<li>$title &#8211; Titel wird als Kurzbeschreibung links vom Feld ausgegeben (im o.a. Bsp.: Activate PostProxy).</li>
<li>$callback &#8211; Callback-Funktion, um die Form zur Verwaltung auszugeben (im o.a. Bsp.: mg404_postproxy_enable_callback).</li>
<li>$page &#8211; Namen der Konfigurationsseite (general, reading, writing, media etc.). Muss mit dem angegebenen Wert $page in add_settings_section &#252;bereinstimmen (im o.a. Bsp.: misc).</li>
<li>$section &#8211; Muss mit dem angegebenen Wert $section in add_settings_section &#252;bereinstimmen (im o.a. Bsp.: mg404_setting_section).</li>
<li>&#8230;</li>
</ul>
<p><strong>register_setting</strong></p>
<p>Die Funktion register_setting meldet ein Feld zur Verwaltung durch WordPress an.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">register_setting<span style="color: #009900;">&#40;</span><span style="color: #000088;">$option_group</span><span style="color: #339933;">,</span> <span style="color: #000088;">$option_name</span><span style="color: #339933;">,</span> <span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span></pre></div></div>

<ul>
<li>$option_group &#8211; ? (im o.a. Bsp.: misc).</li>
<li>$option_name &#8211; Muss mit der $id aus add_settings_field &#252;bereinstimmen (im o.a. Bsp.: mg404_postproxy_enable).
<li>&#8230;</li>
</ul>
<p><strong>Callback-Funktionen</strong></p>
<p>Die Funktion mg404_setting_section_callback gibt lediglich eine Beschreibung f&#252;r den zuvor definierten Konfigurationsbereich aus.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mg404_setting_section_callback<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;p&gt;Intro text for our settings section&lt;/p&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>mg404_postproxy_enable_callback muss zur Verwaltung die Felder mit der dazugeh&#246;rigen ID f&#252;r die Form ausgeben und zus&#228;tlich muss der Wert &#252;ber get_option($id) richtig gesetzt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mg404_postproxy_enable_callback<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$checked</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mg404_postproxy_enable'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$checked</span><span style="color: #009900;">&#41;</span> 
		<span style="color: #000088;">$checked</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; checked='checked' &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;input <span style="color: #006699; font-weight: bold;">{$checked}</span> name='mg404_postproxy_enable' id='mg404_postproxy_enable' type='checkbox' value='1' class='regular-text code'&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Fertig?</strong></p>
<p>Mit einigen zus&#228;tzlichen Feldern sollte das Formular wie folgt aussehen.</p>
<p><img src="http://mgsimon.de/wp-content/uploads/2009/03/mg404rewrite_settings_misc.png" alt="mg404rewrite_settings_misc" title="mg404rewrite_settings_misc" width="450" height="199" class="alignnone size-full wp-image-688 stamp" /></p>
<p><strong>weiter &#8230;</strong></p>
<p>Der Einstiegspunkt wurde in <a href="http://mgsimon.de/2009/03/05/adwz-wp-plugin-15-http-response/">AdWz WP-Plugin 15 &#8211; HTTP-Response</a> gefunden und eine M&#246;glichkeit, das Plugin zu konfigurieren, hier beschrieben. Demn&#228;chst etwas &#252;ber regul&#228;re Ausdr&#252;cke, damit auch die richtigen POST-Forms gefunden werden &#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://mgsimon.de/2009/03/10/adwz-wp-plugin-16-konfiguration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

