<?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/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>bueltge.de [by:ltge.de] &#187; CSS, xHTML, JS</title>
	<atom:link href="http://bueltge.de/category/code/css-xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://bueltge.de</link>
	<description>Frank Bültge schreibt auf bueltge.de zu den Themen Webentwicklung &#38; design, WordPress, Literatur und andere Themen bezüglich Internet und Development</description>
	<lastBuildDate>Wed, 09 May 2012 15:13:47 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS1K</title>
		<link>http://bueltge.de/css1k/1288/</link>
		<comments>http://bueltge.de/css1k/1288/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 10:20:02 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Linktipp]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1288</guid>
		<description><![CDATA[Aktuell gibt es die Idee die Möglichkeiten von CSS mit maximal 1k Stylesheet aufzuzeigen. Auch ich habe mich beteiligt und vielleicht hat auch bei euch jemand Interesse.]]></description>
			<content:encoded><![CDATA[<p>Ich bin schnell für kleine überschaubare Spielprojekte zu haben, sei es in der Vergangenheit der <a href="http://bueltge.de/inspiriere-maximal-10k-html5/1200/">10k Apart</a> oder die <a href="http://js1k.com/">1K JS Aktion</a> - ich mache dies gern, da man das Ziel schnell erreichen kann, in der Regel viele Freiheiten hat und ab und an eine kleine Spielerei einfach Freude macht.</p>
<p>Aktuell gibt es die Idee die Möglichkeiten von CSS mit maximal 1k Stylesheet aufzuzeigen &#8211; <a href="http://css1k.com/" title="CSS1K.com">CSS1k</a>. </p>
<blockquote><p>A demonstration of what can be accomplished with only 1 K (Kibibyte) of CSS.</p></blockquote>
<p><span id="more-1288"></span><br />
Auch an dieser Idee habe ich mich, neben <a href="http://css1k.com/#moonlight">dem Beitrag vom Schepp</a>, beteiligt und ein kleines &#8222;Design&#8220; entwickelt.</p>
<p><a href="http://css1k.com/#boxes" title="Live ansehen"><img class="centered" src="http://bueltge.de/wp-content/images/css1k.png" alt="CSS1k von Frank Bültge" /></a></p>
<p>Über derartige Aktionen mag man streiten, denn sie zeigen aus meiner Sicht zwar die Möglichkeiten von CSS ohne die Änderung von Markup, aber das Markup dieser Projekte ist in der Regel so simpel, dass man es nur sehr bedingt in die reale Welt portieren kann. Trotzdem kommt man bei max. 1024 Byte schnell an die Grenzen, da hilft kein Minimizer mehr - man muss schon in der Struktur des CSS Hand anlegen und nicht beliebig stylen. In jedem Fall eine gute Abwechslung und ein Beispiel für den Wert der Community.</p>
<p>Das <a href="http://css1k.com">Projekt CSS1K</a> kann über <a href="https://github.com/jacobrask/CSS1K">Github</a> bequem erweitert werden, so dass eigene Lösungen einfließen &#8211; vielleicht hat der oder andere Lust von euch und macht mit.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/css1k/1288/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/css1k/1288/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/css1k.png" />
		<media:content url="http://bueltge.de/wp-content/images/css1k.png" medium="image">
			<media:title type="html">CSS1k von Frank Bültge</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple Media Queries Debugging</title>
		<link>http://bueltge.de/simple-media-queries-debugging/1286/</link>
		<comments>http://bueltge.de/simple-media-queries-debugging/1286/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 11:17:58 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1286</guid>
		<description><![CDATA[Media Queries sind dabei sich zu etablieren, Vor- und Nachteile seien hier kein Thema. Definitiv ist das „Debuggen” nicht immer einfach und die Layouterstellung kann schnell komplex werden. Diese Lösung stellt die Umsetzung einer Idee dar, um den jeweiligen Viewport zu kennen, da im obersten Bereich der Seite dargestellt wird. Durch diese Werte kann auf die verschiedenen Weiten eingegangen werden.]]></description>
			<content:encoded><![CDATA[<p>Der Titel dieses Artikels ist für die entstandene Lösung sicher überzogen &#8211; trotzdem hatte ich mal wieder Spaß an einer kleinen <a href="http://bueltge.de/test/media-query-debugger.php">statischen Spielerei</a>, die im Grunde nur entstanden ist, da ich für ein Projekt den Viewport haben wollte um besser für entsprechende Media Queries zu stylen. Die eigentliche Lösung wurde dann etwas erweitert und durch die Hilfe der Community, insbesondere <a href="http://frederic-hemberger.de/">Frederic</a> und <a href="http://www.grochtdreis.de/">Jens</a>, wurde der Iststand erreicht und kann in jeder Form genutzt werden.<br />
<span id="more-1286"></span><br />
Zum Testen von Media Queries nutze ich meine kleine <a href="http://bueltge.de/test/media-query-tester.php" title="Zum Tester">iFrame-Anpassung</a>, die mittels DOM Storage-API verschiedene Werte zulässt; mehr dazu im <a href="http://bueltge.de/simple-media-queries-tester/1239/" title="Artikel zum Simple Media Queries Tester">zugehörigen Artikel</a>. Trotzdem wollte ich immer den aktuellen Stand haben und hatte mir daher mittels CSS an den body gehangen. Dies kann man einfach tun und ist für verschieden, die üblichen Verdächtigen, nun im Projekt integriert. Diese Aufgabe wird von einer einzelnen CSS-Datei übernommen &#8211; <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging/blob/master/debug.css"><code>debug.css</code></a>; so dass sie einfach inkludiert werden kann. Alternativ könnt ihr damit alles mögliche anfangen &#8211; <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging" title="Forken, Lesen auf Github.com">forken</a> und somit die Idee verbessern und mehr daraus machen. </p>
<p><a href="http://bueltge.de/wp-content/images/simple-media-queries-debug.png" title="Bild ein wenig größer?"><img class="centered aligncenter" src="http://bueltge.de/wp-content/images/simple-media-queries-debug450.png" alt="Simple Media Queries Debugge - Screenshot" /></a></p>
<p>Innerhalb der kleinen Spielerei sind diverse Anpassungen für Media Queries drin, so dass die Seite auch einen Effekt hat, wenn man die Größe des Browsers ändert bzw. mit verschiedenen Geräten auf die Seite gelangt. Dabei habe ich keinen Wert auf Schönheit gelegt, sondern eher Pragmatismus und Effekthascherei genutzt. So nutze ich Transition via CSS3 um das Verändern etwas animiert zu gestalten und so die Darstellung zu hübschen.<br />
Schaut euch den Code einfach an, entweder direkt auf <a href="http://bueltge.de/test/media-query-debugger.php">der Seite</a> oder im <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging" title="Zum Projekt auf Github">Projekt auf github</a>, wo ich alles abgelegt habe.</p>
<p>Für alle, denen noch der Zusammenhang fehlt; bitte einfach <a href="http://bueltge.de/test/media-query-debugger.php">die Seite</a> besuchen und den Browser in der Größe ändern; dabei die Ausgabe am oberen Rand beachten. Alternativ dieses kleine Video.</p>
<p><iframe src="http://player.vimeo.com/video/25499813" width="640" height="480" frameborder="0"></iframe></p>
<p>Mir ist klar, dass dies nicht die beste Lösung ist, da Media Queries in jeder erdenklichen Form auftauchen können und die Ausgabe den größten Nutzwert hat, wenn man die Ausgabe der optimierten Größe anpasst. Aber es stellt eine einfache und schnell Lösung dar. Alternativen sind vermutlich via JavaScript denkbar, die das Stylesheet parsen und anhand der gefunden Anweisungen zu Media Queries den Viewport auswerfen &#8211; aber diese Form erfordert etwas mehr zeit und Kraft; also schnell überzogen und in meinem Fall ist die vorgestellte Lösung vollkommen ausreichend; durch die Erweiterungen von Frederic sind auch noch andere Viewports eingeflossen und in diesem Zusammenhang habe ich mir bekannte typische Größen und Ausrichtungen integriert &#8211; <em>Portrait</em> und <em>Landscape</em>. Alles weitere seht ihr in der angesprochenen <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging/blob/master/debug.css" title="debug.css als Code lesen"><code>debug.css</code></a> und direkt auf <a href="http://bueltge.de/test/media-query-debugger.php">der Seite</a>, die den Source des Stylesheets ausgibt.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/simple-media-queries-debugging/1286/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/simple-media-queries-debugging/1286/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/simple-media-queries-debug450.png" />
		<media:content url="http://bueltge.de/wp-content/images/simple-media-queries-debug450.png" medium="image">
			<media:title type="html">Simple Media Queries Debugge - Screenshot</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress Admin Style Guide</title>
		<link>http://bueltge.de/wordpress-admin-style-guide/1244/</link>
		<comments>http://bueltge.de/wordpress-admin-style-guide/1244/#comments</comments>
		<pubDate>Fri, 27 May 2011 18:50:42 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1244</guid>
		<description><![CDATA[Das Erstellen von Oberflächen im Backend von WordPress sollte man an den Standards von WordPress orientieren, um so wichtiger ist es, dass man die Möglichkeiten kennt - dieses kleine Plugin hilft dir dabei.]]></description>
			<content:encoded><![CDATA[<p>WordPress hat ein hohes Tempo in der Entwicklung - das gilt ebenso für das Design im Backend. Insofern ist es wichtig, dass man möglichst ohne eigene Styles im Adminbereich auskommt und Tags und Klassen von WordPress nutzt. Nur so kann man sich die Arbeit als Entwickler vereinfachen und muss nicht bei jedem Update alle Oberflächen testen.<br />
Leider gibt es recht umfangreiche Möglichkeiten im Backend um die Anforderungen umzusetzen. Dabei werden diverse Klassen und HTML-Strukturen verwendet. Damit man diese etwas einfacher nachschlagen kann, habe ich ein kleines Plugin entwickelt, welches in der Entwicklungsumgebung werkelt und mir bei Aufruf schnell die nötigen Elemente darstellt, Beiträge aktuell zu halten ist schwer, auch wenn <a href="http://bueltge.de/wordpress-25-plugin-style-guide/614/" title="WordPress 2.5 Plugin Style Guide">mein alter Beitrag zu dem Thema</a> noch immer passend ist, wenn auch unvollständig.<br />
<span id="more-1244"></span><br />
Anbei seht ihr in zwei Screenshots die Unterschiede zwischen Version 3.1 und 3.2 von WordPress und die aktuelle enthaltenen Elemente des Plugins.</p>
<p><a href="http://wpengineer.com/wp-content/uploads/screenshot-1.png"><img src="http://wpengineer.com/wp-content/uploads/screenshot-1-201x1024.png" alt="in WordPress 3.1" title="screenshot-1" width="201" height="1024" class="ob" /></a> <a href="http://wpengineer.com/wp-content/uploads/screenshot-2.png"><img src="http://wpengineer.com/wp-content/uploads/screenshot-2-204x1024.png" alt="in WordPress 3.2" title="screenshot-2" width="204" height="1024" class="ob" /></a></p>
<p>Das Plugin ist auf <a href="https://github.com/bueltge/WordPress-Admin-Style">Github</a> abgelegt und erwartet eurer Erweiterungen - also bitte Forken und neue Ideen und Möglichkeiten einbringen &#8211; <a href="https://github.com/bueltge/WordPress-Admin-Style">github.com/bueltge/WordPress-Admin-Style</a><br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wordpress-admin-style-guide/1244/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wordpress-admin-style-guide/1244/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:thumbnail url="http://wpengineer.com/wp-content/uploads/screenshot-1-201x1024.png" />
		<media:content url="http://wpengineer.com/wp-content/uploads/screenshot-1-201x1024.png" medium="image">
			<media:title type="html">screenshot-1</media:title>
		</media:content>
		<media:content url="http://wpengineer.com/wp-content/uploads/screenshot-2-204x1024.png" medium="image">
			<media:title type="html">screenshot-2</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress Admin Bar nach unten verschieben</title>
		<link>http://bueltge.de/wordpress-admin-bar-nach-unten-verschieben/1259/</link>
		<comments>http://bueltge.de/wordpress-admin-bar-nach-unten-verschieben/1259/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 22:05:35 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Admin Bar]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1259</guid>
		<description><![CDATA[Nicht jeder mag die WordPress Admin Bar, eingeführt mit WordPress 3.1, am oberen Rand des Browsers. Mit ein wenig CSS lässt sich das ändern.]]></description>
			<content:encoded><![CDATA[<p>Nicht jeder mag die WordPress Admin Bar, eingeführt mit WordPress 3.1, am oberen Rand des Browsers. Mit ein wenig CSS lässt sich das ändern. Die folgende kleine Funktion bringt etwas CSS direkt in den Footer von Backend und Frontend ein und sorgt dafrü, dass die Admin Bar an den unteren Rand verschoben wird.<br />
<span id="more-1259"></span><br />
Der Code läßt sicher viel Raum für Erweiterungen, wie das implementieren mit Hilfe eines externen CSS-Stylesheets um es in den "Komprimierer" von WordPress zu bekommen und ebenso könnte man Optionen für die Anwender vorsehen. In meiner Anforderung half der folgende kleine Schnipsel, abgelegt in einem Plugin oder notdürftig auch in der <code>functions.php</code> des Themes.</p>
<pre><code>
function fb_move_admin_bar() {
    echo '
    &lt;style type=&quot;text/css&quot;&gt;
    body { 
    margin-top: -28px;
    padding-bottom: 28px;
    }
    body.admin-bar #wphead {
       padding-top: 0;
    }
    body.admin-bar #footer {
       padding-bottom: 28px;
    }
    #wpadminbar {
        top: auto !important;
        bottom: 0;
    }
    #wpadminbar .quicklinks .menupop ul {
        bottom: 28px;
    }
    &lt;/style&gt;';
}
// on backend area
add_action( 'admin_head', 'fb_move_admin_bar' );
// on frontend area
add_action( 'wp_head', 'fb_move_admin_bar' );
</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wordpress-admin-bar-nach-unten-verschieben/1259/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wordpress-admin-bar-nach-unten-verschieben/1259/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML5 – Webseiten innovativ und zukunftssicher</title>
		<link>http://bueltge.de/html5-webseiten-innovativ-und-zukunftssicher/1256/</link>
		<comments>http://bueltge.de/html5-webseiten-innovativ-und-zukunftssicher/1256/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 23:32:47 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Literatur]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Linktipp]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1256</guid>
		<description><![CDATA[HTML5 in Buchform - als Lesestoff und Nachschlagewerk; wie empfand ich Peters Buch und welchen Eindruck oder Mehrwert hat es bei mir hinterlassen. Dazu einen kurzen Abriss und euch steht ein Einblick zur Verfügung, der euch die Kauf- oder Lese-Entscheidung abnimmt ;)]]></description>
			<content:encoded><![CDATA[<p>Auch wenn wir auf dem Weg von HTML5 zu HTML sind und <a href="http://html5-buch.de/">Peter Kröners Buch</a> gerade in der zweiten Auflage erschienen ist - was nichts über die Geschwindigkeit der Verabschiedung von Standards, geschweige denn der Implementierung in den verschiedenen Browsern aussagt - ist es doch an der Zeit, einige Wort zum Buch von Peter zu verlieren.</p>
<p>Dies liegt zum einem daran, dass ich Peter als Mensch und Webentwickler, auch an den Themen in <a href="http://www.peterkroener.de/">seinem Blog</a> zu erkennen, sehr schätze und dass ich mit einer kurzen Rezension in der Schuld stehe. Heute Nacht nun finde ich endlich einige Minuten um meinen Eindruck wieder zu geben und vorweg - das Buch muss man lesen und als Nachschlagewerk am Rechner platzieren. Woran liegt das?<br />
<span id="more-1256"></span><br />
<a href="http://www.amazon.de/gp/product/3941841343?ie=UTF8&#038;tag=buedebyltgde-21&#038;linkCode=as2&#038;camp=1638&#038;creative=19454&#038;creativeASIN=3941841343" title="Amazon Affiliate link"><img class="alignrightob" src="http://bueltge.de/wp-content/images/literatur/html5_book.png" alt="HTML5 Buch" /></a><br />
HTML5 ist Trend und immer wieder die eine oder andere Gallery von Lösungen wert. Daher kann man Unmengen an Informationen im Web über das Thema lesen und fast täglich kommen Tutorials dazu. Jeder dieser Beiträge erfasst jedoch das Thema nicht so rund und ansprechend wie das Buch von Peter Kröner: HTML5 – Webseiten innovativ und zukunftssicher.</p>
<p>Das Buch ist keine reine Fibel und man wird vermutlich nicht vom Beginn bis zum Ende alles lesen. Es gibt eine ganze Reihe Kapitel, die sind erst interessant, wenn man mit dem Thema zu tun hat und auf die entsprechende API zugreifen möchte. Aber gerade dann kommen die Vorteile zum Tragen - so schlägt man nach, findet das Thema und erfährt mehr; entsprechend kann es dann noch Code-Beispiele geben und die nötigen Links für die tiefe Recherche.</p>
<p>Peter schafft in seinem Buch einen weiten Bogen und <a href="http://www.peterkroener.de/html5-buch-zweite-auflage-194-seiten-mehr-mit-sachen-die-nicht-im-ie6-funktionieren/">Auflage Zwei</a> wird dabei noch umfassender. Die Sprache ist verständlich und die Lösungen sind nachvollziehbar und nutzbar hinterlegt. Besonders gefallen mit die Kapitel 1 bis 3, da sie das wohl meist genutzte Handwerkszeug sind und schon jetzt einen Wert versprechen. Wie und wie umfassend man HTML5 einsetzt, kann sehr verschieden sein und tagtäglich stellt man sich bei der Kundenlösung die Frage, wie weit gehe ich beim Einsetzen der neuen Möglichkeiten? Hier helfen die besagten Kapitel, da man einiges mehr und tiefer über die Hintergründe von HTML und XML im Zusammenhang erfährt. Mich begeistert ebenso der Ausblick auf den "fertigen" Standard und HTML6.</p>
<p>Aus meinem Blickwinkel hat Peter wirklich Spaß an den Themen, die Inhalte scheinen ihm Freude zu bereiten - auch das Hinweisen auf Browser, die bestimmte Möglichkeiten nicht zulassen und wie man Konstrukte darum erstellt um eine Lösung zu erzielen. Gleiches gibt die zugehörige Website wieder, wo man Hintergründe und Beispiele findet und ebenso Fragen an den Autor stellen kann.</p>
<p>Einziges kleines Manko aus meiner Sicht ist, dass man ein wenig die kleinen Tools im Zuge HTML5 vermisst oder nur schwer auf die schnelle findet. So liebe ich die visuelle Darstellung (<a href="https://chrome.google.com/webstore/detail/afoibpobokebhgfnknfndkgemglggomo#">html5 outliner für Chromium</a>) der Semantik beim Erstellen des Markup oder nutze kleine Helfer im Cromium-Browser um mit die Semantik ebenso zu zeigen oder die local storage API (<a href="https://chrome.google.com/extensions/detail/mepcemlliclfkppahmgdfoamhccflihc?hl=de">html5 buddy für Chromium</a>) besser zu sichten. Aber in diesem Kreis gibt es vermutlich viele Tools und unterschiedliche Vorlieben.</p>
<p><strong>Kurz:</strong> Klare Kaufempfehlung für alle, die HTML5 nicht nur als Schlagwort und mehr als einige neue Elemente kennen wollen. Das Buch und die <a href="http://html5-buch.de/">zugehörige Website</a> spannt einen schönen Bogen und bringt die Möglichkeiten im Dunstkreis HTML5 näher, egal ob es nun wieder HTML heißt oder eine weitere Nummer im Netz der Möglichkeiten wird.</p>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/html5-webseiten-innovativ-und-zukunftssicher/1256/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/html5-webseiten-innovativ-und-zukunftssicher/1256/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/literatur/html5_book.png" />
		<media:content url="http://bueltge.de/wp-content/images/literatur/html5_book.png" medium="image">
			<media:title type="html">HTML5 Buch</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple Media Queries Tester</title>
		<link>http://bueltge.de/simple-media-queries-tester/1239/</link>
		<comments>http://bueltge.de/simple-media-queries-tester/1239/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 09:18:21 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1239</guid>
		<description><![CDATA[Die Möglichkeiten von CSS Media Queries in einem Blick halten empfinde ich gerade beim Entwickeln wichtig, darum ein kleines Tool, was dies ermöglicht.]]></description>
			<content:encoded><![CDATA[<p><a href="http://css-tricks.com/css-media-queries/">CSS Media Queries</a> dringen immer weiter vor und die Möglichkeiten der Anpassung bei der Größe einer Website an die den entsprechenden Client bzw. die Bildgröße des Browsers werden notwendiger. Die Media Queries sind eine Lösung, die ihre Vor- und Nachteile haben. Beim Einsetzen empfand ich es manchmal als Nachteil, dass ich mir nicht alle Größe gleichzeitig ansehen konnte. Warum also nicht einfach ein kleines Script und das iframe-Element sinnvoll gebrauchen.<br />
Wer mag und dies braucht, der findet hier nun eine simple und einfache Lösung oder kann auch gern das <a href="http://bueltge.de/test/media-query-tester.php">laufende Script</a> in meinem "Test-Labor" nutzen. Die Version hat auch einige weitere Spielereien inne, so kann man außerdem die Werte der iframes anpassen und diese Daten speichere ich mittels der <a href="http://dev.w3.org/html5/webstorage/">DOM Storage-API</a> innerhalb eines Browsers lokal. Meine Lösung im Labor hat keinen Fallback und sollte nur mit Browsers sauber laufen, die die Möglichkeit der Storage API unterstützen.<br />
<span id="more-1239"></span><br />
Die Lösung kann beliebig erweitert und verbessert werden, viel Freude damit.</p>
<p><a href="http://bueltge.de/test/media-query-tester.php"><img src="http://bueltge.de/wp-content/images/Simple-Media-Queries-Tester.png" alt="Screenshot Simple Media Queries Tester" title="Simple Media Queries Tester" class="centered" /></a></p>
<p>Der folgende Code ist lediglich in einer PHP-Datei zu speichern und kann dann genutzt werden. Ich habe nur wenig mit CSS gespielt und angepasst; ebenfalls ist die Browserunterstützung vermutlich nicht sonderlich groß, da ich rein auf HTML5 und CSS3 setze und keine Scripte dafür hinterlege. </p>
<pre><code>
&lt;!DOCTYPE html&gt; 
&lt;html&gt; 
&lt;head&gt; 
	&lt;meta charset=utf-8 /&gt; 
	
	&lt;title&gt;Simple Media Queries Tester&lt;/title&gt; 
	
	&lt;meta name=&quot;description&quot; content=&quot;Simple Media Queries Tester&quot; /&gt; 
	&lt;meta name=&quot;author&quot; content=&quot;Frank Bueltge - http://bueltge.de&quot; /&gt; 
	
	&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
	/*&lt;![CDATA[*/
		body { background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:100%;margin:20px; }
		a { text-decoration:none; color:#1152c8; }
		fieldset { border:1px solid #ccc; margin:0 0 20px 0; }
		form#mediaqueriestest input { margin:auto; }
		form#mediaqueriestest button { margin:auto;text-shadow:0 1px 1px #000;text-transform:uppercase; }
		form#mediaqueriestest button:hover { background:#1152c8;color:#000;cursor:pointer; }
		form#mediaqueriestest input:active, form#mediaqueriestest input:focus { outline:none;border:1px solid #333;background:#fff;color:#000;-moz-border-radius:20px;-webkit-border-radius:20px;-khtml-border-radius:20px;border-radius:20px; }
		form#mediaqueriestest fieldset, form#mediaqueriestest legend, form#mediaqueriestest input, form#mediaqueriestest button, iframe, footer {
background:#333;color:#fff;padding:7px 25px;border:1px solid #333;-moz-border-radius:20px;-webkit-border-radius:20px;-khtml-border-radius:20px;border-radius:20px; }
		form#mediaqueriestest fieldset, form#mediaqueriestest legend { background:#ccc;color:#000;margin:10px;padding-bottom:25px; }
		form#mediaqueriestest legend { padding:7px 25px;-webkit-box-shadow: 2px 2px 2px #333; }
		iframe { margin:0 auto; border:1px solid #ccc; margin:10px; }
		footer { display:block; color:#333; margin:20px 0 0 0; border:2px solid #ba0100; background:#fff; }
	/*]]&gt;*/
	&lt;/style&gt;

&lt;/head&gt; 
&lt;body&gt;
	&lt;header&gt;
		&lt;h1&gt;&lt;a href=&quot;http://bueltge.de/&quot; title=&quot;to the weblog of the author&quot;&gt;Simple Media Queries Tester&lt;/a&gt;&lt;/h1&gt;
	&lt;/header&gt;
	
	&lt;section&gt;
		&lt;form id=&quot;mediaqueriestest&quot; action=&quot;&lt;?php echo htmlspecialchars( strip_tags($_SERVER['PHP_SELF']) ); ?&gt;&quot; method=&quot;get&quot;&gt;
		&lt;fieldset&gt;
		&lt;legend&gt;Test your URL&lt;/legend&gt;
		&lt;label for=&quot;testurl&quot;&gt;Test URL&lt;/label&gt;
			&lt;input type=&quot;text&quot; name=&quot;testurl&quot; id=&quot;testurl&quot; placeholder=&quot;Input your test url here&quot; size=&quot;70&quot;&gt;
			&lt;button type=&quot;submit&quot;&gt;Test it!&lt;/button&gt;
		&lt;/fieldset&gt;
		&lt;/form&gt;
		&lt;?php
		if ( !empty($_GET['testurl']) ) {
			$newURL = htmlspecialchars( strip_tags($_GET['testurl']), ENT_QUOTES );
			if (preg_match(&quot;/^(www.)/i&quot;, $newURL) )
				$iframeurl = 'http://'.$newURL;
			elseif (preg_match(&quot;/^(http:\/\/)/i&quot;, $newURL))
				$iframeurl = $newURL;
			else
				$iframeurl = 'http://www.' . $newURL;
			
			echo '&lt;iframe name=&quot;fullsize&quot; id=&quot;fullsize&quot; width=&quot;960&quot; height=&quot;450&quot; seamless=&quot;seamless&quot; src=&quot;' . $iframeurl . '&quot;&gt;&lt;/iframe&gt;';
			echo '&lt;iframe name=&quot;netbook&quot; id=&quot;netbook&quot; width=&quot;650&quot; height=&quot;450&quot; seamless=&quot;seamless&quot; src=&quot;' . $iframeurl . '&quot;&gt;&lt;/iframe&gt;';
			echo '&lt;iframe name=&quot;mobile&quot; id=&quot;meinframe&quot; width=&quot;450&quot; height=&quot;450&quot; seamless=&quot;seamless&quot; src=&quot;' . $iframeurl . '&quot;&gt;&lt;/iframe&gt;';
		} else {
			echo '&lt;p&gt;keine Seite geladen - Adresse Eingeben&lt;/p&gt;';
		}
		?&gt;
	&lt;/section&gt;
	
	&lt;footer&gt;
		&lt;p&gt;
		&amp;copy; 2010 &lt;a href=&quot;http://bueltge.de/&quot;&gt;bueltge.de&lt;/a&gt; &amp;middot; &lt;a href=&quot;http://bueltge.de/impressum/&quot;&gt;Impressum&lt;/a&gt;
		&lt;/p&gt;
	&lt;/footer&gt;

&lt;/body&gt;
&lt;/html&gt;

</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/simple-media-queries-tester/1239/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/simple-media-queries-tester/1239/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/Simple-Media-Queries-Tester.png" />
		<media:content url="http://bueltge.de/wp-content/images/Simple-Media-Queries-Tester.png" medium="image">
			<media:title type="html">Simple Media Queries Tester</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Kategorie- und Archiv-Dropdowns mit unobtrusive JavaScript</title>
		<link>http://bueltge.de/kategorie-und-archiv-dropdowns-mit-unobtrusive-javascript/1238/</link>
		<comments>http://bueltge.de/kategorie-und-archiv-dropdowns-mit-unobtrusive-javascript/1238/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 05:09:41 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Adventskalender]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1238</guid>
		<description><![CDATA[Eine gute Website funktioniert, wenn ein Benutzer mit deaktiviertem JavaScript vorbeikommt, genau so gut wie mit aktiviertem Scripting. Eine Navigation der Kategorien und des Archivs mit WordPress ist mit Standards von WordPress möglich, allerdings nur mit aktiviertem JavaScript. Eine Alternative stellt dieses Tutorial von Peter Kröner bereit.]]></description>
			<content:encoded><![CDATA[<p>Eine gute Website funktioniert, wenn ein Benutzer mit deaktiviertem JavaScript vorbeikommt, genau so gut wie mit aktiviertem Scripting. Man trennt die JS-Schicht der Website sauber von allem anderen (und verzeichtet zum Beispiel auf onclick-Handler im HTML) und legt seine Scripts so an, dass nur die schon vorhandene Funktionalität der Seite verbessern und umformen. So kommen die Besucher sowohl mit als auch ohne JS an ihr Ziel, wenn der Weg ohne Scripting vielleicht etwas mühsamer oder weniger schön ausfällt. Diese Herangehensweise an Scripting auf Websites nennt sich Unobtrusive JavaScript und warum das eine Gute Sache ist, <a href="http://jsconf.blip.tv/file/4002810/">erklärt Jenn Lukas in diesem Talk von der JSConf 2010</a>. Neben all den guten Gründen ist das wichtigste Argument für unobtrusive JavaScript, dass es bei entsprechender Planung so einfach umzusetzen ist, dass es grundlos verschenktes Potenzial wäre wenn man darauf verzichten würde. Problematisch kann es allein dann werden, wenn das einem das für die Website verwendete CMS einem einen Strich durch die Rechnung macht – womit wir beim Thema WordPress wären.</p>
<p>Gelegentlich möchte man in seiner Blog-Sidebar Dropdowns-Menüs (select-Elemente) zur Navigation der Kategorien und des Archivs unterbringen und der WordPress-Codex bietet in den Dokumentationen auch entsprechende Lösungen für <a href="http://codex.wordpress.org/Function_Reference/get_categories#Dropdown_Box">Kategorien</a> und <a href="http://codex.wordpress.org/Function_Reference/wp_get_archives#Dropdown_Box">Archiv</a> an, die allerdings beide nur mit aktiviertem JavaScript funktionieren. In beiden Fällen wird die URL der Ziel-Seite im <code>value</code>-Wert der im Dropdown-Menü verbauten <code>option</code>-Elemente gespeichert und sobald man einen Eintrag auswählt, wird man via JavaScript auf eben jene URL weitergeleitet. Die fast gleiche Funktionalität ließe sich aber auch ganz ohne Scripts erreichen:<br />
<span id="more-1238"></span></p>
<ol>
<li>Ein altmodisches GET-Formular mit Absendebutton anlegen, das an die Basisadresse der Website sendet</li>
<li>Das <code>select</code> in eben dieses Formular stecken und <code>name="cat"</code> angeben</li>
<li>Den <code>option</code>-Elementen als <code>value</code> den Slug der Kategorien geben</li>
</ol>
<p>Das Absenden des Formulars resultiert dann in einem Aufruf von <code>blog.de/?cat=kategorie</code> und damit der gewünschten Kategorie, ggf. mit einem Redirect auf die suchmaschinenfreundliche Variante der URL. Das funktioniert für den Besucher genau so gute wie die Lösung aus dem Codex, sieht man einmal davon ab, dass man einen Button anklicken muss. Doch genau hier kann man mit JavaScript eingreifen, den Button verstecken und das Absenden des Formulars über einen via Script eingefügten <code>onclick</code>-Handler übernehmen. Das Endresultat sieht dann für Surfer mit Script wie die Codex-Lösung aus und alle anderen kommen dann eben über einen Klick auf den Button an ihr Ziel und alle sind zufrieden. Also an die Arbeit!</p>
<p>Die Grundlage für das Kategorie-Dropdown bildet ein ganz normales HTML-Formular:</p>
<pre><code class="php">
&lt;form id=&quot;kategorienform&quot; action=&quot;&lt;?php bloginfo('url'); ?&gt;&quot; method=&quot;get&quot;&gt;
    &lt;label for=&quot;kategorienselect&quot;&gt;Zu Kategorie springen&lt;/label&gt;
    &lt;select id=&quot;kategorienselect&quot; name=&quot;cat&quot;&gt;
        &lt;option value=&quot;&quot;&gt;-- Bitte auswählen&lt;/option&gt;
        &lt;?php
            $categories = get_categories('hierarchical=0');
            foreach($categories as $category){
                $selected = (is_category($category-&gt;cat_ID)) ? 'selected' : '';
                echo '&lt;option '.$selected.' value=&quot;'.$category-&gt;cat_ID.'&quot;&gt;'.$category-&gt;cat_name.' ('.$category-&gt;count.')&lt;/option&gt;';
            }
        ?&gt;
    &lt;/select&gt;
    &lt;input id=&quot;kategorienbutton&quot; value=&quot;Kategorie abrufen&quot; type=&quot;submit&quot;&gt;
&lt;/form&gt;
</code></pre>
<p>Dieses könnte man so in die Seitenleiste des Dokuments werfen und es würde funktionieren, doch wir wollen ja noch den Absenden-Button loswerden und die Umleitung direkt bei der Auswahl einer Kategorie starten. Hierzu braucht es nicht mehr als 6 Zeilen JavaScript, die man direkt unter dem Formular einfügen kann:</p>
<pre><code class="javascript">
&lt;script type=&quot;text/javascript&quot;&gt;
    document.getElementById('kategorienselect').onchange = function(){
        if(this.value){
            document.getElementById('kategorienform').submit();
        }
    };
    document.getElementById('kategorienbutton').style.display = 'none';
&lt;/script&gt;
</code></pre>
<p>Ändert der Benutzer seine Auswahl im <code>select</code>-Element, wird (sofern nicht gerade der „Bitte auswählen“-Eintrag gewählt wird) das Formular automatisch abgesendet, auch ohne den mit <code>style.display = 'none'</code> unsichtbar gemachten Button aktivieren zu müssen – und fertig ist das benutzerfreundliche und trotzdem auch ohne JavaScript funktionierende Kategorie-Dropdown! Das ist zwar etwas mehr Code als die drei Zeilen aus dem Codex, funktioniert dafür aber garantiert bei jedem Besucher. Und das Prinzip ist recht simpel, vorausgesetzt man plant von vornherein entsprechend. Da eben das bei WordPress selbst nicht passiert ist, müssen wir etwas mehr tippen – beziehungsweise im Falle des Archiv-Dropdowns sogar sehr viel mehr:</p>
<pre><code class="php">
&lt;form id=&quot;archivform&quot; action=&quot;&lt;?php bloginfo('url'); ?&gt;&quot; method=&quot;get&quot;&gt;
    &lt;label for=&quot;archivselect&quot;&gt;Zu Monat springen&lt;/label&gt;
    &lt;select id=&quot;archivselect&quot; name=&quot;m&quot;&gt;
        &lt;option value=&quot;&quot;&gt;-- Bitte auswählen&lt;/option&gt;
        &lt;?php
            $query = &quot;SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, COUNT(ID) as `posts`
                FROM $wpdb-&gt;posts
                WHERE post_type = 'post' AND post_status = 'publish'
                GROUP BY YEAR(post_date), MONTH(post_date)
                ORDER BY post_date DESC&quot;;
            $key = md5($query);
            $cache = wp_cache_get('select_archives', 'general');
            if(!isset($cache[$key])){
                $arcresults = $wpdb-&gt;get_results($query);
                $cache[$key] = $arcresults;
                wp_cache_set('select_archives', $cache, 'general');
            }
            else{
                $arcresults = $cache[$key];
            }
            if($arcresults){
                global $wp_locale;
                foreach((array) $arcresults as $arcresult){
                    $value = $arcresult-&gt;year.$arcresult-&gt;month;
                    $text = sprintf(__('%1$s %2$d'), $wp_locale-&gt;get_month($arcresult-&gt;month), $arcresult-&gt;year);
                    $count = '&amp;nbsp;('.$arcresult-&gt;posts.')';
                    $selected = (is_month() &amp;&amp; get_query_var('year').get_query_var('monthnum') == $value) ? 'selected' : '';
                    echo '&lt;option '.$selected.' value=&quot;'.$value.'&quot;&gt;'.$text.$count.'&lt;/option&gt;';
                }
            }
        ?&gt;
    &lt;/select&gt;
    &lt;input id=&quot;archivbutton&quot; value=&quot;Archiv abrufen&quot; type=&quot;submit&quot;&gt;
&lt;/form&gt;
</code></pre>
<p>Das Problem beim Monatsarchiv ist, dass man ohne einen eigenen SQL-Query nicht an die Informationen herankommt, die man für ein Monats-Archiv braucht. So kommt man nicht drum herum, manuell die Datenbank zu bemühen und das Ergebnis händisch zu cachen. Das Prinzip ist aber identisch: einfach ein herkömmliches Formular ausgeben und wieder mit sechs kleinen Zeilen JavaScript aufwerten:</p>
<pre><code class="javascript">
&lt;script type=&quot;text/javascript&quot;&gt;
    document.getElementById('archivselect').onchange = function(){
        if(this.value){
            document.getElementById('archivform').submit();
        }
    };
    document.getElementById('archivbutton').style.display = 'none';
&lt;/script&gt;
</code></pre>
<p>Wir fassen zusammen: viele Zeilen Code, aber kompliziert ist das Prinzip nicht. Unobtrusive JavaScript ist eine Frage der intelligenten Planung und wenn die mal, wie bei WordPress, nicht von Haus aus mitgeliefert wird, muss man sich eben behelfen. Bei herkömmlichen Websites gibt es keinen Grund, die Bedienung komplett von JavaScript abhängig zu machen und falls doch mal etwas Mehraufwand entsteht, so ist er die saubere Trennung der Schichten und den Zugänglichkeits-Bonus allemal wert.</p>
<div class="contentdiv">
<h4>Gastbeitrag</h4>
<p><img src="http://wpengineer.com/wp-content/uploads/twitter_bigger.png" alt="" title="twitter_bigger" width="73" height="73" class="alignleft size-full wp-image-2132" /><br />
Dieser Beitrag ist aus der Feder von Peter Kröner - <a href="http://www.peterkroener.de/">peterkroener.de</a> und ist ein Beitrag zum Adventskalender auf <a href="http://wpengineer.com/">wpengineer.com</a> zum Thema WordPress.<br />
Peter Kröner ist selbstständiger Webdesigner und -entwickler sowie Autor des <a href="http://html5-buch.de/">HTML5-Buchs</a>.<br />
Auf <a href="http://www.peterkroener.de/weblog/">peterkroener.de</a> bloggt er über alle Themen rund um Webtechnologie.</p>
<p>Vielen Dank auch hier nochmal von meiner Seite an <a href="http://www.peterkroener.de/">Peter</a>.
</div>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/kategorie-und-archiv-dropdowns-mit-unobtrusive-javascript/1238/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/kategorie-und-archiv-dropdowns-mit-unobtrusive-javascript/1238/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://wpengineer.com/wp-content/uploads/twitter_bigger.png" />
		<media:content url="http://wpengineer.com/wp-content/uploads/twitter_bigger.png" medium="image">
			<media:title type="html">twitter_bigger</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Einfaches Autoresize für die WordPress Hintergrundbild-Funktion</title>
		<link>http://bueltge.de/einfaches-autoresize-fur-die-wordpress-hintergrundbild-funktion/1230/</link>
		<comments>http://bueltge.de/einfaches-autoresize-fur-die-wordpress-hintergrundbild-funktion/1230/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 13:22:01 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1230</guid>
		<description><![CDATA[Die Hintergrundbild-Funktion von WordPress kann angepasst werden, wie man dies tut und was man erwarten kann zeige ich an einem Beispiel, welches das Hintergrund mittels Autoresize immer an die Größe des Browsers anpasst. ]]></description>
			<content:encoded><![CDATA[<p>Mit WordPress 3.0 wurde die Möglichkeit im Theme geschaffen, dass der User einfach ein <a href="http://wpengineer.com/1964/wordpress-3-0-custom-background-support/">Hintergrundbild</a> hochladen und nutzen können. Das Bild wird mittels CSS im Hintergrund positioniert. Damit ist es nicht ganz so einfach, dass die Möglichkeit des Autoresize schafft und der Hintergrund sich an die Größe des Browsers anpasst. Es gibt einige schöne Möglichkeiten für diese Anforderung, ich möchte kurz eine sehr einfache Möglichkeit mittels CSS aufzeigen, da so die Funktion von WordPress nicht angefasst werden muss.<br />
<span id="more-1230"></span><br />
Die folgende Syntax muss innerhalb des Stylesheet integriert werden. Dazu kann auch ein <a href="http://bueltge.de/wordpress-child-themes-verstehen/1192/">Child-Theme</a> angelegt werden, wenn das Originaltheme nicht verändert werden sollte. Die Werte müssen mit <code>!important</code> versehen werden, da ansonsten die Werte von WordPress genutzt werden, das Überschreiben dieser Werte ist nicht anders möglich. Damit wird der Hintergrund immer an die Größe des Browsers angepasst - aber Achtung: dies ist nicht immer die optimale Lösung, da die Bilder dazu in der eigentlichen Größe verändert werden, heißt also, dass ein sehr schmaler Bildausschnitt das Bild extrem verzerrt. Der Beispielscreenshot ist da wenig empfindlich, da die Wolken dies vertragen können und trotzdem ein angenehmes Hintergrundbild liefern - im Gegensatz zum Standard, in dem das Bild wie in der Vorschau gekachelt wäre; bei anderen Bildern kann dies sehr unschön aussehen.</p>
<p><img src="http://wpengineer.com/wp-content/uploads/autoresize-settings-300x190.png" alt="" title="autoresize-settings" width="300" height="190" class="aligncenter size-medium wp-image-2107" /></p>
<pre><code lang="css">
body {
	background-repeat:no-repeat !important;
	background-position:center center !important;
	background-attachment:fixed !important;
	-o-background-size: 100% 100%, auto !important;
	-moz-background-size: 100% 100%, auto !important;
	-webkit-background-size: 100% 100%, auto !important;
	background-size: 100% 100%, auto !important;
}
</code></pre>
<p>Das CSS ist nicht in allen Browsern nutzbar, <a href="http://caniuse.com/?utm_content=backtype-tweetcount&#038;utm_medium=bt.io-twitter&#038;utm_source=twitter.com#search=background-size">siehe Übersicht</a>, liefert daher nur in den aktuellen Browsern den erwarteten Effekt. Der Internet Explorer, Browser kann man ihn ja schlecht nennen, hat hiermit so seine Schwierigkeiten.</p>
<p><img src="http://wpengineer.com/wp-content/uploads/autoresize-example-300x153.png" alt="" title="autoresize-example" width="300" height="153" class="aligncenter size-medium wp-image-2106" /></p>
<p>Eine Alternative ist es den Callback für die Funktion mitzugeben und eine eigene kleine Funktion in der <code>functions.php</code> abzulegen, die sich um das Ausgeben des CSS kümmert. Die folgende Funktion tut dies statisch, fragt also nur das Bild ab und nutzt die Werte aus dem Backend nicht.</p>
<pre><code>
function fb_header_callback() {
  
  $background = get_background_image();
  if ( !$background )
    return;

  if ( $background ) {
    $image = &quot; background-image: url('$background');&quot;;
  
    $style  = 'background-repeat:no-repeat;';
    $style .= 'background-position:center center;';
    $style .= 'background-attachment:fixed;';
    $style .= '-o-background-size: 100% 100%, auto;';
    $style .= '-moz-background-size: 100% 100%, auto;';
    $style .= '-webkit-background-size: 100% 100%, auto;';
    $style .= 'background-size: 100% 100%, auto;';

    $style .= $image . $style;
  }
?&gt;
&lt;style type=&quot;text/css&quot;&gt;
body { &lt;?php echo trim( $style ); ?&gt; }
&lt;/style&gt;
&lt;?php
}
</code></pre>
<p>Diese Funktion muss in der Funktion als Callback mitgeben, sie kann natürlich beliebig angepasst werden. In der <code>functions.php</code> des Themes sollte es, wenn es die Background-Image-Funktionalität schon gibt, die Funktion <code>add_custom_background()</code> geben. Dieser muss im ersten Parameter mit der neuen Funktion erweitert werden und nun wird der Standard-Callback von WordPress nicht mehr aufgerufen. </p>
<pre><code class="php">
	// This theme allows users to set a custom background
	add_custom_background( 'fb_header_callback' );
</code></pre>
<p>Als Hinweis, der Style wird dann via Hook <code>wp_head</code> direkt im <code>head</code> ausgegeben, eher unschön - wie ich finde, und daher solltet ihr diese Formatierung wohl besser im Stylesheet ablegen, da sie eh statisch ist und nicht vom User angepasst werden kann. Ebenso ist wichtig das der Hook auch im Theme vorhanden ist, was aber auch für andere Plugins oder Funktionen wichtig ist.</p>
<h4>Werte aus dem Backend nutzen</h4>
<p>Als letzter kleiner Tipp für eure eigenen Anpassungen möchte ich noch zeigen, wie man die Werte aus dem Backend bekommt und nutzt.<br />
Die Hintergrundfarbe der Optionen zum Hintergrundbild wird mit folgender Funktion zurück gegeben:</p>
<pre><code>$color = get_background_color();</code></pre>
<p>Das Bild bekommt via:</p>
<pre><code>$background = get_background_image();</code></pre>
<p>Und einzelne Einstellungen zum Style werden via <code>get_theme_mod($name);</code> abgefragt:<br />
Der folgende kleine Schnipsel gibt die gesetzten Werte zum Theme zurück.</p>
<pre><code>
$mods = get_theme_mods();
var_dump($mods);
</code></pre>
<p>Dies könnte beispielsweise für das Standard Theme Tweny Ten wie folgt aussehen</p>
<pre><code class="php">
string 'Twenty Ten' (length=10)

array
  'background_image' => string 'http://localhost/wpbeta/wp-content/uploads/2010/12/apple-touch-icon.png' (length=71)
  'background_image_thumb' => string 'http://localhost/wpbeta/wp-content/uploads/2010/12/apple-touch-icon.png' (length=71)
  'background_repeat' => string 'no-repeat' (length=9)
  'background_position_x' => string 'center' (length=6)
  'background_attachment' => string 'scroll' (length=6)
  'background_color' => string '' (length=0)
</code></pre>
<p>Aufgrund dieser Werte im Array kann man beispielsweise den Wert <code>background_repeat</code> holen,</p>
<pre><code>$repeat = get_theme_mod( 'background_repeat' );</code></pre>
<p>der in diesem Beispiel <code>no-repeat</code> zurück gibt.</p>
<p>Mit den anderen Werten kann man genauso verfahren; eine Menge an Spielraum und Möglichkeiten.<br />
Zum den Themen CSS und Hintergrund findet man einen ausführlichen Artikel bei Chris: <a href="http://css-tricks.com/perfect-full-page-background-image/">Perfect Full Page Background Image</a><br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/einfaches-autoresize-fur-die-wordpress-hintergrundbild-funktion/1230/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/einfaches-autoresize-fur-die-wordpress-hintergrundbild-funktion/1230/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:thumbnail url="http://wpengineer.com/wp-content/uploads/autoresize-settings-300x190.png" />
		<media:content url="http://wpengineer.com/wp-content/uploads/autoresize-settings-300x190.png" medium="image">
			<media:title type="html">autoresize-settings</media:title>
		</media:content>
		<media:content url="http://wpengineer.com/wp-content/uploads/autoresize-example-300x153.png" medium="image">
			<media:title type="html">autoresize-example</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Inspiriere mit maximal 10k HTML5</title>
		<link>http://bueltge.de/inspiriere-maximal-10k-html5/1200/</link>
		<comments>http://bueltge.de/inspiriere-maximal-10k-html5/1200/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 08:16:07 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1200</guid>
		<description><![CDATA[Es ist an der Zeit, zurück zu den Ursprüngen zu finden und sich auf die Optimierung mit Blick auf Größe der Website Gedanken zu machen - so oder so ähnlich interpretiere ich den Wettbewerb für Menschen, die Websites machen. Vor zehn Jahren haben A List Apart einen Aufruf gestartet Much Ado About 5K. Weniger als [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist an der Zeit, zurück zu den Ursprüngen zu finden und sich auf die Optimierung mit Blick auf Größe der Website Gedanken zu machen - so oder so ähnlich interpretiere ich den Wettbewerb für Menschen, die Websites machen.</p>
<p>Vor zehn Jahren haben A List Apart einen Aufruf gestartet <strong><a href="http://www.alistapart.com/articles/5k/">Much Ado About 5K</a></strong>. Weniger als 5 kByte waren zulässig um kleine Websites zu machen - diese Arbeiten sind aus meiner Sicht in erster Linie Anregung zu eigenen Gedanken und Inspiration für neue Arbeiten. Die Gemeinschaft der Webentwickler diskutiert gerne und so sind diese Formen der Themenanregung beliebt. Neben der Größe der Website von 10 k gibt es einige weitere Bedingungen - Standards: html5 und die Darstellung in Firefox, IE9, Safari und Chrome &#038; diverse <a href="http://10k.aneventapart.com/Contest/Libraries">Bibliotheken</a> - und damit ist zehn Jahre später ein neuer Wettbewerb <strong><a href="http://10k.aneventapart.com/">10k Apart</a></strong> durch fast das gleiche Team ins Leben gerufen. Zeit ein wenig Spaß zu haben und eine eigene kleine Arbeit bereit zu stellen.</p>
<p><img class="centeredob" src="http://bueltge.de/wp-content/images/10kapart_logo.png" alt="10k Apart Logo" /><br />
<span id="more-1200"></span><br />
Auch ich habe mich ein wenig von der vielen Arbeit erholt und mal eine kleine <a href="http://10k.aneventapart.com/Entry/22">Spielerei gemacht</a>, die man nun dort als App besichtigen kann - nichts besonderes, aber unterhaltsam und eine schöne Abwechslung. Ich wollte jeden Tag einen neuen Wert geben und uns die Erinnerung an jeden neuen Tag geben - 10k sollten dabei dicke reichen und so habe ich html5, CSS3 und JavaScript eingesetzt. Ebenfalls spiele ich mit den Animationsmöglichkeiten von CSS3, die allerdings aktuell nur in Webkit-Browsern wie Safari und Chrome laufen. Schaut es euch an und vielleicht nutzt es dem Lernen und dem Verständnis der neuen Mittel. Aber vielleicht motiviert es euch auch um ebenfalls an der Challange zu 10k Apart teilzunehmen.<br />
Die Gallerie hat schon jetzt tolle Sachen dabei - auch wenn nicht alle Apps die 10k einhalten - zumindest wenn man mit Libraries wie jQuery arbeitet <img src='http://bueltge.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Aber im Ende ist es eine tolle Aktion und die Teilnahme inspiriert. Es macht Spaß mit den neuen Möglichkeiten zu arbeiten und kein ToDo für alte Browser zu implementieren.</p>
<p>* Alternativ kann man sich <a href="http://bueltge.de/test/10kapart/">die Spielerei</a> auch in meinem <a href="http://bueltge.de/test/">kleinen Labor</a> ansehen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/inspiriere-maximal-10k-html5/1200/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/inspiriere-maximal-10k-html5/1200/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/10kapart_logo.png" />
		<media:content url="http://bueltge.de/wp-content/images/10kapart_logo.png" medium="image">
			<media:title type="html">10k Apart Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WP Basis Theme in (x)HTML5</title>
		<link>http://bueltge.de/wp-basis-theme-in-xhtml5/984/</link>
		<comments>http://bueltge.de/wp-basis-theme-in-xhtml5/984/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 13:18:48 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[WP]]></category>
		<category><![CDATA[WP2.7]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=984</guid>
		<description><![CDATA[Ich möchte die Kosten, die dieses Blog und die kleinen Nebenprodukte verursachen gern deckeln, so dass ich keinen Aufwand in die finanziellen Kosten des Webspace stecke, sondern in die Inhalte. Daher wird es also ab jetzt die Möglichkeit geben, eine Fläche zu mieten.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://wpbasis.de/images/wpbasis_logo.png" alt="Logo WP Basis Theme" /><br />
Das <a href="http://wpbasis.de/">WP Basis Theme</a> erfreut sich großer Beliebtheit und die Arbeit daran wird von diversen Leuten unterstützt, sei es mit Übersetzungsarbeit, Fehlerkorrekturen, Verbesserungsvorschlägen oder Tests. Daher auch hier nochmal Danke an alle Helfer!</p>
<p>Da sich HTML5 aber schon geraume Zeit auf meiner ToDo-Liste befindet und ich ein Thema benötige um zu starten, habe ich begonnen das Basis Theme in HTML5 zu bauen, so dass WordPress direkt damit arbeiten kann. Dabei habe ich auch gleich ein Beispiel-Stylesheet beigelegt, so dass es ein Design gibt.<br />
<span id="more-984"></span><br />
Zusätzlich gibt es eine kleines Stylesheet, welches die neuen Bereiche und ihre Tags darstellt, so dass man bei einem Einstieg in HTML5 ein wenig visueller arbeiten kann. Das Stylesheet ist nicht im Code verdrahtet und kann zum Beispiel einfach und unkompliziert mit Hilfe des WebDeveloper-Toolbar hinzugefügt werden. Zu finden ist das Stylesheet in der Struktur unter <code>layout/html5areas/html5areas.css</code>. Ein Beitrag ist damit wie folgt ersichtlich.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wpbasis-html5/html5areas.png" alt="HTML5 visuell dargestellt" /></p>
<p>Diverse Punkte sind aktuell nur im Opera > 9.5 sichtbar. Dazu zählen alle Inhalte des Kommentar-Formulars. Dort wurde unter anderem Pflichtfelder übergeben, wenn sie durch WordPress gesetzt werden und die <code>type</code>-Attribute haben der Aufgabe bezogen ihren Wert erhalten, daher die Image-Zuordnung im Opera.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wpbasis-html5/form-opera.png" alt="Kommentarformular in Opera 9.6" /></p>
<h3>Arbeit mit...</h3>
<p>Als Nachschlagewerk dient mit die Übersicht des w3c und das Blog zum Thema HTML5. Leider ist die Arbeit beim Validieren aktuell nicht so einfach, da mir kein Validator bekannt ist, der lokal validieren kann. Über Tipps würde ich mich daher freuen. Für den IE liefere ich ein Script mit, welches ihm den Umgang mit diversen Elementen beibringt.</p>
<ul>
<li><a href="http://dev.w3.org/html5/spec/Overview.html">HTML 5</a></li>
<li><a href="http://html5doctor.com/">html5doctor</a></li>
<li><a href="http://html5.validator.nu/">HTML5 Validator</a></li>
<li><a href="http://remysharp.com/2009/01/07/html5-enabling-script/">HTML5 enabling script</a></li>
</ul>
<h3>Warum das alles?</h3>
<p>Ich würde mir wünschen, dass der eine oder andere mal drüber schaut, vielleicht Leute, die schon mehr mit HTML5 gearbeitet haben und tief in der Materie stecken. Rückmeldungen wären toll und vielleicht erweitert der eine oder andere das Theme um bestimmte Tags oder Elemente.</p>
<h3>Wie komme ich daran?</h3>
<p>Es gibt hier keinen Download und die Arbeit daran wird in der freien Zeit weiter gehen und daher wird es immer wieder Veränderungen geben. Aktuell stehen nur wenige Grundzüge und es soll den gleichen Stand wie das WP Basis Theme bekommen. Um sich in das Theme einzuarbeiten oder einfach mal drüber zu schauen steht ein <a href="http://code.google.com/p/wp-basis-theme/source/browse/#svn/tags/html5">Repository</a> bereit. Dort kann auch Kommentiert und diskutiert werden.</p>
<p>Der Ordner mit allen Inhalten findet sich im Bereich <a href="http://code.google.com/p/wp-basis-theme/source/browse/#svn/trunk/basis-html5">trunk/basis-html5</a> des <a href="http://code.google.com/p/wp-basis-theme/source/browse/#svn">SVN</a>.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wp-basis-theme-in-xhtml5/984/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wp-basis-theme-in-xhtml5/984/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://wpbasis.de/images/wpbasis_logo.png" />
		<media:content url="http://wpbasis.de/images/wpbasis_logo.png" medium="image">
			<media:title type="html">Logo WP Basis Theme</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/wpbasis-html5/html5areas.png" medium="image">
			<media:title type="html">HTML5 visuell dargestellt</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/wpbasis-html5/form-opera.png" medium="image">
			<media:title type="html">Kommentarformular in Opera 9.6</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WP Basis Theme</title>
		<link>http://bueltge.de/wp-basis-theme/953/</link>
		<comments>http://bueltge.de/wp-basis-theme/953/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:53:31 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=953</guid>
		<description><![CDATA[Fast seit dem ich mit WordPress beschäftige, irgendwann mit Version 0.71 war das, habe ich mir eine Theme-Layout geschaffen, was ich immer zum Neustart eines neuen Theme heran ziehe - <a href="http://wpbasis.de/">WP Basis</a>.
Fast genauso lange veröffentliche ich dieses Theme unter GPL und es wird wohl recht vielfach genutzt. Die Entwicklung am Theme habe ich weiter getrieben und das Theme ist mit jeder Version von WordPress gewachsen und passt sich den jeweiligen Änderungen an. Um diese Veränderungen besser Händeln zu können, habe ich das Theme seit geraumer Zeit im <a href="http://code.google.com/p/wp-basis-theme/">SVN von Google Code</a> abgelegt und konnte dadurch auch auf die Mitarbeit von <a href="http://andreas-isaak.de/">Andreas</a> und <a href="http://ocean90.de/">Dominik</a> zählen - vielen Dank an dieser Stelle nochmal!

Immer wieder kamen Fragen rein, ob das <a href="http://bueltge.de/basis-theme-fuer-wordpress/411/">alte Theme</a> aktualisiert wird und wann - daher hier nun die Info, ich habe einen Stand erreicht, der stabil ist und das Theme ist mit der aktuellen Version 2.7 und der kommenden Version 2.8 von WordPress kompatibel. Daher hier nun offiziell die <a href="http://wpbasis.de/">Freigabe zum Download und Nutzen</a>.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://wpbasis.de/images/wpbasis_logo.png" alt="WP Basis Theme Logo" /><br />
Fast seit dem ich mit WordPress beschäftige, irgendwann mit Version 0.71 war das, habe ich mir eine Theme-Layout geschaffen, was ich immer zum Neustart eines neuen Theme heran ziehe - <a href="http://wpbasis.de/">WP Basis</a>.<br />
Fast genauso lange veröffentliche ich dieses Theme unter GPL und es wird wohl recht vielfach genutzt. Die Entwicklung am Theme habe ich weiter getrieben und das Theme ist mit jeder Version von WordPress gewachsen und passt sich den jeweiligen Änderungen an. Um diese Veränderungen besser Händeln zu können, habe ich das Theme seit geraumer Zeit im <a href="http://code.google.com/p/wp-basis-theme/">SVN von Google Code</a> abgelegt und konnte dadurch auch auf die Mitarbeit von <a href="http://andreas-isaak.de/">Andreas</a> und <a href="http://ocean90.de/">Dominik</a> zählen - vielen Dank an dieser Stelle nochmal!</p>
<p>Immer wieder kamen Fragen rein, ob das <a href="http://bueltge.de/basis-theme-fuer-wordpress/411/">alte Theme</a> aktualisiert wird und wann - daher hier nun die Info, ich habe einen Stand erreicht, der stabil ist und das Theme ist mit der aktuellen Version 2.7 und der kommenden Version 2.8 von WordPress kompatibel. Ebenso ist es abwärtskompatibel, getestet bis Version 1.5 von WordPress. Daher hier nun offiziell die <a href="http://wpbasis.de/">Freigabe zum Download und Nutzen</a>.</p>
<ul>
<li><a href="http://wpbasis.de/">Projektsite</a></li>
<li><a href="http://code.google.com/p/wp-basis-theme/">SVN Repository mit Diskussionsplattform</a></li>
</ul>
<p><span id="more-953"></span><br />
Ein Hinweis, das Theme ist <strong>kein Framework</strong> es ist ein einfaches Theme, welches lediglich die Grundlagen eines Theme enthält und diverse Vorzüge aus meiner Arbeit mir WordPress vereint. Es dient also wirklich dazu, dass man ein Theme für Kunden oder sich selbst erstellt, angepasst auf die Anforderungen. Es bringt keinerlei überflüssiges Markup mit, was man dann nicht braucht und wie bei Frameworks zum Teil üblich, mitschleift. Es soll auch so bleiben, keine Child-Themes oder ähnliches, auch keine Hooks zum komfortablen erweitern mit Code. Ich mag diese Art der Arbeit, schlank und schnell, direkt auf die Aufgabe zugeschnitten und daher kann ich mich nicht sonderlich mit Frameworks im WordPress-Theme-Sektor anfreunden; heißt aber nicht, dass andere Entwickler das auch tun sollten!</p>
<p>Wenn euch diese Arbeit liegt und ihr ebenfalls das Theme in erster Linie selbst schreibt, dann steht euch damit eine Grundlage bereit. Durch die Verwaltung im SVN steht euch ebenso eine Möglichkeit zur Verfügung <a href="http://code.google.com/p/wp-basis-theme/issues/list">Fehler und Hinweise zu melden</a>, worüber ich mich sehr freuen würde.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wp-basis-theme/953/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wp-basis-theme/953/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:thumbnail url="http://wpbasis.de/images/wpbasis_logo.png" />
		<media:content url="http://wpbasis.de/images/wpbasis_logo.png" medium="image">
			<media:title type="html">WP Basis Theme Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>CiteDrag: Drag/Drop einfach und effizient</title>
		<link>http://bueltge.de/citedrag-dragdrop-einfach-und-effizient/938/</link>
		<comments>http://bueltge.de/citedrag-dragdrop-einfach-und-effizient/938/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 13:46:16 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Linktipp]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=938</guid>
		<description><![CDATA[Eine neue Lösung namens <a href="http://code.eligrey.com/citedrag/">CiteDrag</a> von Elijah Grey ermöglicht es, dass man Elemente einfach per Drag&#038;Drop in das Textfeld holt, Markieren und ziehen oder Elemente direkt ziehen.]]></description>
			<content:encoded><![CDATA[<p>In der Vergangenheit habe ich ein wenig darüber <a href="http://bueltge.de/erweiterung-der-kommentarfunktion/862/">berichtet</a>, wie ich meine Kommentarfunktion etwas erweitert habe, so dass das Bezug nehmen auf explizite Textstellen recht einfach ist. Näheres dazu kann man in dem <a href="http://bueltge.de/erweiterung-der-kommentarfunktion/862/">Artikel dazu nachlesen</a>.</p>
<p>Eine neue Lösung namens <a href="http://code.eligrey.com/citedrag/">CiteDrag</a> von Elijah Grey ermöglicht es, dass man Elemente einfach per Drag&#038;Drop in das Textfeld holt, Markieren und ziehen oder Elemente direkt ziehen.</p>
<p>Schlank und benutzerfreundlich kann die Lösung die eine oder andere Website aufwerten, daher sicher einen Blick wert: <a href="http://code.eligrey.com/citedrag/">CiteDrag</a>. Demo und Syntax sind verfügbar, Hintergründe sind im <a href="http://eligrey.com/projects/citedrag/">Artikel</a> von Elijah zu finden.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/citedrag-dragdrop-einfach-und-effizient/938/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/citedrag-dragdrop-einfach-und-effizient/938/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Link vs. @import</title>
		<link>http://bueltge.de/link-vs-import/934/</link>
		<comments>http://bueltge.de/link-vs-import/934/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 18:51:06 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Linktipp]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[StyleSheet]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=934</guid>
		<description><![CDATA[Die Implementierung von Stylesheets kann man mit unterschiedlichen Anweisungen machen und ich bekomme immer wieder die Frage, warum ich mich für <code>&#60;link</code> entschieden habe und nicht via <code>@import</code> die Stylesheets einbinde.]]></description>
			<content:encoded><![CDATA[<p>Die Implementierung von Stylesheets kann man mit unterschiedlichen Anweisungen machen und ich bekomme immer wieder die Frage, warum ich mich für <code>&lt;link</code> entschieden habe und nicht via <code>@import</code> die Stylesheets einbinde.<br />
Gerade in meinem <a href="http://code.google.com/p/wp-basis-theme/">Basis-Theme für WordPress</a> scheint das aufzufallen und diverse Nutzer zu stören.</p>
<p>Der klare Umschwung ist bei mir nach dem Lesen des Buches &#8222;<a href="https://www.amazon.de/dp/389721850X?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=389721850X&#038;adid=1MMXCF2MX45MDJAGA3YM&#038;">High Performance Websites</a>&#8220; von Steve Souders, Chief Performance Yahoo! bei Yahoo!, gefallen und ich löse nun alles per <code>&lt;link</code>.<br />
Nun ist mir aber die öffentlich zugängliche Seite des Buchautors wieder unter gekommen und dort publiziert Steve einen Beitrag zum Thema. Diesen Link möchte ich damit einfach mal als Begründung, Rechtfertigung oder <a href="http://www.stevesouders.com/blog/2009/04/09/dont-use-import/">Lesetipp</a> hier präsentieren.</p>
<p><strong>Die klare Aussage:</strong> Kein <code>@import</code> nutzen.</p>
<p>Spannender Artikel, der sicher bei dem einen oder anderen Veränderungen hervorruft. Daher der Tipp, den Beitrag <a href="http://www.stevesouders.com/blog/2009/04/09/dont-use-import/">don’t use @import</a> zum Buch zu lesen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/link-vs-import/934/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/link-vs-import/934/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Asynchrones Laden großer Datenmengen; XML, JSON und TXT im Vergleich</title>
		<link>http://bueltge.de/asynchrones-laden-grosser-daten-xml-json-txt-vergleich/919/</link>
		<comments>http://bueltge.de/asynchrones-laden-grosser-daten-xml-json-txt-vergleich/919/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 08:26:21 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Linktipp]]></category>
		<category><![CDATA[TXT]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=919</guid>
		<description><![CDATA[AJAX ist immer öfter ein Argument und die Lösung beim Laden großer Datenmengen. Aus der historischen Sicht ist XML eines der ersten Formate, die dabei zum Einsatz kommen. Alternativ wird JSON immer populärer und TXT ist einigen Bereichen nicht tot zu bekommen. Um so schöner, wenn man mal einen direkten Vergleich der drei Formate in diesem Anspruch hat und direkt am Vergleich sieht, wo die Vor- und Nachteile liegen.]]></description>
			<content:encoded><![CDATA[<p>AJAX ist immer öfter ein Argument und die Lösung beim Laden großer Datenmengen. Aus der historischen Sicht ist XML eines der ersten Formate, die dabei zum Einsatz kommen. Alternativ wird JSON immer populärer und TXT ist einigen Bereichen nicht tot zu bekommen. Um so schöner, wenn man mal einen direkten Vergleich der drei Formate in diesem Anspruch hat und direkt am Vergleich sieht, wo die Vor- und Nachteile liegen.</p>
<p>Diesem Thema hat <a href="http://www.anieto2k.com/2009/03/22/carga-asincrona-de-grandes-cantidades-de-datos-con-ajax/">Andrés Nieto</a> verschrieben und es lohnt den Artikel zu überfliegen, die Übersetzungsfunktion bringt sicher nicht das beste Ergebnis, aber mit ein wenig Verständnis und Mühe ist das Ergebnis seiner Bemühungen ersichtlich. Daher meine Empfehlung: &#8222;<a href="http://www.anieto2k.com/2009/03/22/carga-asincrona-de-grandes-cantidades-de-datos-con-ajax/">Carga asíncrona de grandes cantidades de dátos con Ajax</a>&#8220; lesen.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/10000_registros-579x300.png" alt="XML, JSON, TXT im Vergleich" /><br />
<span id="more-919"></span><br />
In letzter Zeit hört man immer wieder gern, das JSON sich wunderbar ansprechen lässt und gerade im Bezug auf JavaScript kann sich der Entwickler hier schon eine Menge an Zeichen sparen. Schaut euch den Code im Verhältnis zu den Diagrammen an, es lohnt.<br />
Ich denke, dass die Ergebnisse dem einen oder anderen Informationen liefern, die die Entscheidung zu einem Format leichter machen können.<br />
Wer unschlüssig ist, kann auch den Code direkt im Artikel nutzen und eigene Werte ermitteln, wobei es sicher nochmal spannend ist, den Vergleich auf unterschiedliche Browser zu erweitern.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/asynchrones-laden-grosser-daten-xml-json-txt-vergleich/919/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/asynchrones-laden-grosser-daten-xml-json-txt-vergleich/919/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/10000_registros-579x300.png" />
		<media:content url="http://bueltge.de/wp-content/images/10000_registros-579x300.png" medium="image">
			<media:title type="html">XML, JSON, TXT im Vergleich</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML Lorem ipsum Deutsch</title>
		<link>http://bueltge.de/html-lorem-ipsum-deutsch/911/</link>
		<comments>http://bueltge.de/html-lorem-ipsum-deutsch/911/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 11:51:00 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Linktipp]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=911</guid>
		<description><![CDATA[Blindtexte werden bei der Webentwicklung ebenso oft benötigt wie klassische HTML-Tags mit Inhalten. Zu diesem Zweck gibt es den einen oder anderen Generator oder andere Tools wo man sich diverse angefertigte Tags und Texte holen kann.
Zu diesem Zweck habe ich mir <a href="http://bueltge.de/test/html-ipsum.php">eine Seite</a> erstellt, die mir diverse Auswahlbereiche mit HTML-Tags und Blindtexten in deutscher Sprache zur Verfügung stellt.]]></description>
			<content:encoded><![CDATA[<p>Blindtexte werden bei der Webentwicklung ebenso oft benötigt wie klassische HTML-Tags mit Inhalten. Zu diesem Zweck gibt es den einen oder anderen Generator oder andere Tools wo man sich diverse angefertigte Tags und Texte holen kann.</p>
<p>Aus meiner Sicht ist die deutsche Sprache aber ein wenig komplexer und die bekannten Lorem ipsum-Texte bilden daher nicht immer alle eventuellen Probleme ab. Hintergründe und Infos zu diesem Thema werden sehr schön in dem Artikel &#8222;<a href="http://www.webkrauts.de/2008/12/06/blindtexte-als-chance/">Blindtexte als Chance</a>&#8220; der Webkrauts dargestellt.</p>
<p>Zu diesem Zweck habe ich mir <a href="http://bueltge.de/test/html-ipsum.php">eine Seite</a> erstellt, die mir diverse Auswahlbereiche mit HTML-Tags und Blindtexten in deutscher Sprache zur Verfügung stellt. Dabei habe ich die Idee des <a href="http://html-ipsum.com/">HTML-Impus</a> von Chris Coyier genutzt und einzelne Bereiche angelegt, die die Übersicht ein wenig wahren. Ebenso kann man via Klick auf den Titel einer Box den Inhalt in die Zwischenablage kopieren.<br />
<span id="more-911"></span><br />
<a href="http://bueltge.de/test/html-ipsum.php" title="zum Tool"><img class="centered" src="http://bueltge.de/wp-content/images/html_lorem_ipsum_screenshot.png" alt="Screenshot HTML Lorem ipsum Deutsch" /></a></p>
<p>Wer also ebenso ab und dann diverse Inhalte und Tags benötigt, gern kann es genutzt werden. Ebenso freue ich mich über Ideen zur Verbesserungen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/html-lorem-ipsum-deutsch/911/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/html-lorem-ipsum-deutsch/911/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/html_lorem_ipsum_screenshot.png" />
		<media:content url="http://bueltge.de/wp-content/images/html_lorem_ipsum_screenshot.png" medium="image">
			<media:title type="html">Screenshot HTML Lorem ipsum Deutsch</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Tweet This mit WordPress</title>
		<link>http://bueltge.de/tweet-this-mit-wordpress/875/</link>
		<comments>http://bueltge.de/tweet-this-mit-wordpress/875/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 21:48:54 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=875</guid>
		<description><![CDATA[In der Aufarbeitung meiner Abonnements im Feed-Reader sind mir diverse Artikel aufgefallen, die das eine oder andere Plugin empfehlen um einen Link zum Beitrag zu ergänzen, um den jeweiligen Beitrag bei Twitter zu empfehlen. Im Grunde stellen dann die meisten Plugins eine Funktion beriet, die man in das Template des Themes integriert.

Wie so oft ist das aber ein wenig übertrieben, und wie auch schon in der Vergangenheit mit der Integration von Links zu Social Bookmark Diensten, gibt es auch dafür eine einfache Lösung mi Hilfe einer Funktion aus dem WordPress Core.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/bird.gif" alt="TwitBird" /><br />
<a href="http://twitter.com/bueltge">Twitter</a> scheint auch weiterhin an Popularität zu gewinnen und der eine oder andere hat gar den kompletten Umzug durchgeführt - kein Blog mehr, nur eine Adresse bei Twitter.<br />
In der Aufarbeitung meiner Abonnements im Feed-Reader sind mir diverse Artikel aufgefallen, die das eine oder andere Plugin empfehlen um einen Link zum Beitrag zu ergänzen, um den jeweiligen Beitrag bei Twitter zu empfehlen. Im Grunde stellen dann die meisten Plugins eine Funktion bereit, die man in das Template des Themes integriert.</p>
<p>Wie so oft ist das aber ein wenig übertrieben, und wie auch schon in der Vergangenheit mit der Integration von Links zu Social Bookmark Diensten, gibt es auch dafür eine einfache Lösung mit Hilfe einer Funktion aus dem WordPress Core.<br />
<span id="more-875"></span><br />
Twitter stellt eine URL <a href="http://apiwiki.twitter.com/REST-API-Changelog?SearchFor=status%3D&#038;sp=1">bereit</a>, die genau das Empfehlen von Beiträgen oder anderen Links bewerkstelligt. Mit Hilfe des <a href="http://codex.wordpress.org/Template_Tags/the_permalink">Permalink-Template Tag</a> von WordPress ist daher auch einfach und schnell der Link generiert.</p>
<pre><code>
&lt;a href="http://twitter.com/home?status=Lese:%20&lt;?php the_permalink(); ?&gt;"&gt;Tweet this&lt;/a&gt;
</code></pre>
<p>Nun gilt es nur die Syntax in das Template des Themes zu integrieren, in der Regel sollte das die <code>single.php</code> des Themes sein. In einigen einfachen Fällen kommt die <code>index.php</code> ebenso in Frage, je nach Aufbau des Themes.</p>
<h3>Erweiterung via Tiny-URL</h3>
<p>Ein kleines Update möchte ich nachschieben, denn der einen oder andere Nutzer will die URL bei der Übergabe direkt kürzen - siehe Ad in den Kommentaren, denn 140 Zeichen sind doch recht wenig und hier gilt es Zeichen sparen. Aber auch dafür gibt es eine einfache  Lösung, die jedoch eine Funktion benötigt, die aus unserem Permalink ein verkürzte URL erstellt.</p>
<p>Dazu muss man nicht viel coden oder suchen, den der Service von <a href="http://tinyurl.com/">TinyURL.com</a> stellt dazu eine <a href="http://www.scripting.com/stories/2007/06/27/tinyurlHasAnApi.html">API</a> bereit, der diese Aufgabe einfach übernimmt. Die nötige Funktion habe ich von <a href="http://www.rene-ade.de/inhalte/php-code-zum-erstellen-einer-tinyurl-ueber-tinyurl-com-api.html">René</a> genommen, da er sie schon in seinem Blog veröffentlicht hat.</p>
<p>Dazu lege ich folgende Funktion in die <code>functions.php</code> des Themes ab.</p>
<pre><code>
/**
 * get a short/tiny url
 * @author: René Ade
 * @link: http://www.rene-ade.de/inhalte/php-code-zum-erstellen-einer-tinyurl-ueber-tinyurl-com-api.html
 */
if ( !function_exists('fb_gettinyurl') ) {
	function fb_gettinyurl( $url ) {
	
		$fp = fopen( 'http://tinyurl.com/api-create.php?url=' . $url, 'r' );
		if ( $fp ) {
			$tinyurl = fgets( $fp );
			if( $tinyurl &#038;& !empty($tinyurl) )
				$url = $tinyurl;
			fclose( $fp );
		}
	 
		return $url;
	}
}
</code></pre>
<p>Die Integration des Link in das Template des Themes muss dann allerdings ein wenig anders aussehen, denn <code>the_permalink()</code> ist für die Ausgabe erstellt und übergibt nicht nur den Wert der URL. Aber auch hier ist die saubere Trennung in WordPress von echo und return-Funktionen überaus nützlich und so kann man einfach und schnell die Basis dieses Template Tags nutzen - <code>get_permalink()</code>.</p>
<p>Nun steht die Funktion zum Ertsellen einer verkürzten URL bereit und wir können den eingangs beschriebenen Link in das Template einbauen. Eine mögliche Syntax könnte wie folgt aussehen.</p>
<pre><code>
&lt;a href="http://twitter.com/home?status=Ich%20empfehle:%20&lt;?php echo fb_gettinyurl( get_permalink() ); ?&gt;"&gt;Tweet this&lt;/a&gt;
</code></pre>
<h3>URL Codierung</h3>
<p>Weil es auch dazu schon Fragen gab, gebe ich nochmal kurz einen Hinweis. In der URL kann man nicht einfach ein Leerzeichen übergeben, ähnlich ist es mit anderen Zeichen und so muss man diese Zeichen codieren. Dies kann man via <a href="http://de3.php.net/urlencode">PHP</a> machen oder nutzt eine kleine <a href="http://www.bolege.de/url-encode/">Tabelle zum Nachschlagen</a>. Damit erschließt sich dann auch, warum ich <code>%20</code> in meinem Text einsetzen - <code>%20</code> steht für ein Leerzeichen.</p>
<p>Arbeitet mit Hilfe der PHP Funktion, dann könnte die obige Syntax wie folgt aussehen.</p>
<pre><code>
&lt;a href="http://twitter.com/home?status=&lt;?php echo urlencode( 'Ich empfehle: ' ) . fb_gettinyurl( get_permalink() ); ?&gt;"&gt;Tweet this&lt;/a&gt;
</code></pre>
<h3>Tweet die Kommentare</h3>
<p>Auch das empfehlen einzelner Kommentare sollte damit klappen, denn auch das ist im Grunde nur ein Link. Da hier die URL wesentlich länger ist, zeige ich gleich mal die Syntax mit Hilfe der obigen Funktion um eine kurze URL zu generieren. Hier im Blog ist diese Möglichkeit nicht aktiv und wurde auch nicht getestet - sollten also Verbesserungen bekannt sein oder Fehler auffallen, dann bitte ich um Hinweis in den Kommentaren.</p>
<pre><code>
&lt;a href="http://twitter.com/home?status=Kommentarempfehlung:%20&lt;?php echo fb_gettinyurl( get_permalink() . '#comment-' . get_comment_ID() ); ?&gt;"&gt;Tweet this&lt;/a&lt;
</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/tweet-this-mit-wordpress/875/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/tweet-this-mit-wordpress/875/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/bird.gif" />
		<media:content url="http://bueltge.de/wp-content/images/bird.gif" medium="image">
			<media:title type="html">TwitBird</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Erweiterung der Kommentarfunktion</title>
		<link>http://bueltge.de/erweiterung-der-kommentarfunktion/862/</link>
		<comments>http://bueltge.de/erweiterung-der-kommentarfunktion/862/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 13:16:05 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Kommentar]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=862</guid>
		<description><![CDATA[Ab jetzt ist die Kommentarfunktion ein wenig mächtiger uns soll euch den Zugriff auf Textstellen und -passagen erleichtern. Aufmerksame Leser haben vielleicht die <a href="http://bueltge.de/148-freie-icons/860/#commenthelp">Hinweise zu den Kommentaren</a> schon gelesen und die Funktion genutzt? Ich habe seit geraumer Zeit eine Möglichkeit integriert, die es euch erlaubt sich auf bestimmte Texte aus dem Artikel zu beziehen, ohne großen Mehraufwand. Um die Funktion zu nutzen müsst ihr lediglich im Artikel den Text formatieren, daraufhin erscheint ein Button mit dem Text &#8222;<em>Antworten</em>&#8220;. Beim Klick auf diesen Button wird der markierte Text direkt in die Textbox eures Kommentars übernommen und ihr könnt wie gewohnt euren Kommentar dazu schreiben. Der übernommene Text wird dabei als Zitat ausgezeichnet.]]></description>
			<content:encoded><![CDATA[<p>Ab jetzt ist die Kommentarfunktion ein wenig mächtiger uns soll euch den Zugriff auf Textstellen und -passagen erleichtern.<br />
Aufmerksame Leser haben vielleicht die <a href="#commenthelp">Hinweise zu den Kommentaren</a> schon gelesen und die Funktion genutzt? Ich habe seit geraumer Zeit eine Möglichkeit integriert, die es euch erlaubt sich auf bestimmte Texte aus dem Artikel zu beziehen, ohne großen Mehraufwand. Um die Funktion zu nutzen müsst ihr lediglich im Artikel den Text markieren, daraufhin erscheint ein Button mit dem Text &#8222;<em>Antworten</em>&#8220;. Beim Klick auf diesen Button wird der markierte Text direkt in die Textbox eures Kommentars übernommen und ihr könnt wie gewohnt euren Kommentar dazu schreiben. Der übernommene Text wird dabei als Zitat ausgezeichnet.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/commentreply.png" alt="Screenshot Bezug auf Textstellen im Artikel" /><br />
<span id="more-862"></span><br />
Ich wünsche mir, dass damit die Fragen für mich klarer werden und die Nutzung einfacher wird. Ebenso kann es natürlich genutzt werden um sich auf spezielle Bereiche oder auch nur Wörter zu beziehen, sei es wegen einer Diskussion, Korrektur oder einfach nur Rechtschreibfehler. Ich würde mich freuen, wenn ich ein Feedback bekomme, ob die Funktion sinnvoll erscheint und wie das Handling ist.</p>
<h4>Hinweise</h4>
<p>Die Möglichkeit besteht nur, wenn mein Blog mit aktivem JavaScript besucht wird. Ich habe es unter diversen Browsern getestet und bisher keine Fehler entdeckt, lediglich Unterschiede in der Darstellung, die aber nur auf Grund des entsprechenden Stylesheets zu erwarten waren.</p>
<h3>Die Technik</h3>
<p>Der eine oder andere möchte vielleicht mehr dazu wissen und die gleiche Möglichkeit involvieren, daher hier in einigen wenigen Worten, wo das ganze her ist und wie man es integriert.</p>
<p>Das JavaScript um diese Möglichkeit anzubieten wurde von <a href="http://donttrustthisguy.com/">Jim Jeffers</a> mit Hilfe von jQuery erstellt. Da ich hier auch im Blog jQuery für diverse Umsetzungen nutze, wollte ich gern diesen Mehrwert ebenso hinterlegen. Natürlich muss das Framework <a href="http://jquery.com/">jQuery</a> vorhanden sein, minimal Version 1.2.6. Ist dieses eingebunden, so muss man lediglich das <a href="http://github.com/jimjeffers/encouraged-commentary/tree/master">Script</a> von Jim hinterlegen und den Bereich,  der die Funktion haben soll mit einer entsprechenden Klasse ausstatten. Im Standard ist das die Klasse <code>quotable</code>.</p>
<p><strong>Hinweis:</strong> Wenn ihr WordPress ab Version 2.7 einsetzt und den Template Tag <code>post_class()</code> nutzt, dann muss diese Funktion lediglich um die Klasse erweitert werden, ein Beispiel:</p>
<pre><code><div &lt;?php post_class('quotable'); ?&gt; id="content"></pre>
<p><a href="http://www.texto.de/texto/wp-27-neuer-template-tag-post-class/">Monika</a> hat zu dem neuen Tag schon ein wenig mehr erklärt, so dass ich es mir hier erspare.</p>
<p>Beim <a href="http://github.com/jimjeffers/encouraged-commentary/tree/master">Download</a> des Beispiel liegt eine Demo und Doku bei, so dass es nicht problematisch sein sollte die Funktion zu nutzen.</p>
<p>Im Anschluss kann man noch den entstehenden Button ein wenig anpassen. Das Standardscript stellt dazu die ID <code>comment-respond</code> bereit.</p>
<p>Ich empfinde als Mehrwert und tolle Idee. Wer also ebenfalls mit jQuery unterwegs und ein wenig erweitern möchte, der kann sicher die 5 kByte verschmerzen und einen entsprechenden Mehrwert bieten.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/erweiterung-der-kommentarfunktion/862/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/erweiterung-der-kommentarfunktion/862/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/commentreply.png" />
		<media:content url="http://bueltge.de/wp-content/images/commentreply.png" medium="image">
			<media:title type="html">Screenshot Bezug auf Textstellen im Artikel</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Blackbird JavaScript Konsole für WordPress</title>
		<link>http://bueltge.de/blackbird-javascript-konsole-wordpress/853/</link>
		<comments>http://bueltge.de/blackbird-javascript-konsole-wordpress/853/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 12:25:56 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=853</guid>
		<description><![CDATA[<img class="alignrightob" src="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" alt="Blackbird Logo" />
Die Entwicklung von JavaScript Scripten wird immer vielfältiger und öfter nötig. Um so schöner, wenn das Debuggen browserunabhängig möglich ist. Ich hatte Kontakt mit einem JS-Entwickler, der gern das Tool <a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a> einsetzt und der Zugriff innerhalb von WordPress sollte erleichtert werden.
Und genau das ist auch entstanden, Plugin kopieren, aktivieren und nutzen.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" alt="Blackbird Logo" /><br />
Die Entwicklung von JavaScript Scripten wird immer vielfältiger und öfter nötig. Um so schöner, wenn das Debuggen browserunabhängig möglich ist. Ich hatte Kontakt mit einem JS-Entwickler, der gern das Tool <a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a> einsetzt und der Zugriff innerhalb von WordPress sollte erleichtert werden.<br />
Und genau das ist auch entstanden, Plugin kopieren, aktivieren und nutzen.<br />
<span id="more-853"></span><br />
<a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a> ist eine Konsole zum Debuggen von JavaScript, browserunabhängig und eine echte Alternative zu Firebug oder <code>alert("Hinweis");</code>. Hinzukommt, dass Blackbird sehr einfach und optisch ansprechend ist.<br />
Mit Hilfe des Plugin für WordPress umgeht man die Integration im Quellcode, egal ob Debuggen im Frontend oder Backend von WordPress.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wp/blackbird-wp.png" alt="Blackbird Console in WordPress Backend und Frontend" /></p>
<h3>Anforderungen</h3>
<p>Das Plugin wurde unter WordPress 2.7 entwickelt und getestet, sollte aber Version 2.5 laufen.</p>
<h3>Installation</h3>
<ol>
<li>Plugin downloaden und die zip-Datei lokal entpacken.</li>
<li>Die PHP-Datei in euren WordPress-Plugin-Ordner kopieren (/wp-content/plugins/).</li>
<li>Im Adminbereich deines Blogs das Plugin aktivieren.</li>
<li>Reload, Frontend bzw. Backend und Taste <em>F2</em> lassen die Konsole erscheinen</li>
</ol>
<h3>Hinweise</h3>
<p>Blackbird setzt einen Cookie, wenn man das Fenster immer geladen haben will. Dazu muss lediglich die Checkbox &#8222;Visible on page load&#8220; gesetzt werden. Ansonsten kann die Konsole immer via <em>F2</em> aufgerufen werden. Der Cookie wird im Beispiel Logging auch genutzt um eine Beispielausgabe im Tool auszugeben. Das eigentliche Loggen kann beispielsweise in der <code>mylogging.js</code> geschehen, die direkt im Ordner des Plugins zur Verfügung steht.</p>
<p>Hinweise über Formen des Logging sind auf der <a href="http://www.gscottolson.com/blackbirdjs/">Projektseite des Tools</a> zu finden und sollen hier nicht weiter ausgeführt werden.</p>
<h3>Download:</h3>
<form class="spenden" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="amount" id="eins" value="" /><br />
<input type="hidden" name="cmd" value="_xclick" /><br />
<input type="hidden" name="business" value="frank@bueltge.de" /><br />
<input type="hidden" name="item_name" value="Spende bueltge.de Blackbird" /><br />
<input type="hidden" name="no_shipping" value="1" /><br />
<input type="hidden" name="return" value="http://bueltge.de/" /><br />
<input type="hidden" name="cancel_return" value="http://bueltge.de/" /><input type="hidden" name="currency_code" value="EUR" /><br />
<input type="hidden" name="tax" value="0" /><br />
<input type="hidden" name="bn" value="PP-DonationsBF" /><br />
<input type="image" src="http://bueltge.de/wp-content/images/donate.png" style="border:0" name="submit" alt="Zahlen Sie mit PayPal - schnell, kostenlos und sicher!" /></form>
<p><strong>Ist die Arbeit nicht 1 Euro wert?</strong><br />
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.<br />
Möchtest du mehr oder anders spenden, so besuche meine <a href="http://bueltge.de/wunschliste/">Wunschliste</a>.</p>
<p>Download als zip-Datei: <a href="http://bueltge.de/wp-content/download/wp/plugins/blackbird.zip">blackbird.zip</a> - 108 kByte<br />
<br style="clear:left" /><br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/blackbird-javascript-konsole-wordpress/853/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/blackbird-javascript-konsole-wordpress/853/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" medium="image">
			<media:title type="html">Blackbird Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/wp/blackbird-wp.png" medium="image">
			<media:title type="html">Blackbird Console in WordPress Backend und Frontend</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>jQuery Funktionen im Griff</title>
		<link>http://bueltge.de/jquery-funktionen-im-griff/851/</link>
		<comments>http://bueltge.de/jquery-funktionen-im-griff/851/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 09:18:41 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=851</guid>
		<description><![CDATA[In der Vergangenheit habe ich die <a href="http://bueltge.de/cssdoc-leicht-gemacht/559/">Tags für CSSDOC</a> in meinem Lieblingseditor <a href="http://www.ultraedit.com/">UltraEdit</a> bereit gestellt. Durch einen netten Kontakt mit <a href="http://jendryschik.de/">Michael</a> ist mir aufgefallen, dass ich auch die Tags von jQuery im Editor nutze und warum nicht auch die bereit stellen.
Daher liegen nun hier die Tags zur jQuery Version 1.2.6. Damit wird der Zugriff sehr einfach möglich. Die Tags kann man sicher auch in anderen Editoren nutzen, man muss sie nur an das entsprechende Format anpassen.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://bueltge.de/wp-content/images/jquery_logo.gif" alt="jQuery Logo" /><br />
In der Vergangenheit habe ich die <a href="http://bueltge.de/cssdoc-leicht-gemacht/559/">Tags für CSSDOC</a> in meinem Lieblingseditor <a href="http://www.ultraedit.com/">UltraEdit</a> bereit gestellt. Durch einen netten Kontakt mit <a href="http://jendryschik.de/">Michael</a> ist mir aufgefallen, dass ich auch die Tags von jQuery im Editor nutze und warum nicht auch die bereit stellen.<br />
Daher liegen nun hier die Tags zur jQuery Version 1.2.6. Damit wird der Zugriff sehr einfach möglich. Die Tags kann man sicher auch in anderen Editoren nutzen, man muss sie nur an das entsprechende Format anpassen.<br />
<span id="more-851"></span><br />
Die Tags sind nach den unterschiedlichen Bereichen (wie in der Doku) gesplittet, zusätzlich gibt es alle Funktionen von jQuery in einer Liste. Dadurch kann man recht schnell arbeiten. Wer viel mit jQuery umsetzt, der wird die Unterteilung eventuell lästig finden und daher ist der Zugriff auf alle Tags in einer Liste sehr viel einfacher und schneller.</p>
<p>Um die Tags in seine Liste zu bekommen, muss man die folgenden Einträge in die taglist.txt einfügen. Wo diese sich befindet, dass erfährt man durch das Kontextmenu auf der Liste im Editor - also rechte Mousetaste auf die Tagliste und <em>Tags anpassen</em> wählen.</p>
<p>Sind die einzelnen Tags dann in der Liste gespeichert, so gilt es diese auch UltraEdit mitzuteilen. Dazu muss die &#8222;Group List&#8220; erweitert werden. Das könnte wie folgt aussehen.</p>
<pre><code>
[Group List]
0=CSSDoc
1=HTML - Special Characters
2=HTML - Tags
3=jQuery 1.2.6
4=jQuery 1.2.6 Ajax
5=jQuery 1.2.6 Attributes
6=jQuery 1.2.6 Core
7=jQuery 1.2.6 CSS
8=jQuery 1.2.6 Effects
9=jQuery 1.2.6 Events
10=jQuery 1.2.6 Internals
11=jQuery 1.2.6 Manipulation
12=jQuery 1.2.6 Traversing
13=jQuery 1.2.6 Utilities
14=UE/UES Macro Commands
15=UE/UES Script Commands
16=
</code></pre>
<p>Im Anschluss nochmal das Kontextmenu aufrufen und die neue Liste wird aktualisiert.</p>
<p>Bevor es nun nur noch die Syntax gibt, ein kleiner Tipp ab Rande zu jQuery. Besonders schön und schnell ist der Zugriff auf die Dokumentation mit Hilfe des Add on für den Firefox <a href="http://www.kintek.com.au/jquery-menu-firefox-extension.html">jQuery Menu</a>.</p>
<h4>Aufgeteilte Liste</h4>
<pre><code>
[Tag Group - jQuery 1.2.6 Core]
0="jQuery(expression, context)"
1="jQuery(html)"
2="jQuery(elements)"
3="jQuery(callback)"
4=".each(callback)"
5=".eq(position)"
6=".get()"
7=".get(index)"
8=".index(subject)"
9=".data(name)"
10=".data(name, value)"
11=".removeData(name)"
12="jQuery.fn.extend(object)"
13="jQuery.extend(object)"
14="jQuery.noConflict()"
15="jQuery.noConflict(extreme)"
16=

[Tag Group - jQuery 1.2.6 Attributes]
0=".attr(name)"
1=".attr(properties)"
2=".attr(key, value)"
3=".attr(key, fn)"
4=".removeAttr(name)"
5=".addClass(class)"
6=".hasClass(class)"
7=".removeClass(class)"
8=".toggleClass(class)"
9=".html()"
10=".html(val)"
11=".text()"
12=".text(val)"
13=".val()"
14=".val(val)"
15=".val(val)"
16=

[Tag Group - jQuery 1.2.6 Traversing]
0=".eq(index)"
1=".hasClass(class)"
2=".filter(expr)"
3=".filter(fn)"
4=".is(expr)"
5=".map(callback)"
6=".not(expr)"
7=".slice(start, end)"
8=".add(expr)"
9=".children(expr)"
10=".contents()"
11=".find(expr)"
12=".next(expr)"
13=".nextAll(expr)"
14=".parent(expr)"
15=".parents(expr)"
16=".prev(expr)"
17=".prevAll(expr)"
18=".siblings(expr)"
19=".andSelf()"
20=".end()"
21=".html()"
22=".html(val)"
23=".text()"
24=".text(val)"
25=

[Tag Group - jQuery 1.2.6 Manipulation]
0=".append(content)"
1=".appendTo(content)"
2=".prepend(content)"
3=".prependTo(content)"
4=".after(content)"
5=".before(content)"
6=".insertAfter(content)"
7=".insertBefore(content)"
8=".wrap(html)"
9=".wrap(elem)"
10=".wrapAll(html)"
11=".wrapAll(elem)"
12=".wrapInner(html)"
13=".wrapInner(elem)"
14=".replaceWith(content)"
15=".replaceAll(selector)"
16=".empty()"
17=".remove(expr)"
18=".clone()"
19=".clone(true)"
20=

[Tag Group - jQuery 1.2.6 CSS]
0=".css(name)"
1=".css(properties)"
2=".css(name, value)"
3=".offset()"
4=".height()"
5=".height(val)"
6=".width()"
7=".width(val)"
8=

[Tag Group - jQuery 1.2.6 Events]
0=".ready(fn)"
1=".bind(type, data, fn)"
2=".one(type, data, fn)"
3=".trigger(type , data )"
4=".triggerHandler(type , data )"
5=".unbind(type , data )"
6=".hover(over, out)"
7=".toggle(fn, fn1)"
8=".blur()"
9=".blur(fn)"
10=".change()"
11=".change(fn)"
12=".click()"
13=".click(fn)"
14=".dblclick()"
15=".dblclick(fn)"
16=".error()"
17=".error(fn)"
18=".focus()"
19=".focus(fn)"
20=".keydown()"
21=".keydown(fn)"
22=".keypress()"
23=".keypress(fn)"
24=".keyup()"
25=".keyup(fn)"
26=".load (fn)"
27=".mousedown (fn)"
28=".mousemove(fn)"
29=".mouseout(fn)"
30=".mouseover(fn)"
31=".mouseup(fn)"
32=".resize(fn)"
33=".scroll(fn)"
34=".select()"
35=".select(fn)"
36=".submit()"
37=".submit(fn)"
38=".unload(fn)"
39=

[Tag Group - jQuery 1.2.6 Effects]
0=".show()"
1=".show(speed, callback)"
2=".hide()"
3=".hide(speed, callback)"
4=".toggle()"
5=".slideDown(speed, callback)"
6=".slideUp(speed, callback)"
7=".slideToggle(speed, callback)"
8=".fadeIn(speed, callback)"
9=".fadeOut(speed, callback)"
10=".fadeTo(speed, opacity, callback)"
11=".animate(params, duration, easing, callback)"
12=".animate(params, options)"
13=".stop()"
14=".queue()"
15=".queue(callback)"
16=".queue(queue)"
17=".dequeue()"
18=

[Tag Group - jQuery 1.2.6 Ajax]
0="jQuery.ajax(options)"
1=".load(url, data, callback)"
2="jQuery.get(url, data, callback)"
3="jQuery.getJSON(url, data, callback)"
4="jQuery.getScript(url, callback)"
5="jQuery.post(url, data, callback, type)"
6=".ajaxComplete(callback)"
7=".ajaxError(callback)"
8=".ajaxSend(callback)"
9=".ajaxStart(callback)"
10=".ajaxStop(callback)"
11=".ajaxSuccess(callback)"
12="jQuery.ajaxSetup(options)"
13=".serialize()"
14=".serializeArray()"
15=

[Tag Group - jQuery 1.2.6 Utilities]
0="jQuery.each(object, callback)"
1="jQuery.extend(target, object1, objectN)"
2="jQuery.grep(array, callback, invert)"
3="jQuery.makeArray(obj)"
4="jQuery.map(array, callback)"
5="jQuery.inArray(value, array)"
6="jQuery.unique(array)"
7="jQuery.isFunction(obj)"
8="jQuery.trim(str)"
9=

[Tag Group - jQuery 1.2.6 Internals]
0="jQuery.data(elem)"
1="jQuery.data(elem, name)"
2="jQuery.data(elem, name, value)"
3="jQuery.removeData(elem)"
4="jQuery.removeData(elem, name)"
5="jQuery.param(obj)"
6=
</code></pre>
<h4>Komplett in einer Liste</h4>
<pre><code>
[Tag Group - jQuery 1.2.6]
0=".add(expr)"
1=".addClass(class)"
2=".after(content)"
3=".ajaxComplete(callback)"
4=".ajaxError(callback)"
5=".ajaxSend(callback)"
6=".ajaxStart(callback)"
7=".ajaxStop(callback)"
8=".ajaxSuccess(callback)"
9=".andSelf()"
10=".animate(params, duration, easing, callback)"
11=".animate(params, options)"
12=".append(content)"
13=".appendTo(content)"
14=".attr(key, fn)"
15=".attr(key, value)"
16=".attr(name)"
17=".attr(properties)"
18=".before(content)"
19=".bind(type, data, fn)"
20=".blur()"
21=".blur(fn)"
22=".change()"
23=".change(fn)"
24=".children(expr)"
25=".click()"
26=".click(fn)"
27=".clone()"
28=".clone(true)"
29=".contents()"
30=".css(name)"
31=".css(name, value)"
32=".css(properties)"
33=".data(name)"
34=".data(name, value)"
35=".dblclick()"
36=".dblclick(fn)"
37=".dequeue()"
38=".each(callback)"
39=".empty()"
40=".end()"
41=".eq(index)"
42=".eq(position)"
43=".error()"
44=".error(fn)"
45=".fadeIn(speed, callback)"
46=".fadeOut(speed, callback)"
47=".fadeTo(speed, opacity, callback)"
48=".filter(expr)"
49=".filter(fn)"
50=".find(expr)"
51=".focus()"
52=".focus(fn)"
53=".get()"
54=".get(index)"
55=".hasClass(class)"
56=".hasClass(class)"
57=".height()"
58=".height(val)"
59=".hide()"
60=".hide(speed, callback)"
61=".hover(over, out)"
62=".html()"
63=".html()"
64=".html(val)"
65=".html(val)"
66=".index(subject)"
67=".insertAfter(content)"
68=".insertBefore(content)"
69=".is(expr)"
70=".keydown()"
71=".keydown(fn)"
72=".keypress()"
73=".keypress(fn)"
74=".keyup()"
75=".keyup(fn)"
76=".load (fn)"
77=".load(url, data, callback)"
78=".map(callback)"
79=".mousedown (fn)"
80=".mousemove(fn)"
81=".mouseout(fn)"
82=".mouseover(fn)"
83=".mouseup(fn)"
84=".next(expr)"
85=".nextAll(expr)"
86=".not(expr)"
87=".offset()"
88=".one(type, data, fn)"
89=".parent(expr)"
90=".parents(expr)"
91=".prepend(content)"
92=".prependTo(content)"
93=".prev(expr)"
94=".prevAll(expr)"
95=".queue()"
96=".queue(callback)"
97=".queue(queue)"
98=".ready(fn)"
99=".remove(expr)"
100=".removeAttr(name)"
101=".removeClass(class)"
102=".removeData(name)"
103=".replaceAll(selector)"
104=".replaceWith(content)"
105=".resize(fn)"
106=".scroll(fn)"
107=".select()"
108=".select(fn)"
109=".serialize()"
110=".serializeArray()"
111=".show()"
112=".show(speed, callback)"
113=".siblings(expr)"
114=".slice(start, end)"
115=".slideDown(speed, callback)"
116=".slideToggle(speed, callback)"
117=".slideUp(speed, callback)"
118=".stop()"
119=".submit()"
120=".submit(fn)"
121=".text()"
122=".text()"
123=".text(val)"
124=".text(val)"
125=".toggle()"
126=".toggle(fn, fn1)"
127=".toggleClass(class)"
128=".trigger(type , data )"
129=".triggerHandler(type , data )"
130=".unbind(type , data )"
131=".unload(fn)"
132=".val()"
133=".val(val)"
134=".val(val)"
135=".width()"
136=".width(val)"
137=".wrap(elem)"
138=".wrap(html)"
139=".wrapAll(elem)"
140=".wrapAll(html)"
141=".wrapInner(elem)"
142=".wrapInner(html)"
143="jQuery(callback)"
144="jQuery(elements)"
145="jQuery(expression, context)"
146="jQuery(html)"
147="jQuery.ajax(options)"
148="jQuery.ajaxSetup(options)"
149="jQuery.data(elem)"
150="jQuery.data(elem, name)"
151="jQuery.data(elem, name, value)"
152="jQuery.each(object, callback)"
153="jQuery.extend(object)"
154="jQuery.extend(target, object1, objectN)"
155="jQuery.fn.extend(object)"
156="jQuery.get(url, data, callback)"
157="jQuery.getJSON(url, data, callback)"
158="jQuery.getScript(url, callback)"
159="jQuery.grep(array, callback, invert)"
160="jQuery.inArray(value, array)"
161="jQuery.isFunction(obj)"
162="jQuery.makeArray(obj)"
163="jQuery.map(array, callback)"
164="jQuery.noConflict()"
165="jQuery.noConflict(extreme)"
166="jQuery.param(obj)"
167="jQuery.post(url, data, callback, type)"
168="jQuery.removeData(elem)"
169="jQuery.removeData(elem, name)"
170="jQuery.trim(str)"
171="jQuery.unique(array)"
172=
</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/jquery-funktionen-im-griff/851/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/jquery-funktionen-im-griff/851/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/jquery_logo.gif" />
		<media:content url="http://bueltge.de/wp-content/images/jquery_logo.gif" medium="image">
			<media:title type="html">jQuery Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Conditional Comments effizient nutzen</title>
		<link>http://bueltge.de/conditional-comments-effizient-nutzen/632/</link>
		<comments>http://bueltge.de/conditional-comments-effizient-nutzen/632/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 22:21:11 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=632</guid>
		<description><![CDATA[Conditional Comments sind aus meiner Sicht <a href="http://de.wikipedia.org/wiki/Hack">Hacks</a> und ich will keine Diskussion anstoßen, ob Hacks sinnvoll sind oder man den IE nicht unterstützt. Ab und dann kommt man aus meiner Sicht nicht am Internet Explorer vorbei und dabei sind Conditional Comments eine einfache aber effektive Hilfe.

Sie basieren auf einem absichtlich eingebauten &#8222;HTML-Kommentar&#8220; und daher kann man sie bedenkenlos nutzen. Dies soll nicht heißen, dass man immer diese Möglichkeit nutzen sollte. Aber aus meiner Sicht stellt diese Möglichkeit ein effektives bedenkenloses Werkzeug dar.

In diesem Artikel möchte ich aber eine Überlegung darstellen, die aus meiner Sicht nicht abwegig ist, wenn auch aufwendig. Nicht selten sieht man Websites diverser Entwickler, die bewusst ein unterschiedliches Design in Nicht-IE- und IE-Browsern entwickeln. Der Anwender wird das in der Regel nicht mitbekommen, denn wer surft schon mit zwei Browsern gleichzeitig auf einer Website? Aber der Hintergrund dieser Lösung ist aus meiner Sicht ein anderer. Diese Form der Lösung zeigt, dass man eventuell explizit ein Stylesheet für den IE und Nicht-IE-Browsern machen sollte und nicht ein Stylesheet für Nicht-IE-Browser plus diverse Korrekturen, Hacks und Differenzen.]]></description>
			<content:encoded><![CDATA[<p>Conditional Comments sind aus meiner Sicht <a href="http://de.wikipedia.org/wiki/Hack">Hacks</a> und ich will keine Diskussion anstoßen, ob Hacks sinnvoll sind oder man den IE nicht unterstützt. Ab und dann kommt man aus meiner Sicht nicht am Internet Explorer vorbei und dabei sind Conditional Comments eine einfache aber effektive Hilfe.</p>
<p>Sie basieren auf einem absichtlich eingebauten &#8222;HTML-Kommentar&#8220; und daher kann man sie bedenkenlos nutzen. Dies soll nicht heißen, dass man immer diese Möglichkeit nutzen sollte. Aber aus meiner Sicht stellt diese Möglichkeit ein effektives bedenkenloses Werkzeug dar.</p>
<p>In diesem Artikel möchte ich aber eine Überlegung darstellen, die aus meiner Sicht nicht abwegig ist, wenn auch aufwendig. Nicht selten sieht man Websites diverser Entwickler, die bewusst ein unterschiedliches Design in Nicht-IE- und IE-Browsern entwickeln. Der Anwender wird das in der Regel nicht mitbekommen, denn wer surft schon mit zwei Browsern gleichzeitig auf einer Website? Aber der Hintergrund dieser Lösung ist aus meiner Sicht ein anderer. Diese Form der Lösung zeigt, dass man eventuell explizit ein Stylesheet für den IE und Nicht-IE-Browsern machen sollte und nicht ein Stylesheet für Nicht-IE-Browser plus diverse Korrekturen, Hacks und Differenzen.<br />
<span id="more-632"></span></p>
<div class="contentnavi">
<h4>Inhalt</h4>
<ul>
<li><a href="#ieeo">IE: Entweder oder</a></li>
<li><a href="#iev">via IE Version</a></li>
<li><a href="#php">via PHP</a></li>
<li><a href="#js">via JavaScript</a></li>
</ul>
</div>
<p>Im Grunde entwickelt eine Vielzahl der Webentwickler sicher so <small>(ausgenommen ist Version 8 des IE, in dem Fall könnte es anders werden, aber bis dahin ist sicher noch ein weiter Weg)</small>:</p>
<ol>
<li>Style via CSS erstellen, welches in Nicht-IE-Browsern (< Version 8) läuft</li>
<li>Anpassen an des Stylesheet für den IE kleiner 8</li>
<li>Diverse Hacks im Stylesheet, mitunter viel Code, den Browser mit Standard-Interpretation nicht benötigen</li>
</ol>
<p>Schon jetzt arbeiten aber auch eine ganze Reihe von Entwicklern einen anderen Weg ab. Dieser ist nur in kleinen Punkten abwegig, aus meiner Sicht hat er aber eine große Wirkung.</p>
<ol>
<li>Style via CSS erstellen, welches in Nicht-IE-Browsern (< Version 8) läuft</li>
<li>Stylesheet für den IE kleiner Version 8 erstellen</li>
<li>Einbinden des Stylesheet für den IE mit Hilfe von Conditional Comments</li>
</ol>
<p>Die zweite Lösung sorgt dafür, dass Nicht-IE-Browser keinen unnötigen Code verarbeiten und das Stylesheet schlank bleibt. Conditional Comments haben den Vorteil, sie arbeiten nur im Internet Explorer. Damit sind sie wunderbar geeignet um Anweisungen nur für den IE abzulegen. Dabei kann man zwischen den unterschiedlichen Versionen des IE wählen. Im folgenden sind dazu Beispiele hinterlegt, die das Nutzen an kleinen Beispielen zeigen und die unterschiedlichen Möglichkeiten zeigen.</p>
<h3 id="ieeo">IE: Entweder oder</h3>
<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/internet_explorer.jpg" alt="IE Logo" /><br />
Parallel dazu möchte ich aber noch eine andere Methode zeigen, die dabei sehr direkt unterscheidet. Die beiden folgenden Abfragen gehen davon aus, dass man also ein Stylesheet hat, welches für Nicht-IE-Browser ist und eines, welches explizit für den IE ist. Das heißt, dass das Stylesheet für den IE alle notwendigen Angaben enthält und der IE <em>keine</em> Mischung aus Stylesheet für alle Browser und dem speziellen Stylesheet bekommt.</p>
<h4>Für IE</h4>
<pre><code>
&lt;!--[if IE]&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;![endif]--&gt;
</code></pre>
<h4>Nicht (<code>!</code>) für IE</h4>
<pre><code>
&lt;!--[if !IE]&gt;--&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;standard.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;!--&lt;![endif]--&gt;
</code></pre>
<h3 id="iev">IE: Diffizile Abfragen</h3>
<p>Im Gegensatz zur obigen Methode kann man alternativ auch nur diverse Stylesheets erarbeiten, die die Probleme im IE mit dem Standard-Stylesheet bearbeiten und je nach Version des IE einbinden. Dazu stehen diverse Conditional Comments-Abfragen bereit.</p>
<p>Alternativ kann man aber auch, wenn es denn sein muss/soll, diverse eigenständige Stylesheets für die jeweilige betroffene Version des IE erstellen und wie oben angesprochen einbinden.</p>
<h4>Für IE 5 und größer</h4>
<pre><code>
&lt;!--[if gte IE 5]&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;![endif]--&gt;
</code></pre>
<h4>Für IE, kleiner als Version 6</h4>
<pre><code>
&lt;!--[if lt IE 6]&gt;
	&lt;link rel="stylesheet" href="ie.css" type="text/css" media="screen" /&gt;
&lt;![endif]--&gt;
</code></pre>
<h4>Für IE, kleiner oder gleich als Version 5.5</h4>
<pre><code>
&lt;!--[if lte IE 5.5]&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;![endif]--&gt;
</code></pre>
<h4>Für IE, größer als Version 6</h4>
<pre><code>
&lt;!--[if gt IE 6]&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;![endif]--&gt;
</code></pre>
<h4>Hinweis zum Syntax</h4>
<ul>
<li>gt: greater than (größer als)</li>
<li>gte: greater than or equal to (größer als oder gleich)</li>
<li>lt: less than (kleiner als)</li>
<li>lte: less than or equal to (kleiner als oder gleich)</li>
</ul>
<h3 id="php">Via PHP</h3>
<p>Aber auch PHP gibt uns die Möglichkeit den Browser abzufragen und ab und dann kann die Lösung sinnvoll sei. Aus meiner Sicht ist sie es aber nicht für die Implementierung des Stylesheet für den IE. Dort sind die Conditional Comments sehr gut geeignet.<br />
Der Vollständigkeit aber und da man ab und dann die Lösung gebrauchen kann, lege ich meine Codeschnippsel hier ab.</p>
<pre><code>
&lt;?php
	if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ){
		if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') ){
			$browser = 'Netscape (Gecko/Netscape)';
		}
		else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') ){
			$browser = 'Mozilla Firefox (Gecko/Firefox)';
		}
		else{
			$browser = 'Mozilla (Gecko/Mozilla)';
		}
	}
	else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ){
		$browser = 'Internet Explorer (MSIE/Compatible)';
	}
	else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') ){
		$browser = 'Safari';
	}
	else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') === true){
		$browser = 'Opera';
	}
	else{
		$browser = 'andere Browser';
	}
	echo '&lt;h2&gt;Dein Browser ' . $browser . '&lt;/h2&gt;';
?&gt;
</code></pre>
<pre><code>
&lt;?php
	if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') ) {
?&gt;
		&lt;link rel="stylesheet" type="text/css" href="safari.css" media="screen" /&gt;
&lt;?php
	}
?&gt;
</code></pre>
<h3 id="js">Via JavaScript</h3>
<p>Auch im Bereich JavaScript kann man diverse Abfragen starten um den Browser zu erkennen, allerdings geht das nur, wenn JS beim Anwender auch aktiv ist. Für diese Möglichkeit gibt es die unterschiedlichsten Möglichkeiten und eine sehr kleine Funktion stammt dabei aus meinem Archiv.<br />
Auch dieses soll hier nicht groß erläutert werden, ich denke, dazu gibt es ausreichend und bessere Seiten.</p>
<pre><code>
function getBrowserType() {
	var detect = navigator.userAgent.toLowerCase();
	var browser;
	var doCheckIt = function (bString) {
		place = detect.indexOf(bString) + 1;
		return place;
	};
	if (doCheckIt('konqueror')) { browser = "konqueror"; }
	else if (doCheckIt('safari')) { browser = "safari"; }
	else if (doCheckIt('omniweb')) { browser = "omniweb"; }
	else if (doCheckIt('opera')) { browser = "opera"; }
	else if (doCheckIt('webtv')) { browser = "webtv"; }
	else if (doCheckIt('icab')) { browser = "icab"; }
	else if (doCheckIt('msie')) { browser = "msie"; }
	else if (doCheckIt('firefox')) { browser = "firefox"; }
	else if (!doCheckIt('compatible')) { browser = "nn"; }
	return browser;
}
</code></pre>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/conditional-comments-effizient-nutzen/632/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/conditional-comments-effizient-nutzen/632/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/internet_explorer.jpg" />
		<media:content url="http://bueltge.de/wp-content/images/internet_explorer.jpg" medium="image">
			<media:title type="html">IE Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Rundungen mit JavaScript Test erweitert</title>
		<link>http://bueltge.de/rundungen-mit-javascript-test-erweitert/847/</link>
		<comments>http://bueltge.de/rundungen-mit-javascript-test-erweitert/847/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 13:49:39 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Border]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Radius]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=847</guid>
		<description><![CDATA[In der Vergangenheit habe ich ein kleines <a href="http://bueltge.de/webdesign-rundungen-mit-javascript/511/">Testscript</a> erstellt, welches einige Lösungen vergleicht, die mittels JavaScript und diverse Hilfen wie Bilder, CSS oder Libraries die Rundungen im Webdesign erleichtern sollen. Mehr Infos im zugehörigen <a href="http://bueltge.de/webdesign-rundungen-mit-javascript/511/">Beitrag</a>.

Aktuell gefällt mir die Lösung &#8222;<a href="http://dillerdesign.com/experiment/DD_roundies/">DD_roundies</a>&#8220; sehr gut und so habe ich sie mit in den Test aufgenommen.]]></description>
			<content:encoded><![CDATA[<p>In der Vergangenheit habe ich ein kleines <a href="http://bueltge.de/test/border_radius_js.php">Testscript</a> erstellt, welches einige Lösungen vergleicht, die mittels JavaScript und diverse Hilfen wie Bilder, CSS oder Libraries die Rundungen im Webdesign erleichtern sollen. Mehr Infos im zugehörigen <a href="http://bueltge.de/webdesign-rundungen-mit-javascript/511/">Beitrag</a>.</p>
<p>Aktuell gefällt mir die Lösung &#8222;<a href="http://dillerdesign.com/experiment/DD_roundies/">DD_roundies</a>&#8220; sehr gut und so habe ich sie mit in den <a href="http://bueltge.de/test/border_radius_js.php">Test</a> aufgenommen. Ich denke, dass man so einen recht schönen Vergleich ziehen kann. Sicherlich werde ich damit nicht immer auf dem aktuellen Stand sein und wollen. Aber so kann man in den unterschiedlichen Browsern vergleichen und sich eventuell für eine der Lösungen entscheiden. <span id="more-847"></span><br />
Auch gibt es noch weitere Ansätze im Netz, bisher ist mir aber keines aufgefallen, außer dem genannten DD_roundies, um die Test-Seite auszubauen.<br />
Hinweise sind gern willkommen!<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/rundungen-mit-javascript-test-erweitert/847/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/rundungen-mit-javascript-test-erweitert/847/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Web-Buchempfehlungen zu Weihnachten</title>
		<link>http://bueltge.de/web-buchempfehlungen-zu-weihnachten/841/</link>
		<comments>http://bueltge.de/web-buchempfehlungen-zu-weihnachten/841/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 12:59:38 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Literatur]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=841</guid>
		<description><![CDATA[Die Weihnachtszeit naht und noch immer nicht alle Geschenke oder gar keine Idee für einen Wunsch?
Wer sich mit dem Thema Webentwicklung beschäftigt und der einen oder anderen Person im nahen Umfeld einen Tipp geben möchte, dem gebe ich mal im folgenden in kurzen Ausführen einige Hinweise auf Literatur, die aus meiner Sicht als Empfehlenswert angesehen werden kann. Dabei möchte ich nur einige wenige Bücher nennen, die sich in irgendeiner Form mit Webentwicklung beschäftigen. Weitere <a href="http://grochtdreis.de/weblog/2008/12/02/empfehlenswerte-buecher-zu-weihnachten-teil-2/">Empfehlungen</a> finden sich bei Jens, der in mir diese Idee entzündete. ]]></description>
			<content:encoded><![CDATA[<p>Die Weihnachtszeit naht und noch immer nicht alle Geschenke oder gar keine Idee für einen Wunsch?<br />
Wer sich mit dem Thema Webentwicklung beschäftigt und der einen oder anderen Person im nahen Umfeld einen Tipp geben möchte, dem gebe ich mal im folgenden in kurzen Ausführen einige Hinweise auf Literatur, die aus meiner Sicht als Empfehlenswert angesehen werden kann. Dabei möchte ich nur einige wenige Bücher nennen, die sich in irgendeiner Form mit Webentwicklung beschäftigen. Weitere <a href="http://grochtdreis.de/weblog/2008/12/02/empfehlenswerte-buecher-zu-weihnachten-teil-2/">Empfehlungen</a> finden sich bei Jens, der in mir diese Idee entzündete.<br />
<span id="more-841"></span><br />
Wer mich kennt oder schon länger hier mit liest, der weiß wie ich Bücher schätze und dass ich relativ große Mengen davon verschlinge. Um ab und zu Platz in den Regalen zu bekommen und weil ich denke, dass gerade Bücher in dem schnelllebigen Bereich der Webtechnik, veraltet sind, verlose ich ab und dann einige dieser Exemplare. Die <a href="http://bueltge.de/10000-ad/832/">aktuelle Verlosung</a> läuft noch bis zum 10. Dezember - also Mitmachen, wenn man noch Lesestoff braucht.</p>
<p>Nun aber zu meinen Empfehlungen. Die Liste hat keine besondere Relevanz, sie entspringt in Reihenfolge keiner Wertung, nur meinem Gedächtnis. Ebenso wurde kein Buch als Rezensionsexemplar überlassen oder wurde sonst irgendwie gepuscht um hier zu erscheinen &#8211; es handelt sich also um tatsächliche Empfehlungen aus meiner Sicht, auch wenn ich das eine oder andere Buch im Halbschlaf oder diagonal gelesen habe um Zeit zu sparen.<br />
Alle integrierten Bilder sind Affiliatelinks, wer sie nicht nutzen möchte, der sollte direkt zum Handel oder Versand gehen.</p>
<ul>
<li>
<h4><a href="https://www.amazon.de/dp/3827325455?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=3827325455&#038;adid=1TXKCZRDPN29JWERVTCY&#038;">Transcending CSS - Neue kreative Spielräume im Webdesign</a></h4>
<p><a href="https://www.amazon.de/dp/3827325455?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=3827325455&#038;adid=1TXKCZRDPN29JWERVTCY&#038;"><img class="alignright" src="https://images-na.ssl-images-amazon.com/images/I/41SyiXaK%2BmL._SL160_.jpg" alt="Transcending CSS" /></a><br />
Die aktuell Auswahl zu Büchern mit dem Thema CSS sind vielfältig und das Werk von Andy Clarke ist nicht das aktuellste in diesem Sektor. Für mich stellt es aber trotzdem noch immer das beste Werk zum Thema dar. Hier wird nicht vermittelt was man wissen sollte, hier wird in klarer und verständlicher Form Hintergrundwissen übergeben. Die Leichtigkeit mit der Andy Clark die Inhalte vermittelt, begeistern. Gleichzeitig werden komplexe Verhalten verständlich dargestellt und der Leser wird nicht nur begeistert, er wird immer abgeholt. Man fühlt sich wohl &#8211; auch ohne das Buch parallel am Rechner zu lesen und die Ideen und Lösungen nachzuvollziehen. Dieses Buch vermittelt Grundlagen und Verständnis, begonnen beim Markup und nicht bei komplexen CSS-Hacks. Hier steht nicht nur die Technik im Vordergrund, sondern die Idee, das Verständnis.<br />
Gleichzeitig ist aber dieses Buch kein Nachschlagewerk, es ist &#8222;Leseliteratur&#8220; zum Thema.</li>
<li>
<h4><a href="https://www.amazon.de/dp/389721850X?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=389721850X&#038;adid=1EYVC3HVRYQJR0XSG6ZE&#038;">High Performance Websites</a></h4>
<p><a href="https://www.amazon.de/dp/389721850X?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=389721850X&#038;adid=1EYVC3HVRYQJR0XSG6ZE&#038;"><img class="alignright" src="https://images-na.ssl-images-amazon.com/images/I/411YNwGPL2L._SL160_.jpg" alt="High Performance Websites" /></a><br />
Aus meiner Sicht starten viele Websiten mit einem Design und dann werden viele Erscheinungen um das Design zu kurz und unvollständig betrachtet. Dazu gehört auch die Performance einer Website. Steve Souders zeigt in seinem Buch, dass Performance mehr als die allgegenwärtige Meinung &#8211; dass es am Backend liegt &#8211;ist. Performance von Websites ist Frontendentwicklung. Dieses Werk liest sich flüssig, trotz des Themas. Steve Souders ist es gelungen den Leser zu begeistern; man möchte am liebsten schon beim Lesen anfangen und optimieren, lernen, umsetzen. Sicher, dass Meiste war mir bekannt und nicht immer beachte ich es - manches mit Absicht. Dieses Buch kann aber auch als Arbeitsliste diene, als Ausrufezeichen auf dem Schreibtisch. </li>
<li>
<h4><a href="https://www.amazon.de/dp/3836212072?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=3836212072&#038;adid=1YT7XBZQYRMWFH02HS4C&#038;">Grundkurs Typografie und Layout</a></h4>
<p><a href="https://www.amazon.de/dp/3836212072?tag=buedebyltgde-21&#038;camp=1410&#038;creative=6378&#038;linkCode=as1&#038;creativeASIN=3836212072&#038;adid=1YT7XBZQYRMWFH02HS4C&#038;"><img class="alignright" src="https://images-na.ssl-images-amazon.com/images/I/41xX6mKfjgL._SL160_.jpg" alt="Grundkurs Typografie und Layout" /></a><br />
Ich bin &#8222;Hobbyist&#8220; zum Thema Webentwicklung und -design, Grundlagen wie Typographie habe ich nicht und somit war es mir immer ein Wunsch auch in diesem Thema mehr als Gefühl zu haben. Sicher kann man die eine oder andere Website lesen und lernen &#8211; gesammeltes Wissen in gebundener Ausgabe sind jedoch für mich unverzichtbar. Das Buch von Claudia Runk ist daher in diesem Bereich eines der Werke die ich gern empfehle. Dabei stimmen hier Preis und Leistung. Gerade im Bereich der Typographie kann man schnell viel Geld für Bücher los werden. Um so schöner, dass dieses Buch bei moderatem Preis mit umfassendem und verständlichem Wissen glänzt. Ich habe gelernt, verstanden - Bezüge zu Altagsthemen sind nun klarer. Claudia Runk gibt ebenso Hinweise für diverse Applikationen, die ich aus meiner Sicht nicht benötige, da ich ich mich vorrangig im Editor aufhalte. Trotzdem ist dieser Mehrwert nicht überflüssig und drückt die Seitenzahl unnötig in die Höhe. Basics und Mehrwert zum Theme Typographie in einem Buch - für mich ein Buch, was die Stunden des Lesens wert sind.
</li>
</ul>
<h3>Fazit und Ausblick</h3>
<p>Soweit drei Empfehlungen aus der Vielzahl an Büchern, die mir in diesem Jahr unter gekommen sind. Nochmal der Hinweis, dass es keine Wertung ist, in welcher Reihenfolge und dass nur die Drei in diesen Beitrag einfließen.<br />
Vielleicht habe ich damit aber dem einen oder anderen Leser eine Hilfe oder einen Tipp zum Lesen außerhalb des Bildschirm gegeben oder man hat eine Geschenkidee für den geneigten Interessenten.</p>
<p>In der Vergangenheit habe ich des öfteren nicht nur zum Thema Web Literaturrezensionen im Blog veröffentlicht. Zeitmangel und andere Projekte haben leider dafür gesorgt, dass die Kategorie Literatur schon lange kein Update mehr bekommen hat. Eventuell finde ich im neuen Jahr wieder dazu.</p>
<p>Auch hier wieder der Hinweis, dass man die Kommentarfunktion gern nutzen kann und soll - auch ich mag Empfehlungen oder Kritik zu Büchern.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/web-buchempfehlungen-zu-weihnachten/841/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/web-buchempfehlungen-zu-weihnachten/841/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://bueltge.de//images-na.ssl-images-amazon.com/images/I/41SyiXaK%2BmL._SL160_.jpg" />
		<media:content url="http://bueltge.de//images-na.ssl-images-amazon.com/images/I/41SyiXaK%2BmL._SL160_.jpg" medium="image">
			<media:title type="html">Transcending CSS</media:title>
		</media:content>
		<media:content url="http://bueltge.de//images-na.ssl-images-amazon.com/images/I/411YNwGPL2L._SL160_.jpg" medium="image">
			<media:title type="html">High Performance Websites</media:title>
		</media:content>
		<media:content url="http://bueltge.de//images-na.ssl-images-amazon.com/images/I/41xX6mKfjgL._SL160_.jpg" medium="image">
			<media:title type="html">Grundkurs Typografie und Layout</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Translate aussperren</title>
		<link>http://bueltge.de/google-translate-aussperren/796/</link>
		<comments>http://bueltge.de/google-translate-aussperren/796/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 08:20:54 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Webküche]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=796</guid>
		<description><![CDATA[Der Service von Google um Webseiten zu übersetzen hat sich bei den Anwendern etabliert. Nicht immer ist das Ergebnis so, wie man es sich als Websiten-Betreiber vorstellt. Damit meine ich nicht, wie gut oder wie schlecht dir Qualität der Übersetzung ist. Aber es gibt und wird immer Bereiche einer Website geben, die will oder sollte [...]]]></description>
			<content:encoded><![CDATA[<p>Der Service von Google um Webseiten zu übersetzen hat sich bei den Anwendern etabliert. Nicht immer ist das Ergebnis so, wie man es sich als Websiten-Betreiber vorstellt. Damit meine ich nicht, wie gut oder wie schlecht dir Qualität der Übersetzung ist.</p>
<p>Aber es gibt und wird immer Bereiche einer Website geben, die will oder sollte man nicht übersetzen lassen. Sie ergeben schlichtweg dann keinen Sinn mehr - ich denke da im einfachsten Fall an die E-Mail-Adresse im Impressum. Wozu sollte der Service diesen Inhalt übersetzen. Oft ist es gar so, dass der Anwender des Übersetzungsservice dieses Problem nicht mal erkennt und seine eventuell Kontaktaufnahme im Nirvana landet.</p>
<p>Google scheint sich diesem Problem bewusst und wir als Websiten-Betreiber oder auch die Webdesigner haben die Möglichkeit Inhalte beim Service <a href="http://translate.google.com/">Translate</a> auszuschließen. Damit ist das Problem vorerst nur verschoben und in die Verantwortung der Betreiber gelegt, aber es offeriert eine Option, die für Webworker recht nützlich erscheint. Wie das geht, das ist schnell erklärt.<br />
<span id="more-796"></span></p>
<h4>Kompletten Seite ausschließen</h4>
<p>Um den Inhalt einer kompletten Seite vor Translate zu schützen genügt die Verwendung eines Meta-Tag. Dieser wird dem <code>head</code>-Bereich zugefügt.</p>
<pre><code>
<meta name="google" value="notranslate" />
</code></pre>
<h4>Einzelne Bereiche</h4>
<p>Um nur einen Abschnitt, oder ein Wort vor der Übersetzung zu schützen, genügt die Verwendung der Klasse <code>notranslate</code>. Diese kann also bestehende Klassen erweitern oder dem entsprechenden Tag zugeordnet werden.</p>
<pre><code>
<div class="vcard notranslate">
</code></pre>
<p>Um nur ein Wort auszuschließen oder einen Bereich, welches nicht direkt einem Tag zugeordnet ist, kann der span-Tag verwendet werden.</p>
<pre><code>
<span class="notranslate">examble@mail.de</span>
</code></pre>
<h3>Weitere Hinweise</h3>
<p>Weitere Hinweise zum Service sind im <a href="http://googlewebmastercentral.blogspot.com/2008/10/helping-you-break-language-barrier.html">Webmaster Central Blog von Google</a> nachzulesen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/google-translate-aussperren/796/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/google-translate-aussperren/796/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>iGoogle Gadget für dein Blog</title>
		<link>http://bueltge.de/igoogle-gadget-fuer-dein-blog/772/</link>
		<comments>http://bueltge.de/igoogle-gadget-fuer-dein-blog/772/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 21:55:49 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Suche]]></category>
		<category><![CDATA[Suchemaschine]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=772</guid>
		<description><![CDATA[Seit dem meine Frau mit eigenem Rechner unterwegs und das Internet und die damit verbundenen Möglichkeiten erkundet, kommen mir die unterschiedlichsten Fragen und Tools unter, so auch iGoogle. Das Experimentieren damit macht scheinbar den Laien glücklich und man hat eine angepasste Seite, die recht leicht zu konfigurieren ist.
In diesem Zusammenhang kam mir die Idee, doch mein Blog als Gadget für iGoogle anzubieten. Wer das auch möchte, der kann nun hier ein kleines Tutorial nutzen und muss sich nicht durch die <a href="http://www.google.com/intl/de/apis/gadgets/publish.html">Dokumentation</a> von Google arbeiten.]]></description>
			<content:encoded><![CDATA[<p><a href="http://fusion.google.com/add?source=atgs&#038;moduleurl=http%3A//bueltge.de/igoogle/bueltge.xml"><img src="http://gmodules.com/ig/images/plus_google.gif" border="0" alt="Add to Google" class="alignrightob"></a><br />
Seit dem meine Frau mit eigenem Rechner unterwegs und das Internet und die damit verbundenen Möglichkeiten erkundet, kommen mir die unterschiedlichsten Fragen und Tools unter, so auch iGoogle. Das Experimentieren damit macht scheinbar den Laien glücklich und man hat eine angepasste Seite, die recht leicht zu konfigurieren ist.<br />
In diesem Zusammenhang kam mir die Idee, doch mein Blog als Gadget für iGoogle anzubieten. Wer das auch möchte, der kann nun hier ein kleines Tutorial nutzen und muss sich nicht durch die <a href="http://www.google.com/intl/de/apis/gadgets/publish.html">Dokumentation</a> von Google arbeiten.<br />
<span id="more-772"></span><br />
<img class="alignright" src="http://bueltge.de/wp-content/images/igoogle/bueltge_igoogle.png" alt="iGoogle Gadget" /><br />
Ein iGoogle Gadget lässt sich recht einfach erstellen. Kenntnisse in HTML und CSS sollten aber vorliegen, denn das Gadget verweist quasi nur auf eine Seite. Da WordPress im Standard eine Suche anbietet, habe ich das Gadget so gestaltet, dass man aus iGoogle dann auf meinem Blog suchen kann. Ähnliches hatte ich mal für die <a href="http://bueltge.de/opensearch-suchfeld-fuer-mozilla-und-internet-explorer-mit-wordpress-anbieten/410/">Suche in Firefox und Internet Explorer erklärt</a>. Nun haben wir also eine weitere Quelle, aus der Nutzer suchen können. Die Gadgets kann man für jede Seite erstellen, die hier vorgestellte Suche greift auf einen WordPress-Blog, allerdings geht es auch mit jeder anderen Suche auf einer Website, wenn man den Namen des Suchfeldes kennt.</p>
<h3>Vorbereitungen iGoogle Gadget</h3>
<p>Wie schon erwähnt ist das Gadet nur ein Verweis auf eine Seite, sozusagen ein Frame, der die die Website zeigt. Daher muss eine Seite angelegt werden, auf die dann via einem XML verwiesen wird. Im der XML-Datei stehen dann die Daten, die Google benötigt.</p>
<p>Dazu habe ich einen eigenen Ordner angelegt, in dem die Daten für das Gadget für Google verfügbar sind - <a href="http://bueltge.de/igoogle/">igoogle</a>. In eurem Ordner erstellt ihr quasi eine statische Seite mit der Suche.</p>
<pre><code>
&lt;form id=&quot;search&quot; action=&quot;http://bueltge.de/&quot; target=&quot;_top&quot; method=&quot;get&quot;&gt;
	&lt;p&gt;
		&lt;input name=&quot;s&quot; id=&quot;s&quot; size=&quot;15&quot; value=&quot;suche ...&quot; onfocus=&quot;if(this.value=='suche ...')this.value=''&quot; onblur=&quot;if(this.value=='')this.value='search...'&quot; type=&quot;text&quot; /&gt;
		&lt;input type=&quot;submit&quot; id=&quot;submit&quot; value=&quot;Search&quot; class=&quot;hide&quot; /&gt;
	&lt;/p&gt;
&lt;/form&gt;
</code></pre>
<p>Die Suche habe ich mit JavaScript versehen, so wird das Suchfeld ein wenig attraktiver. Das Form bekommt zum Attribut <code>action</code> die Adresse des Blog und das <code>input</code>-Feld muss den Namen <code>s</code> haben, da darauf WordPress dann die Suche ansteuert. Wichtig ist noch die Angabe des Attributes <code>target="_top"</code>, da sonst die Suche im Fenster des Gadget statt findet.</p>
<p>Damit sieht meine <code>index.php</code> nun wie folgt aus. Prinzipiell reicht natürlich eine einfache html-Seite, dabei sind eurer Fantasie kein Grenzen gesetzt. Beachtet aber, dass das Gadget je nach Auflösung sehr klein ausfallen kann.</p>
<pre><code>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;

&lt;head&gt;
	&lt;title&gt;bueltge.de [by:ltge.de] &amp;middot; iGoogle Gadget&lt;/title&gt;
	
	&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
	&lt;meta name=&quot;robots&quot; content=&quot;ALL&quot; /&gt;
	&lt;meta name=&quot;description&quot; content=&quot;Suche auf bueltge.de through iGoogle&quot; /&gt;
	&lt;meta name=&quot;author&quot; content=&quot;Frank Bueltge&quot; /&gt;
	&lt;meta name=&quot;reply-to&quot; content=&quot;frank@bueltge.de&quot; /&gt;
	
	&lt;link rel=&quot;shortcut icon&quot; href=&quot;../favicon.ico&quot; /&gt;
	
	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot; media=&quot;screen&quot;/&gt;
&lt;/head&gt;

&lt;body&gt;

	&lt;div id=&quot;header&quot;&gt;
		&lt;h1&gt;&lt;a href=&quot;http://bueltge.de/&quot; title=&quot;bueltge.de [by:ltge.de]&quot; target=&quot;_top&quot;&gt;bueltge.de&lt;/a&gt;&lt;/h1&gt;

		&lt;form id=&quot;search&quot; action=&quot;http://bueltge.de/&quot; target=&quot;_top&quot; method=&quot;get&quot;&gt;
			&lt;p&gt;
				&lt;input name=&quot;s&quot; id=&quot;s&quot; size=&quot;15&quot; value=&quot;suche ...&quot; onfocus=&quot;if(this.value=='suche ...')this.value=''&quot; onblur=&quot;if(this.value=='')this.value='search...'&quot; type=&quot;text&quot; /&gt;
				&lt;input type=&quot;submit&quot; id=&quot;submit&quot; value=&quot;Search&quot; class=&quot;hide&quot; /&gt;
			&lt;/p&gt;
		&lt;/form&gt;
	&lt;/div&gt;


	&lt;div id=&quot;footer&quot;&gt;
		&lt;p&gt;&amp;copy; &lt;a href=&quot;http://bueltge.de/&quot; title=&quot;bueltge.de [by:ltge.de]&quot; target=&quot;_top&quot;&gt;bueltge.de [by:ltge.de]&lt;/a&gt; mit iGoogle&amp;trade; Gadget &amp;lt;?php echo date('Y'); ?&amp;gt;&lt;/p&gt;
	&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>Dazu gestaltet ihr eurer CSS und form die Such-Seite nach eurem Können und Geschmack, dabei nicht vergessen, ein Gadget kann sehr klein sein!</p>
<h3>Gadget XML Struktur</h3>
<p>Um nun Google vom Gadget zu überzeugen, muss ein XML in Verzeichnis abgelegt werden, welches näher Informationen für Google parat hält.<br />
Dazu lege ich ein Beispiel ab, welches ihr nur anpassen müsst. Die Werte ändern und hoch laden, fertig.</p>
<pre><code>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&lt;Module&gt;
&lt;ModulePrefs
title=&quot;bueltge.de [by:ltge.de] Search&quot;
height=&quot;200&quot;
width=&quot;400&quot;
author=&quot;Frank Bueltge&quot;
author_email=&quot;frank@bueltge.de&quot;
description=&quot;bueltge.de [by:ltge.de] Search&quot;
thumbnail=&quot;http://bueltge.de/igoogle/images/logo.gif&quot;
screenshot=&quot;http://bueltge.de/igoogle/images/screenshot.jpg&quot;
author_location=&quot;DE&quot;
title_url=&quot;http://bueltge.de/igoogle/&quot;
/&gt;
&lt;Content type=&quot;url&quot; href=&quot;http://bueltge.de/igoogle/index.php&quot;&gt;&lt;/Content&gt;
&lt;/Module&gt;
</code></pre>
<p>Aus dieser Strukur werden dann auch die Daten für das Aktivieren des Gadget erstellt, wie wie im folgenden Screenshot.<br />
<a href="http://www.google.com/ig/adde?source=atgs&#038;moduleurl=bueltge.de/igoogle/bueltge.xml"><img class="centered" src="http://bueltge.de/wp-content/images/igoogle/addbueltge_igoogle.png" alt="Add iGoogle Gadget" /></a></p>
<h3>Gadget veröffentlichen</h3>
<p>Um das Gadget nun anderen Nutzern bereit zu stellen, gibt es einen <a href="http://www.google.com/ig/submit?hl=de">Service</a>, dem lediglich die URL mitgeteilt werden muss. Bei diesem <a href="http://www.google.com/ig/submit?hl=de">Service</a> tragt ihr nun die Adresse zum XML ein.</p>
<p>Damit ist euer Gadget fertig und ihr könnt es allen Bekannten und Verwandten mitteilen, wie das geht erzählt euch Google gleich im Anschluss der Anmeldung. Ebenso können so einfache Gadgets für Webseiten erstellt werden, auch dazu sind die Links bei der Anmeldung zu finden, oder ihr nutze die <a href="http://www.google.com/intl/de/apis/gadgets/publish.html">Dokumentation der API</a>.</p>
<h3>iGoogle Gadget und das iPhone</h3>
<p>Da man bekanntermaßen mit dem iPhone recht passabel im Web unterwegs sein kann, ist natürlich auch die Verwendung von iGoogle auf diesem Gerät denkbar. Dass das auch genutzt wird, oder zumindest zum Spielen anregt zeigt mir <a href="http://howisworld.de">Howi</a>, der mein Gadget nun auf seiner Seite hat und mich durchsucht.<br />
<img class="centered" src="http://bueltge.de/wp-content/images/igoogle/iphone_igooglegadget.jpg" alt="mein iGoogle Gadget auf dem iPhone" /><br />
Vielen Dank an <a href="http://howisworld.de">Howi</a> für den Screenshot!<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/igoogle-gadget-fuer-dein-blog/772/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/igoogle-gadget-fuer-dein-blog/772/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:thumbnail url="http://gmodules.com/ig/images/plus_google.gif" />
		<media:content url="http://gmodules.com/ig/images/plus_google.gif" medium="image">
			<media:title type="html">Add to Google</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/igoogle/bueltge_igoogle.png" medium="image">
			<media:title type="html">iGoogle Gadget</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/igoogle/addbueltge_igoogle.png" medium="image">
			<media:title type="html">Add iGoogle Gadget</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/igoogle/iphone_igooglegadget.jpg" medium="image">
			<media:title type="html">mein iGoogle Gadget auf dem iPhone</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Pacman</title>
		<link>http://bueltge.de/pacman/765/</link>
		<comments>http://bueltge.de/pacman/765/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 09:59:19 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Zocken]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=765</guid>
		<description><![CDATA[Seit ich an Bit und Bytes denken kann, kenne ich das Spiel Pacman; auf den unterschiedlichsten Plattformen bis zum berühmten Automaten, überall ist Pacman ein Begriff und verfügbar. Nun gibt es eine Portierung in JavaScript, womit man es im Browser spielen kann, schnell verfügbar und zwischendurch eine Entspannung wert - Pacman. Die Aufgabe des Spiels [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://bueltge.de/wp-content/images/pacman.png" alt="Pacman Screenshot" /><br />
Seit ich an Bit und Bytes denken kann, kenne ich das Spiel Pacman; auf den unterschiedlichsten Plattformen bis zum berühmten Automaten, überall ist Pacman ein Begriff und verfügbar.<br />
Nun gibt es eine Portierung in JavaScript, womit man es im Browser spielen kann, schnell verfügbar und zwischendurch eine Entspannung wert - <a href="http://www.digitalinsane.com/api/yahoo/pacman/">Pacman</a>.<br />
Die Aufgabe des Spiels passt ja quasi zum Alltag des Lebens: Fressen und gefressen werden.</p>
<blockquote><p>Pac-Man ist ein Arcade Game und Videospiel, das am 12. Mai 1980 von Namco in Japan als „Puck Man“ veröffentlicht wurde. Der Name leitet sich von der japanischen Lautmalerei paku paku für „essen“ (vergleichbar etwa mit „happa-happa“ im Deutschen) und der Puck-förmigen Gestalt der Hauptfigur her; zudem bedeutet puck auf Englisch auch „Kobold“.<br />
<cite><a href="http://de.wikipedia.org/wiki/Pacman">Wikipedia</a></cite></p></blockquote>
<p><a href="http://www.digitalinsane.com/api/yahoo/pacman/">Pacman</a> spielen</p>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/pacman/765/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/pacman/765/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/pacman.png" />
		<media:content url="http://bueltge.de/wp-content/images/pacman.png" medium="image">
			<media:title type="html">Pacman Screenshot</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
	</channel>
</rss>

