<?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>Simbo.de</title>
	<atom:link href="http://simbo.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://simbo.de</link>
	<description>Digitales Allerlei.</description>
	<lastBuildDate>Mon, 21 Jun 2010 13:50:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>I love jazz.</title>
		<link>http://simbo.de/blog/2010/06/i-love-jazz/</link>
		<comments>http://simbo.de/blog/2010/06/i-love-jazz/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 13:43:04 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://simbo.de/?p=478</guid>
		<description><![CDATA[Wordpress 3.0 &#8220;Thelonious&#8221; ist vor ein paar Tagen erschienen und bringt viele langersehnte Funktionen nun von Haus aus mit: individuelle Posts und Navigationen, Header- und Hintergrundbilder für jedes Post und vieles mehr&#8230;
Nehmt euch 3 Minuten und schaut euch das Video an!

]]></description>
			<content:encoded><![CDATA[<p>Wordpress 3.0 &#8220;Thelonious&#8221; ist vor ein paar Tagen erschienen und bringt viele langersehnte Funktionen nun von Haus aus mit: individuelle Posts und Navigationen, Header- und Hintergrundbilder für jedes Post und vieles mehr&#8230;<br />
Nehmt euch 3 Minuten und schaut euch das Video an!</p>
<p><embed src="http://v.wordpress.com/wp-content/plugins/video/flvplayer.swf?ver=1.21" type="application/x-shockwave-flash" width="640" height="360" wmode="transparent" seamlesstabbing="true" allowfullscreen="true" allowscriptaccess="always" overstretch="true" flashvars="guid=BQtfIEY1&amp;width=640&amp;height=360&amp;locksize=no&amp;dynamicseek=false&amp;qc_publisherId=p-18-mFEk4J448M" title="Introducing WordPress 3.0 &quot;Thelonious&quot;"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2010/06/i-love-jazz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Survey 2009</title>
		<link>http://simbo.de/blog/2009/12/the-survey-2009/</link>
		<comments>http://simbo.de/blog/2009/12/the-survey-2009/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 18:18:28 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Online-Fundstücke]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://simbo.de/?p=469</guid>
		<description><![CDATA[Zum dritten Mal in Folge führt A List Apart wieder am Jahresende eine Umfrage unter allen &#8220;Web-Workern&#8221; durch. Dabei werden zahlreiche Aspekte wie professionelle Fähigkeiten, Bildungsstand, Bezüge und Leistungen sowie Karriereaussichten unter die Lupe genommen.
It’s to help the world understand who we are and what we do that, each year since 2007, we’ve asked you, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://simbo.de/wp-files/survey-logo-2009.gif" alt="" title="A List Apart - Web Design Survey 2009" width="220" height="128" class="alignright size-full wp-image-471" />Zum dritten Mal in Folge führt <a href="http://www.alistapart.com" title="A List Apart">A List Apart</a> wieder am Jahresende eine Umfrage unter allen &#8220;Web-Workern&#8221; durch. Dabei werden zahlreiche Aspekte wie professionelle Fähigkeiten, Bildungsstand, Bezüge und Leistungen sowie Karriereaussichten unter die Lupe genommen.</p>
<blockquote><p>It’s to help the world understand who we are and what we do that, each year since 2007, we’ve asked you, the members of the web design community, a few dozen questions about your professional life, and compared your answers to those of your colleagues. Each time we’ve asked, over 30,000 of you have kindly obliged with details about your salary, location, background, and more. The data that you provide and we analyze is the only significant information about our profession as a profession to be published anywhere, by anyone. That makes it important. That makes you and your answers very important indeed.</p></blockquote>
<p>Wie jedes Jahr habe auch ich wieder teilgenommen und solltest Du dich auch zur &#8220;web design community&#8221; zählen, mach doch auch mit&#8230;</p>
<p><a href="http://www.alistapart.com/articles/survey2009/"><img src="http://simbo.de/wp-files/i-took-the-2009-survey.gif" alt="" title="Take the Survey!" width="180" height="46" class="alignnone size-full wp-image-470" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/the-survey-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Depression &#8211; Wenn Promis am Leistungsdruck zerbrechen</title>
		<link>http://simbo.de/blog/2009/12/depression-wenn-promis-am-leistungsdruck-zerbrechen/</link>
		<comments>http://simbo.de/blog/2009/12/depression-wenn-promis-am-leistungsdruck-zerbrechen/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 15:11:46 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Offline-Fundstücke]]></category>

		<guid isPermaLink="false">http://simbo.de/?p=463</guid>
		<description><![CDATA[
Das Cover der aktuellen Ausgabe der Titanic fand ich einfach so gelungen, dass ich es niemandem vorenthalten möchte.
:)
]]></description>
			<content:encoded><![CDATA[<p><a href="http://simbo.de/wp-files/titanic-1209.jpg" rel="lightbox[463]" title="Titanic Cover - Dezember 2009"><img src="http://simbo.de/wp-files/titanic-1209-150x150.jpg" alt="Titanic Cover - Dezember 2009" title="Titanic Cover - Dezember 2009" width="150" height="150" class="alignright size-thumbnail wp-image-464" /></a></p>
<p>Das Cover der aktuellen Ausgabe der <a href="http://www.titanic-magazin.de/" title="Titanic Magazin">Titanic</a> fand ich einfach so gelungen, dass ich es niemandem vorenthalten möchte.</p>
<p>:)</p>
]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/depression-wenn-promis-am-leistungsdruck-zerbrechen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pretty_date &#8211; relative Zeitangaben in Worten</title>
		<link>http://simbo.de/blog/2009/12/pretty-date-relative-zeitangaben-in-worten/</link>
		<comments>http://simbo.de/blog/2009/12/pretty-date-relative-zeitangaben-in-worten/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:52:06 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://simbo.de/site/?p=75</guid>
		<description><![CDATA[Die Funktion pretty_date() erwartet als Parameter ein beliebiges in englischer Textform angegebenes Datum (siehe strtotime) und liefert eine Zeitangabe in Worten relativ zum jetzigen Zeitpunkt zurück, z.b. &#8220;vor einer viertel Stunde&#8221;, &#8220;heute Morgen&#8221;, &#8220;gestern Abend&#8221; oder &#8220;vor 2 Wochen&#8221;.

string pretty_date ( [ string $datestr='' ] )
Definition der Datumsangaben

Liegt das Datum weniger als 12,5 Minuten in [...]]]></description>
			<content:encoded><![CDATA[<p>Die Funktion <code>pretty_date()</code> erwartet als Parameter ein beliebiges in englischer Textform angegebenes Datum (siehe <code><a href="http://www.php.net/strtotime/">strtotime</a></code>) und liefert eine Zeitangabe in Worten relativ zum jetzigen Zeitpunkt zurück, z.b. <em>&#8220;vor einer viertel Stunde&#8221;</em>, <em>&#8220;heute Morgen&#8221;</em>, <em>&#8220;gestern Abend&#8221;</em> oder <em>&#8220;vor 2 Wochen&#8221;</em>.</p>
<p><span id="more-75"></span></p>
<p><em>string</em> <strong>pretty_date (</strong> [ <em>string</em> $datestr='' ] <strong>)</strong></p>
<h4>Definition der Datumsangaben</h4>
<dl>
<dt>Liegt das Datum weniger als 12,5 Minuten in der Vergangenheit wird ein String in folgender Form zurückgeliefert:</dt>
<dd><em>&#8220;vor einer Sekunde&#8221;, &#8220;vor <code>X</code> Sekunden&#8221;, &#8220;vor einer Minute&#8221;, &#8220;vor <code>X</code> Minuten&#8221;</em></dd>
<dt>Bei weniger als 60 Minuten:</dt>
<dd><em>&#8220;vor einer viertel Stunde&#8221;, &#8220;vor einer halben Stunde&#8221;, &#8220;vor einer dreiviertel Stunde&#8221;</em></dd>
<dt>Bei weniger als 6 Stunden:</dt>
<dd><em>&#8220;vor einer Stunde&#8221;, &#8220;vor <code>X</code> Stunden&#8221;</em></dd>
<dt>Bei weniger als 36 Stunden:</dd>
<dd><em>&#8220;heute Vormittag&#8221;, &#8220;letzte Nacht&#8221;, &#8220;gestern Abend&#8221;, &#8220;vorgestern Nachmittag&#8221;&#8230;</em><br />
Dabei gilt:</p>
<dl>
<dt><em>&#8220;Morgen&#8221;</em></dt>
<dd>(Tag beginnt) 05:00 &#8211; 9:00</dd>
<dt><em>&#8220;Vormittag&#8221;</em></dt>
<dd>09:00 &#8211; 11:30</dd>
<dt><em>&#8220;Mittag&#8221;</em></dt>
<dd>11:30 &#8211; 13:30</dd>
<dt><em>&#8220;Nachmittag&#8221;</em></dt>
<dd>13:30 &#8211; 18:00</dd>
<dt><em>&#8220;Abend&#8221;</em></dt>
<dd>18:00 &#8211; 22:30</dd>
<dt><em>&#8220;Nacht&#8221;</em></dt>
<dd>22:30 &#8211; 05:00 (Tag endet)</dd>
</dl>
</dd>
<dt>Bei weniger als 7 Tagen:</dt>
<dd><em>&#8220;vor einem Tag&#8221;, &#8220;vor <code>X</code> Tagen&#8221;</em></dd>
<dt>Bei weniger als 4 Wochen:</dt>
<dd><em>&#8220;vor einer Woche&#8221;, &#8220;vor <code>X</code> Wochen&#8221;</em></dd>
<dt>Bei weniger als 12 Monaten:</dt>
<dd><em>&#8220;vor einem Monat&#8221;, &#8220;vor <code>X</code> Monaten&#8221;</em></dd>
<dt>Bei weniger als 18 Monaten:</dt>
<dd><em>&#8220;vor einem Jahr&#8221;, &#8220;vor eineinhalb Jahren&#8221;</em></dd>
<dt>Bei mehr als 18 Monaten:</dt>
<dd><em>&#8220;vor <code>X</code> Jahren&#8221;</em></dd>
</dl>
<h4>Quelltext</h4>

<div class="wp_syntax"><table><tr><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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> pretty_date<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$datestr</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$now</span> <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$datestr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$now</span><span style="color: #339933;">-</span><span style="color: #000088;">$date</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">60</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span>?<span style="color: #0000ff;">'einer Sekunde'</span><span style="color: #339933;">:</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Sekunden'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span> <span style="color: #339933;">&lt;</span> <span style="color:#800080;">12.5</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span>?<span style="color: #0000ff;">'einer Minute'</span><span style="color: #339933;">:</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Minuten'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor einer viertel Stunde'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor einer halben Stunde'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span>
			<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor einer dreiviertel Stunde'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">6</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span>?<span style="color: #0000ff;">'einer Stunde'</span><span style="color: #339933;">:</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Stunden'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">36</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// ein Tag beginnt um 5 Uhr morgens</span>
		<span style="color: #000088;">$day_start</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'j'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$now</span><span style="color: #339933;">-</span><span style="color: #000088;">$day_start</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'j'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">-</span><span style="color: #000088;">$day_start</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'heute'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'j'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$now</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$day_start</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'j'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$date</span><span style="color: #339933;">-</span><span style="color: #000088;">$day_start</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'gestern'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">else</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'vorgestern'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$hour_date</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'G'</span><span style="color: #339933;">,</span><span style="color: #000088;">$date</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span><span style="color: #000088;">$date</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$hour_now</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'G'</span><span style="color: #339933;">,</span><span style="color: #000088;">$now</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'i'</span><span style="color: #339933;">,</span><span style="color: #000088;">$now</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">60</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;">$hour_date</span><span style="color: #339933;">&gt;=</span><span style="color:#800080;">22.5</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$day_start</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$r</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'gestern'</span> ? <span style="color: #0000ff;">'letzte Nacht'</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$r</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Nacht'</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&gt;=</span><span style="color: #000088;">$day_start</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">9</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' Morgen'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&gt;=</span><span style="color: #cc66cc;">9</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&lt;</span><span style="color:#800080;">11.5</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' Vormittag'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&gt;=</span><span style="color:#800080;">11.5</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&lt;</span><span style="color:#800080;">13.5</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' Mittag'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&gt;=</span><span style="color:#800080;">13.5</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">18</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' Nachmittag'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&gt;=</span><span style="color: #cc66cc;">18</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$hour_date</span><span style="color: #339933;">&lt;</span><span style="color:#800080;">22.5</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #000088;">$r</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' Abend'</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$r</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">24</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">7</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span>?<span style="color: #0000ff;">'einem Tag'</span><span style="color: #339933;">:</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Tagen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$d_weeks</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d_weeks</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d_weeks</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span>?<span style="color: #0000ff;">'einer Woche'</span><span style="color: #339933;">:</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Wochen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">30</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">12</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span>?<span style="color: #0000ff;">'einem Monat'</span><span style="color: #339933;">:</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Monaten'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">18</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor einem Jahr'</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$d</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">21</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor eineinhalb Jahren'</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'vor '</span><span style="color: #339933;">.</span><span style="color: #000088;">$d</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Jahren'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/pretty-date-relative-zeitangaben-in-worten/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>AJAX Kommentare</title>
		<link>http://simbo.de/blog/2009/12/ajax-kommentare/</link>
		<comments>http://simbo.de/blog/2009/12/ajax-kommentare/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 16:44:26 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Theme Entwicklung]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://simbo.de/site/?p=299</guid>
		<description><![CDATA[Es gibt zahlreiche Plugins für Wordpress, die dafür sorgen, dass Kommentare von Besuchern per AJAX eingetragen werden. Die meisten davon schaffen es nicht lange mit den aktuellen Versionen von Wordpress kompatibel zu bleiben und diejenigen die es schaffen, sind so überladen mit Schnickschnack und hässlichen Frontendgestaltungen, dass ich soviel Zeit brauche alles nach meinen Wünschen [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt zahlreiche Plugins für Wordpress, die dafür sorgen, dass Kommentare von Besuchern per AJAX eingetragen werden. Die meisten davon schaffen es nicht lange mit den aktuellen Versionen von Wordpress kompatibel zu bleiben und diejenigen die es schaffen, sind so überladen mit Schnickschnack und hässlichen Frontendgestaltungen, dass ich soviel Zeit brauche alles nach meinen Wünschen anzupasssen, da kann ich gleich alles von vornerein neu machen.</p>
<p><span id="more-299"></span></p>
<p>Zuerst mal brauche ich dafür ein PHP-Skript, dass nicht nur die Formulardaten verarbeitet und bei erfolgreicher Überprüfung ein neues Kommentar anlegt, sondern auch eine Ausgabe erzeugt, die man mit Javascript leicht verarbeiten kann.</p>
<h4>Die normale Kommentarverarbeitung in Wordpress 2.8+</h4>
<p>Ohne AJAX übernimmt die Datei <code>wp-comments-post.php</code>, die sich im Wordpress-Stammverzeichnis befindet, das Verarbeiten des Kommentarformulars. Kann ein Kommentar, aus welchen Gründen auch immer, nicht eingetragen werden, gibt das Skript über die Wordpress-interne Funktion <code>wp_die()</code> eine kleine HTML-Seite mitsamt Fehlerbeschreibung aus. Sollte nichts gegen das Erstellen des Kommentars sprechen, wird es angelegt und mit der ebenfalls Wordpress-internen Funktion <code>wp_redirect()</code> wird auf die zum Kommentar gehörende Artikelseite weitergeleitet.</p>
<p>Die Vermeidung von Doppelpostings und Flooding wird nicht direkt innerhalb von <code>wp-comment-post.php</code> geregelt, sondern im Zuge der Funktion <code>wp_new_comment()</code>. Die per Filter im Laufe der Funktion angewandten Funktionen <code>wp_allow_comment()</code> und <code>check_comment_flood_db()</code> (beide definiert in <code>wp-includes/comment.php</code>) sind dafür verantwortlich und liefern bei positivem Befund ebenfalls eine HTML-Seite per <code>wp_die()</code>. Aber hier haben die Wordpress-Entwickler bereits Vorarbeit geleistet: Ist eine Konstante namens <code>DOING_AJAX</code> definiert, wird bei Doppelpostings und Flooding stattdessen direkt <code>die()</code> verwendet und die Fehlermeldung als reiner Text ausgegeben.</p>
<h4>Los gehts&hellip;</h4>
<p>Ich nehme mir also die Datei <code>wp-comments-post.php</code> als Vorlage für mein PHP-Skript zur Formularverarbeitung mit AJAX. Dazu erstelle ich eine Kopie der Datei unter dem Namen <code>new-comment.php</code> und speichere diese im Unterverzeichnis <code>ajax</code> meines Themeordners. Falls bei einem zukünftigen Update von Wordpress die <code>wp-comments-post.php</code> verändert wird und ich somit meine <code>new-comment.php</code> neu erstellen muss, markiere ich vorsichtshalber alle geänderten Stellen im Quelltext um die Anpassungen später besser nachvollziehen und wiederholen zu können. Ich habe auf Wordpress.org auch bereits den <a href="http://wordpress.org/extend/ideas/topic.php?id=3389">Vorschlag gemacht</a>, diese Anpassungen von Haus aus in <code>wp-comments-post.php</code> zu integrieren um die Implementierung von AJAX Kommentaren in Zukunft zu vereinfachen.</p>
<p>Damit das Skript innerhalb der Wordpress-Umgebung ausgeführt wird, muss der Pfad zu <code>wp-load.php</code> ziemlich am Anfang der Datei angepasst werden. Direkt davor füge ich <code>define('DOING_AJAX',1);</code> ein. Damit anstatt der HTML-Fehlerseiten reine Textnachrichten ausgegeben werden, ersetze ich alle Vorkommen von <code>wp_die()</code> durch die Funktion <code>die()</code>. Die letzten 3 Zeilen der Datei, die verantwortlich für den Redirect sind, kommentiere ich aus. In der Variablen <code>$comment</code> ist nun das Objekt des eben erstellten Kommentars gespeichert. Nachdem ich den Content des Kommentars gefiltert und das Datum formatiert habe, verwandle ich das Objekt in einen JSON-String und gebe ihn per <code>die()</code> aus. Das PHP-Skript liefert nun also im Fehlerfall eine Textmeldung zurück und im Erfolgsfalls das eben erstellte Kommentar.</p>
<p>Meine <code>new-comment.php</code> sieht jetzt so aus:</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
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**-----------------------------------------------------------------------------
 *	start	/wp-comments-post.php
 *	changes start with //## and end with //^^
 */</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'POST'</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_METHOD'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Allow: POST'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HTTP/1.1 405 Method Not Allowed'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Type: text/plain'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/** Sets up the WordPress Environment. */</span>
<span style="color: #666666; font-style: italic;">//## require( dirname(__FILE__) . '/wp-load.php' );</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'DOING_AJAX'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">require</span>  <span style="color: #0000ff;">'../../../../wp-load.php'</span> <span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//^^</span>
&nbsp;
nocache_headers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$comment_post_ID</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment_post_ID'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$status</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_row</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT post_status, comment_status FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> WHERE ID = <span style="color: #009933; font-weight: bold;">%d</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$status</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_status</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	do_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_id_not_found'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>comments_open<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	do_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_closed'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//## wp_die( __('Sorry, comments are closed for this item.') );</span>
	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Sorry, comments are closed for this item.'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//^^</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$status</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_status</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'draft'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pending'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	do_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_on_draft'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	do_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'pre_comment_on_post'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$comment_author</span>       <span style="color: #339933;">=</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;">'author'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>  ? <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'author'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$comment_author_email</span> <span style="color: #339933;">=</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;">'email'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>   ? <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$comment_author_url</span>   <span style="color: #339933;">=</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;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>     ? <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$comment_content</span>      <span style="color: #339933;">=</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;">'comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> ? <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// If the user is logged in</span>
<span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> wp_get_current_user<span style="color: #009900;">&#40;</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;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</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: #990000;">empty</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display_name</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display_name</span><span style="color: #339933;">=</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">user_login</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$comment_author</span>       <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display_name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$comment_author_email</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">user_email</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$comment_author_url</span>   <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">user_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> current_user_can<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'unfiltered_html'</span><span style="color: #009900;">&#41;</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> wp_create_nonce<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'unfiltered-html-comment_'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$comment_post_ID</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'_wp_unfiltered_html_comment'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			kses_remove_filters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// start with a clean slate</span>
			kses_init_filters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// set up the filters</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_registration'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #0000ff;">'private'</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$status</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_status</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #666666; font-style: italic;">//## wp_die( __('Sorry, you must be logged in to post a comment.') );</span>
		<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Sorry, you must be logged in to post a comment.'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//^^</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$comment_type</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'require_name_email'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</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: #cc66cc;">6</span> <span style="color: #339933;">&gt;</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment_author_email</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #0000ff;">''</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$comment_author</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #666666; font-style: italic;">//## wp_die( __('Error: please fill the required fields (name, email).') );</span>
		<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Error: please fill the required fields (name, email).'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//^^</span>
	<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>is_email<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment_author_email</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #666666; font-style: italic;">//## wp_die( __('Error: please enter a valid email address.') );</span>
		<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Error: please enter a valid email address.'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//^^</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">''</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$comment_content</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #666666; font-style: italic;">//## wp_die( __('Error: please type a comment.') );</span>
	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span> __<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Error: please type a comment.'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//^^</span>
&nbsp;
<span style="color: #000088;">$comment_parent</span> <span style="color: #339933;">=</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;">'comment_parent'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? absint<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment_parent'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$commentdata</span> <span style="color: #339933;">=</span> <span style="color: #990000;">compact</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_post_ID'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'comment_author'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'comment_author_email'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'comment_author_url'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'comment_content'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'comment_type'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'comment_parent'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'user_ID'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$comment_id</span> <span style="color: #339933;">=</span> wp_new_comment<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$commentdata</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$comment</span> <span style="color: #339933;">=</span> get_comment<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment_id</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: #339933;">!</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$comment_cookie_lifetime</span> <span style="color: #339933;">=</span> apply_filters<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_cookie_lifetime'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30000000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_author_'</span> <span style="color: #339933;">.</span> COOKIEHASH<span style="color: #339933;">,</span> <span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_author</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$comment_cookie_lifetime</span><span style="color: #339933;">,</span> COOKIEPATH<span style="color: #339933;">,</span> COOKIE_DOMAIN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_author_email_'</span> <span style="color: #339933;">.</span> COOKIEHASH<span style="color: #339933;">,</span> <span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_author_email</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$comment_cookie_lifetime</span><span style="color: #339933;">,</span> COOKIEPATH<span style="color: #339933;">,</span> COOKIE_DOMAIN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_author_url_'</span> <span style="color: #339933;">.</span> COOKIEHASH<span style="color: #339933;">,</span> esc_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_author_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$comment_cookie_lifetime</span><span style="color: #339933;">,</span> COOKIEPATH<span style="color: #339933;">,</span> COOKIE_DOMAIN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//##</span>
<span style="color: #666666; font-style: italic;">// $location = empty($_POST['redirect_to']) ? get_comment_link($comment_id) : $_POST['redirect_to'] . '#comment-' . $comment_id;</span>
<span style="color: #666666; font-style: italic;">// $location = apply_filters('comment_post_redirect', $location, $comment);</span>
<span style="color: #666666; font-style: italic;">// wp_redirect($location);</span>
<span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_content</span> <span style="color: #339933;">=</span> apply_filters<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_text'</span><span style="color: #339933;">,</span><span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_date</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'l, j. F Y G:i'</span><span style="color: #339933;">,</span><span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_date</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">json_encode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//^^</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**-----------------------------------------------------------------------------
 *	end	/wp-comments-post.php
 */</span></pre></td></tr></table></div>

<p>Jetzt da ich eine Datei habe, die meine AJAX-Anfrage verarbeiten und beantworten kann, kann ich das zugehörige Javascript basteln. Ein <code>div</code> wird beim Formular eingefügt um den Ladestatus oder eine Fehlermeldung anzuzeigen. Der Rest ist ein simpler <code><a href="http://docs.jquery.com/Ajax/jQuery.ajax">jQuery.ajax()</a></code>-Aufruf, der beim <code>success</code>-Event den zurückgelieferten Text als Fehlermeldung in besagtem <code>div</code> anzeigt oder, sollte der Text mit einem <code>{</code> beginnen, ihn als JSON-Objekt des neuen Kommentars behandelt. Aus den Kommentardaten lasse ich ein HTML-Konstrukt erstellen, das dem Kommentarlisteneintrag meines Templates entspricht, und füge es in dann in die Liste ein. Sollte es auf der Seite noch keine Kommentare geben, wird der gesamte notwendige Bereich mitsamt Überschrift erstellt und eingefügt. Den HTML-Teil und das Einreihen in das DOM sollte man natürlich an sein jeweiliges Theme anpassen. Bei mir sieht das dann so aus:</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
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
42
43
44
45
46
47
48
49
50
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">// ajax comments</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#commentform'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> ac <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
			form<span style="color: #339933;">:</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#commentform'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			response<span style="color: #339933;">:</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id=&quot;response&quot; /&gt;'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
		ac.<span style="color: #660066;">form</span>.<span style="color: #660066;">before</span><span style="color: #009900;">&#40;</span>ac.<span style="color: #660066;">response</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">submit</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			jQuery.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				type<span style="color: #339933;">:</span> <span style="color: #3366CC;">'POST'</span><span style="color: #339933;">,</span>
				url<span style="color: #339933;">:</span> TPLDIR<span style="color: #339933;">+</span><span style="color: #3366CC;">'ajax/new-comment.php'</span><span style="color: #339933;">,</span>
				dataType<span style="color: #339933;">:</span> <span style="color: #3366CC;">'text'</span><span style="color: #339933;">,</span>
				data<span style="color: #339933;">:</span> ac.<span style="color: #660066;">form</span>.<span style="color: #660066;">serialize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
				beforeSend<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					ac.<span style="color: #660066;">response</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'error success'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'fast'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
				success<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> r.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #3366CC;">'{'</span> <span style="color: #009900;">&#41;</span>
						ac.<span style="color: #660066;">response</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'error'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
						ac.<span style="color: #660066;">form</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'textarea'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span>
						ac.<span style="color: #660066;">response</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'success'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Dein Kommentar wurde erfolgreich eingetragen.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						c <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'('</span><span style="color: #339933;">+</span>r<span style="color: #339933;">+</span><span style="color: #3366CC;">')'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #003366; font-weight: bold;">var</span> comment_count <span style="color: #339933;">=</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ol.commentlist li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
						<span style="color: #003366; font-weight: bold;">var</span> comment_html <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;li id=&quot;comment-'</span><span style="color: #339933;">+</span>c.<span style="color: #660066;">comment_ID</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; class=&quot;comment'</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>c.<span style="color: #660066;">user_id</span><span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">?</span><span style="color: #3366CC;">' user'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>comment_count<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #339933;">?</span><span style="color: #3366CC;">' first'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;'</span>
							<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;div class=&quot;comment-count&quot;&gt;'</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>parseInt<span style="color: #009900;">&#40;</span>comment_count<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/div&gt;'</span>
							<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;div class=&quot;comment-author&quot;&gt;'</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>c.<span style="color: #660066;">comment_author_url</span><span style="color: #339933;">!=</span><span style="color: #3366CC;">''</span><span style="color: #339933;">?</span><span style="color: #3366CC;">'&lt;a href=&quot;'</span><span style="color: #339933;">+</span>c.<span style="color: #660066;">comment_author_url</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;'</span><span style="color: #339933;">+</span>c.<span style="color: #660066;">comment_author</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/a&gt;'</span><span style="color: #339933;">:</span>c.<span style="color: #660066;">comment_author</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/div&gt;'</span>
							<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;div class=&quot;comment-date&quot; title=&quot;'</span><span style="color: #339933;">+</span>c.<span style="color: #660066;">comment_date</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;vor einer Sekunde'</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>c.<span style="color: #660066;">comment_approved</span><span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #339933;">?</span><span style="color: #3366CC;">' (noch nicht freigeschaltet)'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/div&gt;'</span>
							<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;div class=&quot;entry&quot;&gt;'</span><span style="color: #339933;">+</span>c.<span style="color: #660066;">comment_content</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/div&gt;'</span>
							<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/li&gt;'</span><span style="color: #339933;">;</span>
						<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> comment_count <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span>
							jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class=&quot;comments&quot;&gt;&lt;h3 class=&quot;post-title&quot;&gt;Bisher eine Reaktion&lt;/h3&gt;&lt;ol class=&quot;commentlist&quot;&gt;'</span><span style="color: #339933;">+</span>comment_html<span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/ol&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">insertBefore</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#respond'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'medium'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
							jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#comments h3'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Bisher '</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>parseInt<span style="color: #009900;">&#40;</span>comment_count<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">' Reaktionen'</span><span style="color: #009900;">&#41;</span>
							jQuery<span style="color: #009900;">&#40;</span>comment_html<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ol.commentlist'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'medium'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
					jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
				error<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>XMLHttpRequest<span style="color: #339933;">,</span> textStatus<span style="color: #339933;">,</span> errorThrown<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					ac.<span style="color: #660066;">response</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'error'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Fehler: Die AJAX-Anfrage ist fehlgeschlagen (&quot;</span><span style="color: #339933;">+</span>textStatus<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#submit'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Damit alles noch akzeptabel aussieht, braucht es noch eine Loading-Animation, die ich mir bei <a href="http://www.ajaxload.info">Ajaxload.info</a> erstelle, und eine Priese CSS:</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
14
15
16
17
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*----- ajax comments -----*/</span>
&nbsp;
<span style="color: #cc00cc;">#response</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">3em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#response</span><span style="color: #6666ff;">.loading</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'images/loading.gif'</span><span style="color: #00AA00;">&#41;</span> <span style="color: #000000; font-weight: bold;">top</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#response</span><span style="color: #6666ff;">.success</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#222222</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#response</span><span style="color: #6666ff;">.error</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#aa1010</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<h4>Fertig.</h4>
<p>Die Kommentare werden nun per AJAX eingetragen, es werden Ladestatus, Fehler- bzw. Erfolgsmeldungen am Formular angezeigt und das neue Kommentar wird direkt in die Kommentarliste eingefügt. Verschachtelte Kommentare habe ich in diesem Skript nicht beachtet, da ich sie bisher nicht nutze. Da aber im JSON-Objekt des Kommentars auch die ID des Elternkommentars enthalten ist, dürfte es ein Leichtes sein, die entsprechende Stelle im DOM zu finden und es dort einzufügen.</p>
]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/ajax-kommentare/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WP-Syntax Quelltexte mit Lightbox-Effekt</title>
		<link>http://simbo.de/blog/2009/12/wp-syntax-quelltexte-mit-lightbox-effekt/</link>
		<comments>http://simbo.de/blog/2009/12/wp-syntax-quelltexte-mit-lightbox-effekt/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 17:11:44 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Theme Entwicklung]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://simbo.de/site/?p=217</guid>
		<description><![CDATA[Quelltexte brauchen Platz auf dem Bildschirm &#8211; sowohl in der vertikalen als auch in der horizontalen. Ihnen innerhalb einer Webseite angemessenen Platz zu verschaffen, würde so ziemlich jedem Seitentemplate wortwörtlich den Rahmen sprengen. Trotzdem wollen Quelltexte im Detail betrachtet werden ohne ständig in zwei Achsen scrollen zu müssen. Nach dem ich mich mit diesem Problem [...]]]></description>
			<content:encoded><![CDATA[<p>Quelltexte brauchen Platz auf dem Bildschirm &#8211; sowohl in der vertikalen als auch in der horizontalen. Ihnen innerhalb einer Webseite angemessenen Platz zu verschaffen, würde so ziemlich jedem Seitentemplate wortwörtlich den Rahmen sprengen. Trotzdem wollen Quelltexte im Detail betrachtet werden ohne ständig in zwei Achsen scrollen zu müssen. Nach dem ich mich mit diesem Problem nun fast den ganzen Tag beschäftigt habe, bin ich denke ich mittlerweile zu einer sehr gute Lösung gekommen.</p>
<p><span id="more-217"></span></p>
<p>Mit Hilfe von jQuery wird zu jedem von WP-Syntax erzeugten Quelltextfeld ein Link &#8220;Fenster vergrößern&#8221; eingefügt. Klickt man auf den Link, wird ähnlich wie bei Lightbox/Thickbox-Effekten eine abdunkelnde Ebene eingeblendet, die einen Klon des betreffenden Quelltextfeldes enthält. Dieser Klon passt sich je nach Browserfenstergröße an, um die zur Verfügung stehende Fläche großzügig auszunutzen. Um das Overlay wieder auszublenden kann man entweder die Tasten ESC oder Q drücken, auf &#8220;Fenster schließen&#8221; klicken oder einfach in den abgedunkelten Hintergrund. Eine Demonstration ist an jeder Quelltextbox hier auf der Seite zu sehen.</p>
<p>Die nötigen Anpassungen der Stylesheets in der Datei <code>styles.css</code>:</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
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*----- wp_syntax lightbox (wsl) -----*/</span>
&nbsp;
<span style="color: #cc00cc;">#wsl-wrap</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#wsl-overlay</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#wsl-box</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">fixed</span> !important<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">9999</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#wsl-overlay</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#000000</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#wsl-box</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#wsl-close</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#222222</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#bbbbbb</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#wsl-close</span>.hover<span style="color: #00AA00;">,</span>
<span style="color: #cc00cc;">#wsl-close</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#bb5500</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#wsl-box</span> <span style="color: #6666ff;">.wp_syntax</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ffffff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">max-height</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.wsl-open</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#666666</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.wsl-open</span>.hover<span style="color: #00AA00;">,</span>
<span style="color: #6666ff;">.wsl-open</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#bb5500</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Falls nicht sowieso schon geschehen, das Registrieren und Einreihen des Javascripts, abhängig von jQuery, in der Datei <code>functions.php</code>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">wp_register_script<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'scripts'</span><span style="color: #339933;">,</span>TPLDIR<span style="color: #339933;">.</span><span style="color: #0000ff;">'scripts.js'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'jquery'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
wp_enqueue_script<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'scripts'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Zu guter Letzt das Herzstück, der Javascript-Code, in der Datei <code>scripts.js</code>:</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
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// wp-syntax lightbox (wsl)</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!/</span>android<span style="color: #339933;">|</span>iphone<span style="color: #339933;">|</span>ipod<span style="color: #339933;">|</span>series60<span style="color: #339933;">|</span>symbian<span style="color: #339933;">|</span>windows ce<span style="color: #339933;">|</span>blackberry<span style="color: #339933;">/</span>i.<span style="color: #660066;">test</span><span style="color: #009900;">&#40;</span>navigator.<span style="color: #660066;">userAgent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.wp_syntax'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> wsl <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
			wrap	<span style="color: #339933;">:</span>	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id=&quot;wsl-wrap&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			overlay	<span style="color: #339933;">:</span>	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id=&quot;wsl-overlay&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'opacity'</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0.7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			box	<span style="color: #339933;">:</span>	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id=&quot;wsl-box&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #000066;">close</span>	<span style="color: #339933;">:</span>	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id=&quot;wsl-close&quot;&gt;Fenster schlie&amp;szlig;en&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #000066;">open</span>	<span style="color: #339933;">:</span>	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class=&quot;wsl-open&quot;&gt;Fenster vergr&amp;ouml;&amp;szlig;ern&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
			speed	<span style="color: #339933;">:</span>	<span style="color: #3366CC;">'fast'</span><span style="color: #339933;">,</span>
			fadeIn	<span style="color: #339933;">:</span>	<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>wp_syntax<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						wsl.<span style="color: #660066;">box</span>.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
							.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>wsl.<span style="color: #000066;">close</span>.<span style="color: #660066;">clone</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
							.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span> wp_syntax <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						wsl.<span style="color: #660066;">fit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						wsl.<span style="color: #660066;">wrap</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span>wsl.<span style="color: #660066;">fade</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
			fadeOut	<span style="color: #339933;">:</span>	<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						wsl.<span style="color: #660066;">wrap</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span>wsl.<span style="color: #660066;">fade</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
			fit	<span style="color: #339933;">:</span>	<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #003366; font-weight: bold;">var</span> ww <span style="color: #339933;">=</span> jQuery<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
							wh <span style="color: #339933;">=</span> jQuery<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
							mw <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>ww<span style="color: #339933;">*</span><span style="color: #CC0000;">0.94</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
							mh <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>wh<span style="color: #339933;">*</span><span style="color: #CC0000;">0.94</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">20</span><span style="color: #339933;">;</span>
						wsl.<span style="color: #660066;">box</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
							width<span style="color: #339933;">:</span> mw<span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #339933;">,</span>
							left<span style="color: #339933;">:</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>ww<span style="color: #339933;">*</span><span style="color: #CC0000;">0.03</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #339933;">,</span>
							top<span style="color: #339933;">:</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>wh<span style="color: #339933;">*</span><span style="color: #CC0000;">0.03</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span>
						<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.wp_syntax'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
							maxWidth<span style="color: #339933;">:</span> mw<span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #339933;">,</span>
							maxHeight<span style="color: #339933;">:</span> mh<span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span>
						<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
		jQuery.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span> wsl.<span style="color: #000066;">close</span><span style="color: #339933;">,</span> wsl.<span style="color: #660066;">overlay</span> <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> el <span style="color: #339933;">=</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			el.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> wsl.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span>
				.<span style="color: #660066;">hover</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>el.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hover'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>el.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hover'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span> wsl.<span style="color: #660066;">wrap</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>wsl.<span style="color: #660066;">overlay</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>wsl.<span style="color: #660066;">box</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.wp_syntax'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> wp_syntax <span style="color: #339933;">=</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			wp_syntax.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'margin-top'</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">before</span><span style="color: #009900;">&#40;</span> wsl.<span style="color: #000066;">open</span>.<span style="color: #660066;">clone</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> wsl.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span>wp_syntax.<span style="color: #660066;">clone</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		jQuery<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">resize</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			wsl.<span style="color: #660066;">fit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">keydown</span><span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>ev<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>ev.<span style="color: #660066;">keyCode</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">27</span><span style="color: #339933;">:</span> <span style="color: #006600; font-style: italic;">// [Esc]</span>
				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">81</span><span style="color: #339933;">:</span> <span style="color: #006600; font-style: italic;">// [Q]</span>
					wsl.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/wp-syntax-quelltexte-mit-lightbox-effekt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rauch, Licht, Kaffeeflecken oder einfach gute Pinsel</title>
		<link>http://simbo.de/blog/2009/12/rauch-licht-kaffeeflecken-oder-einfach-gute-pinsel/</link>
		<comments>http://simbo.de/blog/2009/12/rauch-licht-kaffeeflecken-oder-einfach-gute-pinsel/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 06:22:46 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Online-Fundstücke]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://simbo.de/?p=421</guid>
		<description><![CDATA[Auf Colorburned gibt es hochwertige Brush-Sets für Photoshop und Illustrator gratis zum Download. Das Angebot reicht von einer großen Auswahl an normalen Farbpinseln über Tropfen-, Flecken- und Deformationseffekte bis hin zu Lichtreflexionen, Rauch- und Feuereffekten. Sowas kann man immer gut gebrauchen&#8230;


http://colorburned.com/brushes/
]]></description>
			<content:encoded><![CDATA[<p>Auf <a href="http://colorburned.com/" title="Colorburned">Colorburned</a> gibt es hochwertige Brush-Sets für Photoshop und Illustrator gratis zum Download. Das Angebot reicht von einer großen Auswahl an normalen Farbpinseln über Tropfen-, Flecken- und Deformationseffekte bis hin zu Lichtreflexionen, Rauch- und Feuereffekten. Sowas kann man immer gut gebrauchen&#8230;</p>
<p><span id="more-421"></span></p>
<p><a href="http://simbo.de/wp-files/colorburned-photoshop-smoke-brushes.jpg" rel="lightbox[421]" title="Colorburned Photoshop Smoke Brushes"><img src="http://simbo.de/wp-files/colorburned-photoshop-smoke-brushes-150x150.jpg" alt="Colorburned Photoshop Smoke Brushes" title="Colorburned Photoshop Smoke Brushes" width="150" height="150" class="alignleft size-thumbnail wp-image-449" /></a><a href="http://simbo.de/wp-files/42-smokey-light-effects-brushes-3.jpg" rel="lightbox[421]" title="Colorburned Smoke Brush"><img src="http://simbo.de/wp-files/42-smokey-light-effects-brushes-3-150x150.jpg" alt="Colorburned Smoke Brush" title="Colorburned Smoke Brush" width="150" height="150" class="alignleft size-thumbnail wp-image-433" /></a><a href="http://simbo.de/wp-files/colorburned-light-brushes.jpg" rel="lightbox[421]" title="Colorburned Light Brushes"><img src="http://simbo.de/wp-files/colorburned-light-brushes-150x150.jpg" alt="Colorburned Light Brushes" title="Colorburned Light Brushes" width="150" height="150" class="alignleft size-thumbnail wp-image-443" /></a><a href="http://simbo.de/wp-files/colorburned-paint-brushes.jpg" rel="lightbox[421]" title="Colorburned Paint Brushes"><img src="http://simbo.de/wp-files/colorburned-paint-brushes-150x150.jpg" alt="Colorburned Paint Brushes" title="Colorburned Paint Brushes" width="150" height="150" class="alignnone size-thumbnail wp-image-444" /></a></p>
<p><a href="http://colorburned.com/brushes/" title="Colorburned Brushes">http://colorburned.com/brushes/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/rauch-licht-kaffeeflecken-oder-einfach-gute-pinsel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Syntax und fehlerhaftes Escaping?</title>
		<link>http://simbo.de/blog/2009/12/wp-syntax-und-fehlerhaftes-escaping/</link>
		<comments>http://simbo.de/blog/2009/12/wp-syntax-und-fehlerhaftes-escaping/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 18:51:57 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Konfiguration]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://simbo.de/site/?p=91</guid>
		<description><![CDATA[Der Wordpress Plugin WP-Syntax leistet bei mir hervorragende Arbeit bei der Einbindung von Quelltexten aller Art in meine Artikel. Leider wurden bisher des öfteren Zeichen wie &#60;, &#62; und &#38; innerhalb der Quelltexte im Content als die jeweiligen HTML-Sonderzeichencodes &#38;lt;, &#38;gt; und &#38;amp; angezeigt. Zuerst hatte ich fälschlicherweise den Verdacht, es liegt an den Content-Filtern [...]]]></description>
			<content:encoded><![CDATA[<p>Der Wordpress Plugin <a href="http://wordpress.org/extend/plugins/wp-syntax/">WP-Syntax</a> leistet bei mir hervorragende Arbeit bei der Einbindung von Quelltexten aller Art in meine Artikel. Leider wurden bisher des öfteren Zeichen wie <code>&lt;</code>, <code>&gt;</code> und <code>&amp;</code> innerhalb der Quelltexte im Content als die jeweiligen HTML-Sonderzeichencodes <code>&amp;lt;</code>, <code>&amp;gt;</code> und <code>&amp;amp;</code> angezeigt. Zuerst hatte ich fälschlicherweise den Verdacht, es liegt an den Content-Filtern des Plugins selbst, da dieses Thema auch auf anderen Seiten (z.B. <a href="http://blog.felho.hu/escaping-problem-with-wp-syntax-wordpress-plugin.html">hier</a> und <a href="http://blog.m-ri.de/index.php/2008/03/30/wie-man-wp-syntax-noch-etwas-tunen-kann/">hier</a>) bereits diskutiert wird.</p>
<p><span id="more-91"></span></p>
<p>Aber wie sich herausstellte, lag es nicht an WP-Syntax, sondern an der aktivierten Option &#8220;falsch verschachteltes XHTML automatisch korrigieren&#8221; unter &#8220;Einstellungen / Schreiben&#8221; in der Wordpress Konfiguration. Die ersetzte nicht nur fälschlicherweise die Sonderzeichen zweifach, wodurch am Ende die Zeichencodes im Artikel angezeigt werden, sondern fügte sogar oftmals ein zweites <code>&lt;/pre&gt;</code> hinter dem Quelltext ein und sorgte somit dafür, dass das XHTML erst recht falsch verschachtelt wurde.</p>
<p>Option deaktivert. Ein Problem weniger.</p>
]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/wp-syntax-und-fehlerhaftes-escaping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nützliche Konstanten für Wordpress Templates und Plugins</title>
		<link>http://simbo.de/blog/2009/12/nutzliche-konstanten-fur-wordpress-templates-und-plugins/</link>
		<comments>http://simbo.de/blog/2009/12/nutzliche-konstanten-fur-wordpress-templates-und-plugins/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 17:20:52 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin Entwicklung]]></category>
		<category><![CDATA[Theme Entwicklung]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://simbo.de/site/?p=160</guid>
		<description><![CDATA[Für wiederholt in Templatedateien und Pluginscripts verwendete Variablen und Funktionen mit konstanten Rückgabewerten lohnt es sich, in der functions.php Konstanten anzulegen und diese stattdessen zu verwenden. Das spart nicht nur Tipparbeit sondern verbessert auch die Performance.

Ich verwende meist folgenden Code-Block als Vorlage:

1
2
3
4
5
6
7
8
define&#40;'HOME', get_option&#40;'home'&#41;.'/' &#41;;
define&#40;'NAME', get_bloginfo&#40;'name'&#41; &#41;;
define&#40;'TPLPATH', ABSPATH.'wp-content/themes/'.get_option&#40;'template'&#41;.'/' &#41;;
define&#40;'TPLDIR', get_bloginfo&#40;'template_directory'&#41;.'/' &#41;;
define&#40;'IMGDIR', TPLDIR.'images/' &#41;;
define&#40;'UPLOADDIR', get_option&#40;'upload_url_path'&#41;.'/' &#41;;
define&#40;'TAGURL', HOME.get_option&#40;'tag_base'&#41;.'/' [...]]]></description>
			<content:encoded><![CDATA[<p>Für wiederholt in Templatedateien und Pluginscripts verwendete Variablen und Funktionen mit konstanten Rückgabewerten lohnt es sich, in der <code>functions.php</code> Konstanten anzulegen und diese stattdessen zu verwenden. Das spart nicht nur Tipparbeit sondern verbessert auch die Performance.</p>
<p><span id="more-160"></span></p>
<p>Ich verwende meist folgenden Code-Block als Vorlage:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HOME'</span><span style="color: #339933;">,</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'home'</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: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'NAME'</span><span style="color: #339933;">,</span> get_bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TPLPATH'</span><span style="color: #339933;">,</span> ABSPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">'wp-content/themes/'</span><span style="color: #339933;">.</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'template'</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: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TPLDIR'</span><span style="color: #339933;">,</span> get_bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'template_directory'</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: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'IMGDIR'</span><span style="color: #339933;">,</span> TPLDIR<span style="color: #339933;">.</span><span style="color: #0000ff;">'images/'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'UPLOADDIR'</span><span style="color: #339933;">,</span> get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'upload_url_path'</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: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TAGURL'</span><span style="color: #339933;">,</span> HOME<span style="color: #339933;">.</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tag_base'</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: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'CATURL'</span><span style="color: #339933;">,</span> HOME<span style="color: #339933;">.</span>get_option<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'category_base'</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></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/nutzliche-konstanten-fur-wordpress-templates-und-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der Favicon Spickzettel</title>
		<link>http://simbo.de/blog/2009/12/der-favicon-spickzettel/</link>
		<comments>http://simbo.de/blog/2009/12/der-favicon-spickzettel/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:11:47 +0000</pubDate>
		<dc:creator>Simbo</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://simbo.de/site/?p=154</guid>
		<description><![CDATA[Zu jedem Webprojekt muss früher oder später auch ein Favicon produziert und eingebaut werden. Und immer wenn es wieder einmal soweit ist, brauche ich die folgenden Informationen griffbereit:

Defaultgrößen und -Farbtiefen für Favicons:

ICO: 16×16 oder 32×32 und 16 bis 16 Millionen Farben
GIF und PNG: 16×16 und 256 Farben

Achtung: Internet Explorer bis einschließlich Version 8 unterstützt ausschließlich [...]]]></description>
			<content:encoded><![CDATA[<p>Zu jedem Webprojekt muss früher oder später auch ein Favicon produziert und eingebaut werden. Und immer wenn es wieder einmal soweit ist, brauche ich die folgenden Informationen griffbereit:</p>
<p><span id="more-154"></span></p>
<p>Defaultgrößen und -Farbtiefen für Favicons:</p>
<ul>
<li>ICO: 16×16 oder 32×32 und 16 bis 16 Millionen Farben</li>
<li>GIF und PNG: 16×16 und 256 Farben</li>
</ul>
<p><strong>Achtung:</strong> Internet Explorer bis einschließlich Version 8 unterstützt ausschließlich das ICO-Format.</p>
<p>Die Verknüpfungen im XHTML-Header zu den Favicons &#8211; auch hier braucht der IE mit &#8220;shortcut icon&#8221; eine Extrawurst:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">&quot;SHORTCUT ICON&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://simbo.de/favicon.ico&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">&quot;icon&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;image/vnd.microsoft.icon&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://simbo.de/favicon.ico&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">&quot;icon&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;image/png&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://simbo.de/favicon.png&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></td></tr></table></div>

<h4>ICO Dateien unter Ubuntu erstellen</h4>
<p>Das Programm <code>icotool</code>, dass im Paket <strong>icoutils</strong> (universe) enthalten ist, kann alles was nötig ist. Hier die wichtigsten Parameter:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">icotool <span style="color: #660033;">-x</span> <span style="color: #000000; font-weight: bold;">*</span>.ico				<span style="color: #666666; font-style: italic;"># alle ICO nach PNG</span>
icotool <span style="color: #660033;">-c</span> icon.png <span style="color: #660033;">-o</span> icon.ico			<span style="color: #666666; font-style: italic;"># ein PNG nach ICO</span>
icotool <span style="color: #660033;">-c</span> <span style="color: #660033;">-o</span> icon.ico 1.png 2.png 3.png	<span style="color: #666666; font-style: italic;"># mehrere PNGs zu einem ICO</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://simbo.de/blog/2009/12/der-favicon-spickzettel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

