<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Matu´s Blog - Webprogrammierung und jede Menge Tipps &amp; Tricks</title>
	
	<link>http://einmal-am-tag.de</link>
	<description>Das Weblog zum Thema Webprogrammierung &amp; Design:(X)HTML und CSS, PHP, mySQL, CMS u.v.m.</description>
	<lastBuildDate>Wed, 19 Aug 2009 17:45:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Schöne Webseiten!</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/elk5ENCnEEI/</link>
		<comments>http://einmal-am-tag.de/2009-07/schoene-webseiten/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 21:04:38 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1622</guid>
		<description><![CDATA[

Ich bin immer auf der Suche nach schönen Webseiten, die mich inspirieren (&#8230; dabei aber auch funktionieren). An dieser Stelle möchte ich gerne nach und nach eine Sammlung aufbauen. Selbstverständlich werden Vorschläge gerne entgegen genommen.

ashesandsnow ist eine auf Flash basierende eindrucksvolle Webseite. Möglichst die linke Auswahl treffen (Enhanced), etwas Zeit mitbringen, den Menü-Punkt &#8216;Vision&#8217; nicht [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Ich bin immer auf der Suche nach <strong>schönen Webseiten</strong>, die mich inspirieren (&#8230; dabei aber auch funktionieren). An dieser Stelle möchte ich gerne nach und nach eine Sammlung aufbauen. Selbstverständlich werden Vorschläge gerne entgegen genommen.</p>
<ul>
<li><a href="http://www.ashesandsnow.org/" title="Webseite ashesandsnow">ashesandsnow</a> ist eine auf Flash basierende eindrucksvolle Webseite. Möglichst die linke Auswahl treffen (Enhanced), etwas Zeit mitbringen, den Menü-Punkt &#8216;Vision&#8217; nicht vergessen und den Ton einschalten &#8230; einfach schön!</li>
<li>Die Seite von <a href="http://www.paul-kroening.de/" title="Website paul kroening">paul kroening</a> wurde anscheinend schon länger nicht mehr bearbeitet. Optisch jedoch eine klein aber fein gestaltete Webseite.</li>
<li><a href="http://flowingtide.de/" title="Webseite flowingtide">flowingtide</a> war eine der ersten Seiten, die mir positiv aufgefallen war.</li>
</ul>
<p>&#8230; weitere folgen &#8230;</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/elk5ENCnEEI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-07/schoene-webseiten/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-07/schoene-webseiten/</feedburner:origLink></item>
		<item>
		<title>WordPress memory_limit erhöhen</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/2toxuP9eMFs/</link>
		<comments>http://einmal-am-tag.de/2009-06/wordpress-memory-limit-erhoehen/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 01:12:20 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[memory_limit]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[Webserver]]></category>
		<category><![CDATA[WP_MEMORY_LIMIT]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1501</guid>
		<description><![CDATA[

In den letzten Tagen nach Erscheinen der neuen WordPress-Version häuften sich in den Blogs die Artikel zum Thema Speichererhöhung in Verbindung mit der Fehlermeldung 
Fatal error: Allowed memory size of &#8230; bytes exhausted &#8230; 
WordPress Deutschland hat dazu am 16. Juni 2009 eine gute Erklärung in den FAQ veröffentlicht. Besonders der Trick mit der Sprachdatei [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>In den letzten Tagen nach Erscheinen der neuen WordPress-Version häuften sich in den Blogs die Artikel zum Thema Speichererhöhung in Verbindung mit der Fehlermeldung </p>
<blockquote><p><strong>Fatal error: Allowed memory size of &#8230; bytes exhausted &#8230; </strong></p></blockquote>
<p>WordPress Deutschland hat dazu am 16. Juni 2009 eine gute Erklärung in den <a href='http://faq.wordpress-deutschland.org/exhausted-php-memory/' title='WordPress-Speicher erhöhen'><acronym title='frequently asked questions/häufig gestellte Fragen'>FAQ</acronym></a> veröffentlicht. Besonders der Trick mit der Sprachdatei ist interessant (senkt bei mir den Speicherverbrauch um 13%).<br />
Am gleichen Tag wurde dazu ebenfalls ein kleiner Beitrag auf <a href='http://bueltge.de/mehr-speicher-fuer-wordpress/957/' title='Mehr Speicher für WordPress'>bueltge.de</a> veröffentlicht.<br />
Beide weisen auf das Plugin „WP-Memory-Usage“ von Alex Rabe hin, das </p>
<ul>
<li>die Version</li>
<li>den verfübaren Speicher</li>
<li>sowie den aktuellen Speicherbedarf der WordPress-Installation</li>
</ul>
<p> anzeigt.<br />
Dieses Plugin ermittelt mit den PHP-Funktionen <a href='http://us2.php.net/manual/en/function.memory-get-usage.php' title='PHP-Funktion memory_get_usage'><em>memory_get_usage()</em></a> den aktuellen Speicherverbrauch und mit <a href='http://us2.php.net/manual/en/function.ini-get.php' title='Funktion ini_get'><em>ini_get(&#8217;memory_limit&#8217;)</em></a> die Lokal zugewiesene Speichergröße. </p>
<p>An dieser Stelle möchte ich Ihnen gerne einen tieferen Einblick in die Materie bieten. <span id="more-1501"></span></p>
<p>Der Arbeitspeicher (memory_limit) für die einzelnen Hosts auf dem Webserver wird an 2 Stellen festgelegt. Die erste allumfassende Einstellung erfolgt durch den Webhoster in der <strong><em>php.ini</em></strong>.<br />
In dieser wichtigen Konfigurationsdatei sind sämtliche Einstellungen für den PHP-Server hinterlegt. Verständlicherweise unterbinden Web-Hoster den Zugriff auf diese Datei, da sich viele Benutzer einen Server teilen. Mietet man sich einen sogenannten Root-Server sieht das natürlich anders aus.<br />
Dort wird (unter vielen anderen Einstellungen) der <strong><em>memory_limit</em></strong> eingestellt, welcher dann als sogenannter <strong><em>master value</em></strong> für den gesamten Server und den darauf befindlichen einzelnen Hosts die maximal zur Verfügung stehende Speichergröße für PHP-Scripte vorgibt.</p>
<p>Dieser Wert bzw. die gesamte <strong><em>php.ini</em></strong> kann mit der PHP-Funktion <strong><em>phpinfo()</em></strong> ausgelesen werden. Wenn Sie das gerne machen möchten, dann führen Sie folgende Schritte aus:</p>
<ul>
<li>Legen Sie im Backend-Bereich von Wordpress eine neue Seite mit dem Titel <strong><em>Backend</em></strong> und einem kurzen Text an</li>
<li>Stellen Sie die Sichtbarkeit rechts oben in der &#8220;Veröffentlichen-Box&#8221; auf Privat (dadurch kann die Seite erstens nur von Ihnen und zweitens nur wenn Sie <strong>eingeloggt</strong> sind aufgerufen werden. Die php.ini sollte aus Sicherheitsgründen nur von Ihnen einsehbar sein)</li>
<li>
Fügen Sie nach dem Speichern der Seite folgendes in die <strong><em>page.php</em></strong> unterhalb des &#8220;Loop&#8221; Ihres Theme-Ordners ein:</p>
<pre>
<span style='color:#aaa'> /* .../wp-content/themes/ihr_theme/page.php */</span>
&lt;?php
if(is_page('backend')){
phpinfo();
}
?&gt;
<span style='color:#aaa'> /* Speichern nicht vergessen!
Anmerkung: Anstatt die page.php zu verändern,
kann diese auch kopiert und umbenannt werden
(backend.php).
Diese kann dann als Template beim Neuanlegen
der Seite ausgewählt werden.
Dadurch halten Sie die page.php "sauber"
und können in Zukunft noch weitere php-Scripte
einfügen ...*/</span>
</pre>
</li>
<li>
Rufen Sie nun die zuvor angelegte Seite auf, in dem Sie deren Permalink (z.B. http://ihre_domain/backend) in die Adresszeile Ihres Browser eingeben. Dazu müssen Sie sich wie schon erwähnt vorher eingeloggt haben (der Browser speichert das als Cookie ab).
</li>
</ul>
<p>Nun sollte die Seite mit der gesamten php.ini angezeigt werden. Suchen Sie dort (STRG+F) nach <strong><em>memory_limit</em></strong>. Es werden 3 Spalten angezeigt:</p>
<ul>
<li>Directive &#8211;> gibt den Namen an</li>
<li>Local Value &#8211;> gibt den lokal verfügbaren maximalen Speicher an (&#8230; der Ihrer WordPress-Installation in Ihrem Host-Verzeichnis zur Verfügung steht)</li>
<li>Master Value &#8211;> gibt den durch Ihren Webhoster freigegebenen bzw. vorgegebenen maximalen Speicher an (dieser Wert gildet auf dem gesamten Server für alle Hosts)</li>
</ul>
<p>Somit wären wir auch schon bei der zweiten Einstellungsmöglichkeit, dem <em>local value</em>. Local value &#8230; master value? Etwas verwirrend, oder?! Ging mir zuerst genauso. Vor allem das Zusammenspiel bzw. die Abhängigkeit brachte mich etwas ins Grübeln. </p>
<p>Wenn der Webhoster das maximale Speicherlimit für alle Hosts auf dem Server schon durch den <strong><em>master value</em></strong> in der <strong><em>php.ini</em></strong> festgelegt hat (auf die ich keinen Zugriff habe), kann ich diesen Wert etwa Lokal in meinem eigenen Verzeichnis hochschrauben und mir so mehr Speicher zuschieben, als alle anderen zur Verfügung haben?</p>
<p><strong><em>Richtig, genau so ist es!</em></strong></p>
<p>Aber nür, wenn der Webhoster das auch zuläßt.<br />
Dazu gibt es verschiedene Möglichkeiten. Eine wäre, in der <strong><em>wp-config.php</em></strong> die globale Variable <strong><em>WP_MEMORY_LIMIT</em></strong> neu zu setzen und ihr einen Wert zuzuweisen, der höher liegt als die Grundeinstellung von 32 MB (definiert in der <strong><em>wp-settings.php</em></strong>).</p>
<pre>
&lt;?php
...
define('WP_MEMORY_LIMIT', '64M');
...
?&gt;
</pre>
<p>Wobei die 65 MB nur ein Beispiel sind, ich konnte den Wert bei mir auch höher schrauben, &#8230;</p>
<p><img src="http://einmal-am-tag.de/wp-content/uploads/2009/06/memory_limit1.jpg" alt="Memory Limit1 in WordPress memory_limit erhöhen" width="645" height="49" /></p>
<p> &#8230; was mich etwas stutzig machte. Also habe ich mal bei meinem Webhoster nachgefragt und bekam folgende Antwort, die ich nur in Auszügen veröffentliche:</p>
<blockquote><p>
Hallo,</p>
<p>erst einmal möchte ich Ihnen mitteilen, dass ich bisher sehr zufrieden bin.<br />
Und nun eine kleine Frage:<br />
Ist es von Ihnen gewollt, dass der &#8216;memory_limit&#8217; in der &#8216;php.ini&#8217; lokal per htaccess oder ini_set() überschrieben werden kann?</p>
<p>Gruß<br />
Jörg Mathuszczyk
</p></blockquote>
<p>Darauf kam folgende Antwort:</p>
<blockquote><p>
Hallo Herr Mathuszczyk,</p>
<p>vielen Dank für Ihre Anfrage.</p>
<p>Dies ist gewollt, da einige Scripte dies benötigen. Wenn sich dadurch jedoch feststellt, das besagter Kunde damit den Server überlastet müssen wir einschreiten.</p>
<p>Bei weiteren Fragen stehen wir Ihnen gern zur Verfügung.</p>
<p>&#8230;
</p></blockquote>
<p>An dieser Stelle noch mal vielen Dank an den Support für die (sehr) schnelle Antwort.</p>
<p>Kommen wir nun zu einer weiteren Möglichkeit, den <em><strong>memory_limit</em></strong> hochzusetzen.<br />
Dazu benutzen wir die PHP-Funktion <a href='http://www.php.net/manual/de/function.ini-set.php' title='PHP-Funktion ini_set'><em><strong>ini_set()</em></strong></a> und fügen diese an Stelle der zuvor genannten <em>WP_MEMORY_LIMIT</em> in die <em>wp-config.php</em> ein. </p>
<pre>
&lt;?php
...
ini_set('memory_limit', '65M');
...
?&gt;
</pre>
<p>Auch dies funktionierte bei mir ohne Probleme. Ist auch logisch, denn beim Setzen von <em>WP_MEMORY_LIMIT</em> wird haargenau die gleiche Funktion benutzt, um den <em>memory_limit</em> festzulegen. Dies geschieht per Zuweisung in der <em>wp-settings.php</em>.</p>
<pre>
&lt;?php
/**
 * Used to setup and fix common variables and include
 * the WordPress procedural and class library.
 *
 * You should not have to change this file and allows
 * for some configuration in wp-config.php.
 *
 * @package WordPress
 */

if ( !defined('WP_MEMORY_LIMIT') )
	define('WP_MEMORY_LIMIT', '32M');

if ( function_exists('memory_get_usage') &#038;&#038; ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
	<span style='color:red'>@ini_set('memory_limit', WP_MEMORY_LIMIT);</span>

 ...
</pre>
<p>Eine dritte Möglichkeit ermöglicht das Speicherlimit in der <strong><em>.htacces</em></strong>-Datei festzulegen, indem dort folgendes eingefügt wird:</p>
<pre>
<span style='color:red'>php_value memory_limit 65M</span>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
...
</pre>
<p>Dieser Weg war bei mir ebenfalls möglich, muss aber wiederum durch  den jeweiligen Webhoster zugelassen werden.</p>
<p>Auch wenn es verlockend klingt, den Wert gleich um ein vielfaches hochzusetzen, rate ich davon dringend ab. Ein schlecht programmiertes oder fehlerhaftes Script (Plugin, &#8230;) könnte so den gesamten zur Verfügung stehenden Arbeitsspeicher &#8220;in Beschlag nehmen&#8221;, was den gesamten Server beinträchtigen würde. Aus diesem Grund empfehle ich einen eher kleinen Wert mit etwas Spielraum nach oben (65 MB sollten bei einem WordPress-Blog dicke ausreichen).<br />
Ansonsten würde ich nach Plugins Ausschau halten, die &#8220;mächtig Hunger haben&#8221;. Eine schnelle Senkung kann durch die oben bereits angesprochene Deaktivierung der deutschen Sprachdatei in der <em>wp-config.php</em> erzielt werden.</p>
<pre>
define ('WPLANG', 'de_DE');
<span style='color:#aaa'> /* hier 'de_DE' entfernen */</span>
define ('WPLANG', '');
</pre>
<p>Durch diese Maßnahme wird das Backend von WordPress zwar wieder in Englisch angezeigt (Grundeinstellung), senkt aber den Ressourcenverbrauch um einiges. Wenn Sie nicht erst seit kurzem mit WordPress arbeiten, sollte das nicht weiter stören.</p>
<p>Bietet Ihr Webhoster von Haus aus nur wenig Arbeitspeicher und das Limit kann auch nicht lokal durch die genannten Maßnahmen erhöht werden, wäre ein Wechsel anzuraten. Dadurch treten auch in Zukunft solche Probleme gar nicht erst auf.</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/2toxuP9eMFs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/wordpress-memory-limit-erhoehen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/wordpress-memory-limit-erhoehen/</feedburner:origLink></item>
		<item>
		<title>WordPress Kommentare mit Smileys</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/bQwJc4y9lfs/</link>
		<comments>http://einmal-am-tag.de/2009-06/wordpress-kommentare-mit-smileys/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 19:59:51 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[Smileys]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1458</guid>
		<description><![CDATA[

Auf vielen Blocks befindet sich im Kommentarbereich eine Zeile mit Smileys. 
 &#8230;
Durch Anklicken können diese dann schnell und einfach in einen Kommentar eingebunden werden. So etwas wollte ich meinen Besuchern natürlich auch bieten und habe für Euch etwas recherchiert. Folgender Javascript-Block, den ich noch XHTML-Strict validiert habe, muss in Eurer comments.php unter (oder über) [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Auf vielen Blocks befindet sich im Kommentarbereich eine Zeile mit <strong>Smileys</strong>. </p>
<p><img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_wink.gif" alt="Icon Wink in WordPress Kommentare mit Smileys" class="wp-smiley"  /><img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_neutral.gif" alt="Icon Neutral in WordPress Kommentare mit Smileys" class="wp-smiley"  /><img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_mad.gif" alt="Icon Mad in WordPress Kommentare mit Smileys" class="wp-smiley"  /> &#8230;</p>
<p>Durch Anklicken können diese dann schnell und einfach in einen Kommentar eingebunden werden. So etwas wollte ich meinen Besuchern natürlich auch bieten und habe für Euch etwas recherchiert. Folgender Javascript-Block, den ich noch XHTML-Strict validiert habe, muss in Eurer <em>comments.php</em> unter (oder über) der &lt;textarea&gt;&lt;/textarea&gt; eingefügt werden.<span id="more-1458"></span></p>
<pre>
&lt;div class="smileys"&gt;
  &lt;script type="text/javascript"&gt;
  /*&lt;![CDATA[*/
    function SJB_appendSmiley(text) {
        var comment=document.getElementById('comment');
        comment.value=comment.value+' '+text;
    }

document.write('&lt;a href="javascript:SJB_appendSmiley(\':wink:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_wink.gif" alt=":wink:" class="wp-smiley" title=":wink:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-|\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_neutral.gif" alt=":-|" class="wp-smiley" title=":-|" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-x\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_mad.gif" alt=":-x" class="wp-smiley" title=":-x" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':twisted:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_twisted.gif" alt=":twisted:" class="wp-smiley" title=":twisted:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':)\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" title=":)" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\'8-O\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_eek.gif" alt="8-O" class="wp-smiley" title="8-O" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':(\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" title=":(" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':roll:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_rolleyes.gif" alt=":roll:" class="wp-smiley" title=":roll:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-P\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_razz.gif" alt=":-P" class="wp-smiley" title=":-P" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':oops:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_redface.gif" alt=":oops:" class="wp-smiley" title=":oops:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-o\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_surprised.gif" alt=":-o" class="wp-smiley" title=":-o" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':mrgreen:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" class="wp-smiley" title=":mrgreen:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':lol:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_lol.gif" alt=":lol:" class="wp-smiley" title=":lol:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':idea:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_idea.gif" alt=":idea:" class="wp-smiley" title=":idea:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-D\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_biggrin.gif" alt=":-D" class="wp-smiley" title=":-D" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':evil:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_evil.gif" alt=":evil:" class="wp-smiley" title=":evil:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':cry:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_cry.gif" alt=":cry:" class="wp-smiley" title=":cry:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\'8)\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_cool.gif" alt="8)" class="wp-smiley" title="8)" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':arrow:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_arrow.gif" alt=":arrow:" class="wp-smiley" title=":arrow:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-?\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_confused.gif" alt=":-?" class="wp-smiley" title=":-?" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':?:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_question.gif" alt=":?:" class="wp-smiley" title=":?:" /&gt;');
document.write('&lt;/a&gt; ');
document.write('&lt;a href="javascript:SJB_appendSmiley(\':!:\')"&gt;');
document.write('&lt;img src="http://einmal-am-tag.de/wp-includes/images/smilies/icon_exclaim.gif" alt=":!:" class="wp-smiley" title=":!:" /&gt;');
document.write('&lt;/a&gt; ');
/*]]&gt;*/
&lt;/script&gt;

&lt;noscript&gt;&lt;p&gt;Wenn du Javascript aktiviert h&auml;ttest, w&uuml;rden hier klickbare Smileys stehen &lt;br /&gt; You could see clickable smiley faces here if you had JavaScript activated.&lt;/p&gt;&lt;/noscript&gt;&lt;/div&gt;
</pre>
<p>Über das <em>div</em> mit der Klassenbezeichnung (class=&#8221;smileys&#8221;) könnt Ihr die Zeile in Eurem Stylesheet positionieren (falls gewünscht). </p>
<p>Der Pfad zu jedem einzelnen Smiley-Bild muss noch durch Eure eigene Domain ersetzt werden.</p>
<pre>
document.write('&lt;img src="http://<span style='color:red;'>deine_domain</span>/wp-includes/images/smilies/icon_exclaim.gif" alt=":!:" class="wp-smiley" title=":!:" /&gt;');
</pre>
<p>Wenn Ihr das nicht händig machen wollt, empfiehlt sich die Bearbeitung in einem Editor. Notepad++ bietet für solche Vorgänge unter <em>Suche</em> (STR+F) die Option <em>Ersetzen</em>.<br />
Damit lassen sich auch in größeren Scripten einzelne Zeichen schnell und problemlos durch andere austauschen.</p>
<p>In allen Zeilen des beginnenen <em>a</em>-Tags müssen zudem die Hochkommata <em>escaped</em> werden.</p>
<pre>
document.write('&lt;a href="javascript:SJB_appendSmiley(<span style='color:red;'>\'</span> ... <span style='color:red;'>\'</span>)"&gt;');
</pre>
<p>Die Smileys (wie auch am Pfad erkennbar) befinden sich in dem Ordner <strong><em>&#8230;/wp-includes/images/smilies/&#8230;</em></strong>, der direkt im Root-Verzeichnis (1. Ebene) Eurer WordPress-Installation liegt. Werft dort einfach mal einen Blick hinein.<br />
Den dort könnt Ihr auch weitere bzw. andere Smilies einfügen. Dazu einfach etwas im Netz stöbern. Eventuell kreiert jemand ja auch einen Satz eigener Smileys und stellt diese dann anderen zur Verfügung. </p>
<p>Sobald Ihr dort eigene Smileys hinzugefügt habt, müssen diese dem WordPress-System noch &#8220;bekannt&#8221; gemacht werden:</p>
<ul>
<li> Öffnet dazu bitte ebenfalls im <strong><em>wp-includes</em></strong>-Ordner die <strong><em>functions.php</em></strong></li>
<li> Drückt dort die Tastenkombination &#8220;STRG+F&#8221;, so dass sich das &#8220;Suchen&#8221;-Fenster öffnet und gebt dort <strong><em>$wpsmiliestrans  = array</strong></em> ein</li>
<li> Dadurch gelangt Ihr zu einem Array, in dem allen einzelnen Smiley-Images (aus dem zuvor angesprochenen smilie-Ordner) ein individueller Text zugeordnet wird.
<p><a href='http://einmal-am-tag.de/wp-content/uploads/2009/06/smiley_array.png' rel="lightbox" title='Smiley Array in WordPress'><img src="http://einmal-am-tag.de/wp-content/uploads/2009/06/smiley_array.png" alt="Smiley Array in WordPress Kommentare mit Smileys" width="300" height="200" /></a></p>
</li>
<li>
Der gleiche Text wird beim Anklicken eines Smileys an die Funktion <em>SJB_appendSmiley</em> übergeben und in den Kommentarbereich eingefügt.<br/><br/></p>
<pre>
document.write('&lt;a href="javascript:SJB_appendSmiley(\':-|\')"&gt;');
</pre>
</li>
<li>
Wordpress tauscht diesen Text dann durch das jeweilige im <strong><em>$wpsmiliestrans</em></strong>-Array zugewiesene Smiley aus
</li>
<li>
Für jeden Eurer eigenen Smileys, die Ihr zuvor im smilie-Odner abgespeichert habt, legt Ihr hier nun nach dem gleichen Shema eine eigene Zeile an:<br/><br/></p>
<pre>
...
 ':neuer_smiley:' => 'neuer_smiley.gif',
':neuer_smiley2:' => 'neuer_smiley2.gif',
':neuer_smiley3:' => 'neuer_smiley3.gif',
...
</pre>
</li>
<li>
Der Javascript-Block in der <strong><em>comments.php</em></strong> muss natürlich um jedes neu hinzugefügte Smiley erweitert werden:<br/><br/></p>
<pre>
document.write('&lt;a href="javascript:SJB_appendSmiley(\':neuer_smiley:\')"&gt;');
document.write('&lt;img src="http://eure_domain/wp-includes/images/smilies/neuer_smilie.gif" alt=":-x" class="wp-smiley" title=":neuer_smilie:" /&gt;');
document.write('&lt;/a&gt; ');
</pre>
</li>
</ul>
<p>Jetzt sollte klar geworden sein, wie es funktioniert.</p>
<p>Mich persönlich sprechen diese <a href='http://noobr.net/2009/02/15-smiley-icon-sets-express-yourself/' title='manto smileys'>&#8216;manto-smileys&#8217;</a> besonders an, die nur noch mit GIMP (oder Photoshop) auf eine akzeptable Größe reduziert werden müßten.<br />
Als ich diese das erste mal gesehen habe, dachte ich nur:&#8221;Wie geil ist das denn!&#8221;. Allerdings sagt die Seite nichts über die Lizenzbestimmungen des chinesischen Designers aus &#8230;! </p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/bQwJc4y9lfs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/wordpress-kommentare-mit-smileys/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/wordpress-kommentare-mit-smileys/</feedburner:origLink></item>
		<item>
		<title>Quellcode strukturieren und kürzen!</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/9KmyjAiHZ44/</link>
		<comments>http://einmal-am-tag.de/2009-06/quellcode-strukturieren-und-kuerzen/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 14:50:58 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Quellcode]]></category>
		<category><![CDATA[Ternary Operators]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1434</guid>
		<description><![CDATA[

In der Programmierung, besonders bei größeren Projekten/ Scripten, wird der Quellcode schnell unübersichtlich und schwer wartbar. Wer schon einmal ein Programm/ Script mit mehr als 1000 Zeilen geschrieben hat, wird mir da sicherlich zustimmen. Aus diesem Grund empfiehlt es sich, den Quellcode zu kommentieren und übersichtlich einzurücken. Zu dem können if/else-Kontrollstrukturen und Datenbankabfragen verkürzt dargestellt [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>In der Programmierung, besonders bei größeren Projekten/ Scripten, wird der Quellcode schnell unübersichtlich und schwer wartbar. Wer schon einmal ein Programm/ Script mit mehr als 1000 Zeilen geschrieben hat, wird mir da sicherlich zustimmen. Aus diesem Grund empfiehlt es sich, den Quellcode zu kommentieren und übersichtlich einzurücken. Zu dem können <em>if/else</em>-Kontrollstrukturen und Datenbankabfragen verkürzt dargestellt werden. In diesem Tutorial möchte ich Ihnen dazu einige Beispiele bieten.<span id="more-1434"></span></p>
<p><strong>Kommentare einsetzen</strong><br />
In der Programmierung sind Kommentare (Comments) meiner Meinung nach das Salz in der Suppe. Sie ermöglichen es uns auch noch nach Monaten, jeden Abschnitt des jeweiligen Quellcodes besser und somit schneller zu verstehen.  Dies ist besonders wichtig, wenn fremder (nicht von uns selbst programmierter) Code vorliegt. Ich habe mir angewöhnt, besonders komplexe Passagen direkt mit einem Kommentar zu versehen. In PHP gibt es dazu zwei Möglichkeiten:</p>
<pre>
<span style='color:#aaa;'>/*Einzeiliger Kommentar*/</span>
// einzeilige Kommentare können mit ’//’ (zwei Backslashes) in den Quellcode eingefügt werden

<span style='color:#aaa;'>/*Mehrzeiliger Kommentar*/</span>
/* mehrzeilige Kommentare werden mit einem
* beginnenden ’/*’ (Slash und folgendem Sternchen)
* eingeleitet und mit ’*/’ (also umgekehrt)
* wieder abgeschlossen.
* In jeder neuen Zeile empfehle ich ein
* Sternchen als Einleitung einzufügen
*/
</pre>
<p>Auch wenn Kommentare Mehrarbeit bedeuten, möchte ich Ihnen nahelegen, davon ausgiebig Gebrauch zu machen. Spätestens wenn ein älteres Projekt verändert/angepasst werden muss,  werden sie dies zu schätzen wissen. Zudem wird der Lerneffekt verstärkt, da Sie sich mit dem erstellten Quellcode intensiver auseinandersetzen.</p>
<p><strong>Quellcode einrücken</strong><br />
Genau wie beim Kommentieren erfordert das durchgehende Einrücken des Quellcodes zunächst mehr Aufwand (obwohl es bei mir eigentlich schon automatisch erfolgt). Aber neben der verbesserten Lesbarkeit wird durch diese Maßnahme vor allem die Fehlersuche enorm erleichert. Dabei haben sich folgende zwei Möglichkeiten/ Stile etabliert (<a href='http://de.wikipedia.org/wiki/Einr%C3%BCckungsstil' title='Wikipedia Einrückungsstile Programmierung'>Einrückunsstile</a>)</p>
<pre>
<span style='color:#aaa;'>/* Stil 1 */</span>
if($ausruf == 'Hallo') <span style='color:red'>{</span>
	echo "Er hat 'Hallo' gerufen";
<span style='color:red'>}</span> else  <span style='color:red'>{</span>
	echo "Er hat nichts gerufen";
<span style='color:red'>}</span>

<span style='color:#aaa;'>/* Stil 2 */</span>
if($ausruf == 'Hallo')
<span style='color:red'>{</span>
	echo "Er hat ‘Hallo’ gerufen";
<span style='color:red'>}</span>
else
<span style='color:red'>{</span>
	echo "Er hat nichts gerufen";
<span style='color:red'>}</span>
</pre>
<p>Die Einrückungstiefe kann dabei getrost selbst bestimmt werden. Einige nehmen einen ganzen &#8216;Tab&#8217;, andere nur zwei oder drei Leerzeichen. Ich denke, dabei kommt es auf die Verschachtelungstiefe an. </p>
<p>Ich persönliche ertappe mich regelmäßig dabei, dass ich Mal den einen und Mal den anderen Einrückungsstil verwende. Den ersteren Aufgrund meiner Java/C++-Erfahrung (der etwas mehr Platz spart) und den zweiten hinsichtlich PHP (den ich als etwas übersichtlicher empfinde). Des Weiteren achte ich darauf, dass z.B. Gleichheitszeichen bei Zuweisungen ordentlich untereinanderstehen.</p>
<pre>
$string    = 'Hallo Welt';
$boolean   = true;
$int       = 5;
...
</pre>
<p>Entscheiden Sie selber, wie Sie Ihren Quellcode überschaubarer gestalten! Viele Editoren besitzen bereits eine automatische Einrückung oder das sogenannte <em>Syntaxhighlighting</em>, wodurch dieser Schritt vereinfacht wird.</p>
<p><strong>Quellcode verkürzen</strong><br />
Dies ist ein heikles Thema und es gehört viel Erfahrung und eine Menge Grips dazu, Algorithmen oder einfacher gesagt die Programmierlogik zu verkürzen. Während der ersten Schritte, in denen man sich die Basics der Programmierung aneignet, kommt es meistens zu ausufernden Konstrukten, um z.B. eine Anweisung zu programmieren.<br />
Ausgiebiger Gebrauch von verschachtelten if/else-Kontollstrukturen führen zwar letztendlich ebenfalls zum Ziel, sind jedoch fehleranfälliger und verlangsamen das Programm/ Script (mal ganz abgesehen von der bereits zuvor angesprochenen schlechteren Übersichtlichkeit). </p>
<p>Während diverser Weiterbildungen war es ein beliebter „Wettbewerb“ unter den Teilnehmern, alles möglichst kurz zu programmieren. Die Königsklasse hierbei war der legendäre „Einzeiler“: Unter Verwendung der ausgeklügelsten Techniken (Stichworte: Modulo, Reguläre Ausdrücke, …) wurde mehrzeiliger Code zu einer einzigen Zeile komprimiert. </p>
<p>Ich habe dabei ein ums andere Mal große Augen bekommen, mir dies aber möglichst nicht anmerken lassen <img src='http://einmal-am-tag.de/wp-includes/images/smilies/icon_wink.gif' alt="Icon Wink in Quellcode strukturieren und kürzen!" class='wp-smiley' />  !<br />
Doch neben genug Gehirnschmalz und Erfahrung gibt es auch ein paar Techniken, die leicht erlernbar sind und den Quellcode ebenfalls kürzer und überschaubarer gestalten.<br />
Eine Möglichkeit besteht darin, einfache if/else-Kontrollstrukturen in einer einzigen Zeile auszuführen:</p>
<pre>
<span style='color:#aaa'>/* Lange Version */</span>

if(isset($_POST['color']))
{
	$backgroundcolor =  $_POST['color'];
}
else
{
	$backgroundcolor =  'white';
}

<span style='color:#aaa'>/* Kurze Version */</span>
$backgroundcolor = (isset($_POST['color'])) <span style='color:red; font-weight:bold;'>?</span> ($_POST['color'] <span style='color:red; font-weight:bold;'>:</span> 'white';
</pre>
<p>Das Beispiel ist aus der Luft gegriffen und bezieht sich auf PHP. Eine ähnliche Syntax gibt es auch für Java und C++ (&#8230;). Es handelt sich hierbei um die sogenannten &#8216;Ternary Operators&#8217; (engl. Dreifach-Operatoren). Am Anfang etwas gewöhnungsbedürftig, möchte man sie später (einmal verinnerlicht) nicht mehr missen.<br />
Mit dem PHP-Befehl <em>sprintf</em> läßt sich der Quellcode ebenfalls oftmals verürzt und übersichtlicher darstellen.</p>
<pre>
<span style='color:#aaa;'>/* Beipiel herkömmliche Schreibweise */</span>
&lt;?php
$query = "SELECT telefon
          FROM kunde
          WHERE vorname = '".addslashes($vorname)."'
          AND name = '".addslashes($name)."'
          AND strasse = '".addslashes($strasse)."'";
$result = mysql_query($query);
...
<span style='color:#aaa;'>/* Nicht sehr übersichlich, oder?!
Dann schauen Sie sich mal dieses Beispiel an*/</span>

$query = sprintf("SELECT telefon
                  FROM kunde
                  WHERE vorname= '%s'
                  AND name = '%s'
                  AND strasse = '%s'",
                  addslashes($vorname),
                  addslashes($name),
                  addslashes($strasse));
$result = mysql_query($query);
?&gt;
</pre>
<p>Hierbei werden im Quellcode Platzhalter (Literale) eingesetzt, die anschließend in der gleichen Reihenfolge durch die angefügten Parameter ersetzt werden.<br />
Ein <em>%s</em> bedeutet hierbei, dass an dieser Stelle ein String gesetzt wird. Es können auch Dezimalzahlen (<em>%d</em>) oder Zahlen vom Typ <em>float</em> (<em>%f</em>) übergeben werden. Zudem lassen sich neben anderen Angaben auch Ausrichtung und Länge einfügen, auf die ich hier aber nicht weiter eingehen werde (<a href='http://www.selfphp.de/funktionsreferenz/string_funktionen/sprintf.php' title='SELFPHP zu sprintf'>weiterführende Informationen</a>).</p>
<p>Tun Sie sich (und eventuell anderen) einen Gefallen und schreiben Sie lesbaren Quellcode!</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/9KmyjAiHZ44" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/quellcode-strukturieren-und-kuerzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/quellcode-strukturieren-und-kuerzen/</feedburner:origLink></item>
		<item>
		<title>Was ist Twitter (Microblogging)?</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/0TBCw_vZG1s/</link>
		<comments>http://einmal-am-tag.de/2009-06/was-ist-twitter-microblogging/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 19:59:03 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1423</guid>
		<description><![CDATA[

Do you know TWITTER ?
Viele haben schon davon gehört, einige wissen aber nicht genau, was es mit diesem &#8220;Online-Tagebuch&#8221; auf sich hat.
Neben Wikipedia dürfte dieses Video vom &#8220;elektrischen Reporter&#8221; die meisten Fragen zum Thema &#8220;Zwitschern&#8221; beantworten.
(Einfach auf das Bild klicken)

Ich für meinen Teil halte nicht viel von diesem ganzen &#8220;Zwitscher&#8221;-Kram, in dem Leute alle Nase [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Do you know TWITTER ?<br />
Viele haben schon davon gehört, einige wissen aber nicht genau, was es mit diesem &#8220;Online-Tagebuch&#8221; auf sich hat.<br />
Neben <a href='http://de.wikipedia.org/wiki/Twitter' title='Über Twitter bei Wikipedia'>Wikipedia</a> dürfte dieses Video vom &#8220;elektrischen Reporter&#8221; die meisten Fragen zum Thema &#8220;Zwitschern&#8221; beantworten.<br />
<span class='small'>(Einfach auf das Bild klicken)</span></p>
<p><a href='http://www.elektrischer-reporter.de/elr/video/83/' title='Der elektrische Reporter erklärt Twitter'><img src='http://einmal-am-tag.de/wp-content/uploads/2009/06/twitter2.jpg' alt="Twitter2 in Was ist Twitter (Microblogging)?" width='450' height='275' /></a></p>
<p>Ich für meinen Teil halte nicht viel von diesem ganzen &#8220;Zwitscher&#8221;-Kram, in dem Leute alle Nase lang mitteilen, was sie gerade machen, wie sie sich momentan fühlen oder weiss der Geier. <span id="more-1423"></span></p>
<p><img src="http://einmal-am-tag.de/wp-content/uploads/2009/06/twitter1.jpg" alt="Twitter1 in Was ist Twitter (Microblogging)?" width="450" height="275"  /></p>
<p>Allerdings muss ich zugeben, dass einige Aspekte interessant sind. Neben den (wohl wenigen brauchbaren) Informationen finde ich die Aussage in dem Video erwähnenswert, wo der Gründer im hinteren Teil das Beispiel mit Amsterdam beschreibt: Jemand fährt dorthin, &#8220;twittert&#8221; es und könnte so prompt von jemand anderes aus Amsterdam z.B. zu einem Drink eingeladen werden. Oder, wie es der Zufall manchmal will, befindet sich just in diesem Augenblick ein Bekannter ebenfalls vor Ort.<br />
Andererseits sollten vielleicht nicht zu viele Informationen preisgegeben werden. Nicht das nachher noch jemand an der &#8220;Zwitscher&#8221;-Leitung hängt bzw. mitliest, der weniger gute Absichten hegt &#8230;</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/0TBCw_vZG1s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/was-ist-twitter-microblogging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/was-ist-twitter-microblogging/</feedburner:origLink></item>
		<item>
		<title>Familienduell, kennt Ihr das noch?</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/45atlLHbPV8/</link>
		<comments>http://einmal-am-tag.de/2009-06/familienduell-kennt-ihr-das-noch/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 06:54:20 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Unterhaltung]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1397</guid>
		<description><![CDATA[

Der eine oder andere hat doch bestimmt früher auch mal &#8216;Familienduell&#8217; geguckt. Hier ein Video mit einigen lustige Antworten, ich könnte mich kringeln. Aber vor laufender Kamera unter Zeitdruck &#8230; ui ui ui &#8230; da würde bei mir bestimmt auch das eine oder andere Mal etwas ähnliches rauskommen. 

&#8220;Nennen Sie ein Tier, das Stacheln hat!&#8221; [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Der eine oder andere hat doch bestimmt früher auch mal &#8216;Familienduell&#8217; geguckt. Hier ein <a href='http://www.youtube.com/watch?v=PDU6SBObO4A' title='Familienduell'>Video</a> mit einigen lustige Antworten, ich könnte mich kringeln. Aber vor laufender Kamera unter Zeitdruck &#8230; ui ui ui &#8230; da würde bei mir bestimmt auch das eine oder andere Mal etwas ähnliches rauskommen. </p>
<p><a href='/wp-content/uploads/2009/06/familienduell.jpg' rel='lightbox' title='Familienduell'><img src="/wp-content/uploads/2009/06/familienduell-300x228.jpg" alt="Familienduell-300x228 in Familienduell, kennt Ihr das noch?" width="300" height="228" /></a></p>
<p>&#8220;Nennen Sie ein Tier, das Stacheln hat!&#8221; &#8230; &#8220;Stachelbär!?&#8221;<br />
&#8220;Nennen Sie ein Spiel im Casino!&#8221; &#8230; &#8220;Roy Black!?&#8221;<br />
Schaut es Euch an &#8230; für das erste Schmunzeln am Tag!</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/45atlLHbPV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/familienduell-kennt-ihr-das-noch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/familienduell-kennt-ihr-das-noch/</feedburner:origLink></item>
		<item>
		<title>Liebeslied auf verschiedenen Sprachen!</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/h-hLkMfjG4s/</link>
		<comments>http://einmal-am-tag.de/2009-06/liebeslied-auf-verschiedenen-sprachen/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 18:19:28 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Unterhaltung]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1388</guid>
		<description><![CDATA[

Der noch recht unbekannte Comedian Bodo Wartke singt am Klavier ein Liebeslied in den verschiedensten Sprachen. Das müsst Ihr Euch unbedingt mal reinziehen &#8230; echt Klasse gemacht. Sowas unterstütze ich gerne, Daumen hoch!

Hier der Link zum Video: Liebeslied
Homepage: Bodo Wartke
Am Liebsten hätte ich es direkt eingebunden, aber die Urheberrechte von Künstlern sollten bewahrt werden.

]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Der noch recht unbekannte Comedian Bodo Wartke singt am Klavier ein Liebeslied in den verschiedensten Sprachen. Das müsst Ihr Euch unbedingt mal reinziehen &#8230; echt Klasse gemacht. Sowas unterstütze ich gerne, Daumen hoch!</p>
<p><a href='/wp-content/uploads/2009/06/liedermacher.jpg' rel='lightbox'><img src="/wp-content/uploads/2009/06/liedermacher-300x184.jpg" alt="Liedermacher-300x184 in Liebeslied auf verschiedenen Sprachen!" width="300" height="184" class="size-medium wp-image-1389" /></a></p>
<p>Hier der Link zum Video: <a href='http://www.youtube.com/watch?v=ZOb0bErcDyg&#038;eurl=http%3A%2F%2Fwww.orschlurch.de%2F2009%2F05%2Fbodo-wartke-liebeslied%2F&#038;feature=player_embedded' title='Liebeslied Bodo Wartke'>Liebeslied</a><br />
Homepage: <a href='http://www.bodowartke.de/' title='Homepage von Bodo Wartke'>Bodo Wartke</a></p>
<p>Am Liebsten hätte ich es direkt eingebunden, aber die Urheberrechte von Künstlern sollten bewahrt werden.</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/h-hLkMfjG4s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/liebeslied-auf-verschiedenen-sprachen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/liebeslied-auf-verschiedenen-sprachen/</feedburner:origLink></item>
		<item>
		<title>Dynamisches Stylesheet (Dynamic CSS)</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/I-bxHNamE1M/</link>
		<comments>http://einmal-am-tag.de/2009-06/dynamisches-stylesheet/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 19:35:21 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Cascading Stylesheet]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1287</guid>
		<description><![CDATA[

Web 2.0 ist in aller Munde. Nachrichten werden zwischen einzelnen Webseiten ausgetauscht (Stichwort Abonnementdienste wie RSS/Atom). Weblogs schießen wie Pilze aus den Boden. Dynamische Webseiten (DHTML) sowie DOM-Scripting sind in der heutigen Zeit zum Standard geworden. Menüs klappen auf, Texte werden eingeblendet, Seiteninhalte lassen sich einfach verschieben … überall bewegt sich etwas. 
Es werden Techniken [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><strong>Web 2.0</strong> ist in aller Munde. Nachrichten werden zwischen einzelnen Webseiten ausgetauscht (Stichwort Abonnementdienste wie <strong>RSS/Atom</strong>). <strong>Weblogs</strong> schießen wie Pilze aus den Boden. Dynamische Webseiten (<strong>DHTML</strong>) sowie <strong><acronym title='Document Object Model'>DOM</acronym></strong>-Scripting sind in der heutigen Zeit zum Standard geworden. Menüs klappen auf, Texte werden eingeblendet, Seiteninhalte lassen sich einfach verschieben … überall bewegt sich etwas. </p>
<p>Es werden Techniken eingesetzt, die Web-Anwendungen wie Desktop-Anwendungen aussehen lassen (Stichwort <strong>Ajax</strong>). Rein statische Seiten fristen in den Weiten des Internet nur noch ein Schatten-Dasein.<br />
Und wenn wir ehrlich sind, haben wir uns daran gewöhnt. </p>
<p>Wir erwarten, das Webprogrammierer -und Designer die Seiten so gestalten, das sie attraktiv und „<acronym title='Benutzerfreundlichkeit'>usability</acronym>“ daher kommen. Das Webseiten auch körperlich beeinträchtigten Menschen zugänglich sind (Stichwort Barrierefreiheit) und nach Möglichkeit in jedem Browser … zumindest einigermaßen … ähnlich aussehen. <span id="more-1287"></span></p>
<p>Es können Videos und Fotos betrachtet, Musik gehört und Spiele gespielt werden. Animationen, erstellt mit Java, Flash, Javascript oder als GIF-Bild, lassen Webseiten „leben“ (wenn sie uns nicht gerade stören).</p>
<p>Und da ich von diesen Dingen einfach fasziniert bin, habe ich mich daran gesetzt, dem <strong>Stylesheet</strong> meines Blogs mit Hilfe von PHP ebenfalls etwas Dynamik einzuhauchen. </p>
<p><strong>Anleitung dynamisches Stylesheet</strong><br />
Zuerst muss die Endung der normalen Stylesheet-Datei …</p>
<pre>
style.<span style='color:red;'>css</span>
</pre>
<p>&#8230; durch &#8230;</p>
<pre>
style.css.<span style='color:red;'>php</span>
</pre>
<p>&#8230; ersetzt werden.<br />
Eingebunden wird die neue dynamische Stylesheet-Datei wie gewohnt im Head-Bereich der Seite:</p>
<pre>
&lt;!DOCTYPE html PUBLIC …
&lt;html&gt;
  &lt;head&gt;
    <span style='color:red;'>&lt;link rel="stylesheet" type="text/css" href="pfad_zur_datei/style.css.php" /&gt;</span>
  &lt;/head&gt;
  &lt;body&gt;
  ...
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Nun wird im neuen Stylesheet innerhalb eines PHP-Blocks der <a href=' http://de.wikipedia.org/wiki/Internet_Media_Type' title='Wikipedia Content-Type'>Content-type</a> angegeben, da der Server beim Parsen sonst davon ausgeht, dass es sich hierbei um eine gewöhnliche HTML-Datei handelt. Dazu wird im Kopf der css.php-Datei folgendes deklariert:</p>
<pre>
&lt;?php
  <span style='color:red;'>header('Content-type: text/css');</span>
  <span style='color:#aaa;'> /*
    An dieser Stelle wird der Quellcode eingefügt.
    Mehr dazu später …
   */</span>
?&gt;

/* Begin Typography &#038; Colors */

body {

	font-size: 62.5%; /* Resets 1em to 10px */

	font-family: Arial, Helvetica, Sans-Serif;

	background: #063164; 

	color: #999;

	text-align: center;

	}
…
</pre>
<p>Nun „weiß“ der Server Bescheid, gibt die PHP-Datei als CSS-Datei an den Browser und dieser kann die Datei anschließend richtig interpretieren.</p>
<h5 class='trigger'>Erklärung</h5>
<div>
Im Gegensatz zu einer normalen Stylesheet-Datei, die der jeweilige Browser direkt durch den angegebenen Pfad im Head-Bereich der Webseite <acronym title='einliest'> „annektiert“</acronym>, wird die neue PHP-CSS-Datei zuerst vom Server (auf Grund der <span style='color:red;'>.php</span>-Endung!) durch den PHP-Parser geschickt.<br />
Dieser erkennt den eingefügten PHP-Block </p>
<pre>
&lt;?php
 …
?&gt;
</pre>
<p>und arbeitet den dort eingefügten Quellcode ab. Erst danach wird die (inhaltlich geänderte) Datei zurückgeschickt und steht nun dem jeweiligen Browser zur Verfügung. Dieser erkennt, genau wie der Besucher der Seite, durch die explizite Angabe des Content-Types eine ganz normale CSS-Datei. Der PHP-Code kann dagegen nicht eingesehen werden!
</p></div>
<p>Da mir diese Webseite neben dem Bloggen auch als „Bastelstube“ dient (siehe auch mein <a href='http://einmal-am-tag.de/kolophon/' title='Kolophon'>Kolophon</a>), um Webtechniken anzuwenden, hatte ich mir überlegt, die Hintergrundfarbe beim ersten Aufruf der Seite zufällig aus einem Pool von Hintergrundgrafiken generieren zu lassen. Diese sind bereits als PNG-Dateien auf dem <acronym title='Speicherplatz der Webseite bei einem Server-Hosting-Provider'>Webspace </acronym> hinterlegt und werden über den Name eingebunden.</p>
<pre>
   bg_hellgruen.png
   bg_blau.png
   bg_beige.png
   ...
</pre>
<p>Dazu legte ich zunächst ein Array an, in das die Namen derjenigen Grafiken einfügte wurde, die später angezeigt werden sollen.</p>
<pre>
$farben = array('weiss', 'schwarz', 'blau', 'gruen',
        'beige', 'hellblau', 'hellgruen', 'rose',
        'sand', 'grau_gruen');
</pre>
<p>Aus diesem wird ein zufälliges ausgewählt</p>
<pre>
 $zufall = array_rand($farben, 1);<span style='color:#aaa;'>/* ... die 1 kann bei einem
Wert auch weggelassen werden */</span>
 $zufalls_farbe = $farben[$zufall];
</pre>
<p>und danach in einem switch-Kontrollblock die Textfarbe an die jeweilige Hintergrundfarbe angepasst, um einen ausreichenden Kontrast zu garantieren.</p>
<pre>
switch ($zufalls_farbe) {
    case 'weiss':
     $_SESSION['textcolor'] = '#222';
        break;
    case 'beige':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'hellblau':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'oliv':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'rose':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'hellgruen':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'sand':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'grau_gruen':
      $_SESSION['textcolor'] = '#222';
        break;
    default:
      $_SESSION['textcolor'] = '#aaa';
        break;
  }
</pre>
<p>Anstatt des <em>switch</em>-Kontrollblocks kann natürlich auch eine if-Abfrage eingesetzt werden. Ich habe dies lediglich auf diese Art gelöst, um wieder mal mit der <em>switch</em>-Syntax zu arbeiten. Hinsichtlich der Geschwindigkeit dürften sich beide Möglichkeiten (auch bei größeren Datenmengen) nicht wesentlich unterscheiden (unter Programmierern führt dieser Aspekt gern zu ausufernden Diskussionen &#8211;> kürzer, schneller …).</p>
<p>Um die einmal ausgewählte Hintergrundfarbe während des Besuchs beizubehalten, wird noch eine Session-Variable erstellt. In dieser wird beim ersten Einlesen der css.php-Datei ebenfalls die zufällig generierte Hintergrundfarbe gespeichert. </p>
<pre>
 $_SESSION['color'] = $zufalls_farbe;
</pre>
<p>Dies wurde für die Textfarbe bereits schon im <em>switch</em> realisiert.<br />
Normalerweise legt der Browser die CSS- Datei (und noch einige andere Dateien, z.B. Grafiken) im eigenen Cache-Speicher ab und ein erneutes Einlesen ist bei Seitenwechsel nicht mehr nötig. Dadurch kann die Webseite nach dem ersten Aufruf schneller geladen werden. </p>
<p>Da dies aber nicht garantiert ist (was mir meine Erfahrungen auch bestätigen), wird bei jedem Einlesen überprüft, ob diese Session-Variable existiert. Sollte dies der Fall sein, erfolgt keine erneute Auswahl der Hintergrundfarbe, sondern es wird dann der gespeicherte Wert der Session-Variable verwendet. Dafür wird der gesamte Quellcode in eine Abfrage eingeschlossen, welche direkt überprüft, ob die Session-Variable bereits existiert.</p>
<pre>
if(!isset($_SESSION['color'])) {
...
}
<span style='color:#aaa;'>/* Nur wenn die SESSION-Variable noch nicht (!)
existiert, wird eine neue Farbe ausgewählt
*/</span>
</pre>
<p>Nun werden die gefüllten Variablen an den jeweiligen Stellen im normalen Stylesheet-Bereich eingefügt und mit dem <em>echo</em>-Befehl ausgegeben.</p>
<pre>
#header {
	background: transparent url('images/layout/<span style='color:green;'>bg_</span>&lt;?php
        if(isset($_SESSION['color'])) echo $_SESSION['color'];
        else echo 'bg_weiss'; ?&gt;<span style='color:green;'>.png</span>') repeat-y top center;
        <span style='color:#aaa;'>/* Der else-Block dient nur als Beispiel
        und dürfte nicht ausgeführt werden*/</span>
	}
...

#content {
	font-size: 1.35em;
        color:&lt;?php if(isset($_SESSION['textcolor'])) echo $_SESSION['textcolor']; else echo '#222'; ?&gt;;
	}
...
</pre>
<p>Durch diese Maßnahme bekommt jeder Besucher der Seite beim ersten Aufruf eine zufällige Hintergrundfarbe, die auch bei Seitenwechsel erhalten bleibt (es sei denn, es wird ein anderer Hintergrund über den <a class='einstellungen'>Einstellungen-Button</a> gewählt).</p>
<p>Aber anstatt der Hintergrundfarbe könnte auch der body-Hintergrund geändert werden. In dem PHP-Bereich kann das ganze Potenzial dieser Scriptsprache eingesetzt werden, um das Stylesheet den eigenen Bedürfnissen <em>dynamisch</em> anzupassen.<br />
Auch eine Darstellung, welche an die jeweilige Tageszeit angepasst wird bzw. von dieser abhängig ist, kann so leicht realisiert werden (time-Funktion von PHP). </p>
<pre>
 <span style='color:#aaa;'>/* H - Stunde im 24-Stunden-Format (00-23 ) */</span>
if (date("H")&gt;8 &#038;&#038; date("H")&lt;20){
$background = "#ffffff";
    $color = "#000000";
  } else {
    $background = "#000000";
    $color = "#ffffff";
  }
</pre>
<p>Doch es traten auch Probleme auf. Die Stylesheet-Anpassungen für die  <img src='http://einmal-am-tag.de/wp-includes/images/smilies/icon_evil.gif' alt="Icon Evil in Dynamisches Stylesheet (Dynamic CSS)" class='wp-smiley' />  -Browser der Redmonder habe ich direkt im Stylesheet stehen und nicht wie sonst üblich über eine Browserweiche (Conditional Comments ) als zusätzliches Stylesheet eingebunden.<br />
Die Separierung erfolgt über die &#8220;Holzhammer-Methode&#8221; mit dem <em>!important</em>-Hack:</p>
<pre>
<span style='color:#aaa'>/* Beispiel */</span>
.navigation {
	display: block;
	text-align: center;
        <span style='color:#aaa;'>/* 'Normale' Browser führen diese Zuweisung aus ... */</span>
	margin-top: 10px !important;
        <span style='color:#aaa;'>/* ... während der IE !important nicht kennt und diese
        Zuweisung interpretiert */</span>
        margin-top:0px;
        <span style='color:#aaa;'>/* Dies wird dann wieder von allen ausgeführt */</span>
	margin-bottom: 60px;
	}
</pre>
<p>Diese Art, IE-Bugs zu beheben, sollte eigentlich nicht verwendet werden ( &#8230; um das Grund-Stylesheet sauber zu halten). Da ich jedoch bisher nicht viele Anpassungen vornehmen mußte, habe ich es auf diese (nicht besonders elegante Weise) gelöst.<br />
Nach Umänderung meines Stylesheets zu einer PHP-CSS-Datei mit Content-Type-Deklaration wurde ich auch sofort bestraft und der Hack funktionierte aus mir unerklärlichen Gründen nicht mehr. Als Folge wurde meine Seite 3 Tage lang etwas &#8220;zerissen&#8221; im IE angezeigt, bis ich es als Firefox-Nutzer endlich gemerkt hatte. Dadurch wurde ich mal wieder daran erinnert, dass in der Programmierung umfangreiche Tests unabdingbar sind.<br />
Nun hätte ich mein Grund-Stylesheet ändern und die IE-Anweisungen auslagern können. Ich entschied mich aber dafür, den PHP-Teil in eine separate Datei zu schreiben und zusätzlich in die Seite einzufügen. So können zukünftige weitere Schritte überschaubarer realisiert werden.</p>
<p>Ich hoffe, diese Einführung in dynamische Stylesheets war hilfreich für eigene Projekte. </p>
<h5 class='trigger'>Hier noch mal der gesamte Quellcode</h5>
<div>
<pre>
&lt;?php
session_start(); <span style='color:#aaa;'>/* ... muss am Anfang eingefügt werden */</span>
<span style='color:#aaa;'>/* error_reporting(E_ALL)  und ini_set('display_errors', 'On') zur Fehlersuche */</span>
error_reporting(E_ALL);
ini_set('display_errors', 'On');
header('Content-type: text/css');

<span style='color:#aaa;'>/* Zufallshintergrund */</span>
if(!isset($_SESSION['color'])) {

  $farben = array('weiss', 'schwarz', 'blau', 'gruen', 'beige', 'hellblau', 'hellgruen', 'rose', 'sand', 'grau_gruen');
  $zufall = array_rand($farben, 1);<span style='color:#aaa;'>/* ... die 1 kann bei einem Wert auch weggelassen werden */</span>
  $zufalls_farbe = $farben[$zufall];

  switch ($zufalls_farbe) {
    case 'weiss':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'beige':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'hellblau':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'oliv':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'rose':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'hellgruen':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'sand':
      $_SESSION['textcolor'] = '#222';
        break;
    case 'grau_gruen':
      $_SESSION['textcolor'] = '#222';
        break;
    default:
      $_SESSION['textcolor'] = '#ccc';
        break;
  }
  $_SESSION['color'] = $zufalls_farbe;
}
?&gt;

#header {
	background: transparent url('images/layout/<span style='color:green;'>bg_</span>&lt;?php
             if(isset($_SESSION['color']))
                 echo $_SESSION['color'];
             else
                 echo 'bg_weiss'; ?&gt;<span style='color:green;'>.png</span>') repeat-y top center;
	}

#container_inside {
	background: transparent url('images/layout/<span style='color:green;'>bg_</span>&lt;?php
             if(isset($_SESSION['color']))
                 echo $_SESSION['color'];
             else
                 echo 'bg_weiss'; ?&gt;<span style='color:green;'>.png</span>') repeat-y top center;
	}

#content {
	font-size: 1.35em;
        color:&lt;?php
            if(isset($_SESSION['textcolor']))
               echo $_SESSION['textcolor'];
            else
               echo '#222'; ?&gt;;
	}
</pre>
</div>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/I-bxHNamE1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/dynamisches-stylesheet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/dynamisches-stylesheet/</feedburner:origLink></item>
		<item>
		<title>Coldplay Album kostenlos</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/u0ESXhnmhIw/</link>
		<comments>http://einmal-am-tag.de/2009-06/coldplay-album-kostenlos/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 10:11:05 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1247</guid>
		<description><![CDATA[

Auch wen die Information nicht mehr ganz neu ist!
Das neue Coldplay Album “LeftRightLeftRightLeft” kann nach wie vor kostenlos anlässlich der Nordamerika-Tour von der Coldplay-Seite herunterladen werden. 

Auf der Download-Seite lediglich eine e-Mail-Adresse eingegeben (das Häckchen in Bezug auf den Newsletter entfernen) und das Album runterladen. Leider ist &#8220;Coldplay &#8211; Life In Technicolor ii&#8221; nicht dabei [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Auch wen die Information nicht mehr ganz neu ist!<br />
Das neue <strong>Coldplay Album “LeftRightLeftRightLeft”</strong> kann <strong>nach wie vor kostenlos</strong> anlässlich der Nordamerika-Tour von der <a href="http://lrlrl.coldplay.com/leftright.html" title="Coldplay Downloadseite">Coldplay-Seite</a> herunterladen werden. </p>
<p><a title="Coldplay Downloadseite" rel="lightbox" href="/wp-content/uploads/2009/06/leftrightleftrightleft.jpg"><img src="/wp-content/uploads/2009/06/leftrightleftrightleft-300x300.jpg" alt="Leftrightleftrightleft-300x300 in Coldplay Album kostenlos" width="300" height="300" /></a></p>
<p>Auf der Download-Seite lediglich eine e-Mail-Adresse eingegeben (das Häckchen in Bezug auf den Newsletter entfernen) und das Album runterladen. Leider ist <em>&#8220;Coldplay &#8211; Life In Technicolor ii&#8221;</em> nicht dabei (das <a href="http://www.youtube.com/watch?v=fXSovfzyx28">Video</a> dazu finde ich sehr gelungen!), aber auch so eine nette Geste.<br />
Viel Schbass &#8230;</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/u0ESXhnmhIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/coldplay-album-kostenlos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/coldplay-album-kostenlos/</feedburner:origLink></item>
		<item>
		<title>Erweiterungsarbeiten</title>
		<link>http://feedproxy.google.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~3/N79qVIn9gTo/</link>
		<comments>http://einmal-am-tag.de/2009-06/erweiterungsarbeiten/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 08:00:46 +0000</pubDate>
		<dc:creator>Matu</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[mySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://einmal-am-tag.de/?p=1176</guid>
		<description><![CDATA[

In den letzten Tagen war es auf meiner Seite ziemlich ruhig geworden. Ab heute könnt ihr sehen, warum. Das gesamte Wochenende wurde programmiert und einige neue Funktionalitäten flossen in die Seite ein.
So wurde die &#8217;starre&#8217; Stylesheet-Datei mit einer dynamischen PHP-Version erweitert. Nun wird beim ersten Laden der Seite aus einem Pool von Hintergrundfarben eine zufällig [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>In den letzten Tagen war es auf meiner Seite ziemlich ruhig geworden. Ab heute könnt ihr sehen, warum. Das gesamte Wochenende wurde programmiert und einige neue Funktionalitäten flossen in die Seite ein.<br />
So wurde die &#8217;starre&#8217; Stylesheet-Datei mit einer dynamischen PHP-Version erweitert. Nun wird beim ersten Laden der Seite aus einem Pool von Hintergrundfarben eine zufällig ausgewählt und in einer Session-Variable gespeichert (so dass diese bei Seitenwechsel nicht neu generiert wird). Ihr habt aber weiterhin die Möglichkeit, einen Hintergrund nach eurem Geschmack auszusuchen. <span id="more-1176"></span><br />
Des Weiteren wurde eine komplett neue Seite integriert. Durch diese erhält man Zugriff auf eine Fußballdatenbank und kann sich die Ergebnisse und Tabellen der 1. und 2. Bundesliga anzeigen lassen. Die Anwendung wurde komplett eigenständig programmiert und beinhaltet folgende Bereiche:</p>
<ul>
<li>
Datenbank, welche mehrere Tabellen enthält (Vereine, Spieler, Tabelle, Spieltage und Spielereigenschaften)
</li>
<li>
Backend-Script (ca. 1250 Zeilen Code), mit dem Daten geholt und nach Auswahl in der Datenbank gespeichert werden können
</li>
<li>Frontend-Script (ca. 450 Zeilen Code), durch das die gewünschten Daten angezeigt werden
</li>
</ul>
<p>Die Erstellung dauerte ca. 14 Tage (~ 120 Std.) und ermöglicht die Ausgabe von Tabellen und Spieltage der 1. und 2. Bundesliga der vergangenen 2 Saisons (eigentlich noch mehr, siehe mein <a href="/kolophon#wp-tagebuch">Webside-Tagebuch</a>). Leider hatte ich nicht bedacht, das Backend cron-jop-tauglich zu erstellen, so dass noch etwas &#8220;Handarbeit&#8221; nötig ist. Bei Gelegenheit werde ich mich aber noch mal dran setzen. Entweder werden die Daten dann per Cron-Job aktualisiert oder aber der erste Besucher eines Tages müsste kurz warten &#8230;! Momentan ist mir die Lust aber vergangen, meine Birne ist weichgekocht und ich werde mich jetzt wieder dem Schreiben von Artikeln widmen. Über die Beseitigung verschiedener Fehler zu schreiben, die aufgetaucht sind, bietet da genug <acronym title="Material, Stoff, Zeug ...">Stuff</acronym> und wird bestimmt dem einen oder anderen bei seinen Problemen als Hilfe dienen können. Oder aber ich widme mich meiner momentanen Lieblingsbeschäftigung &#8230; Layout-Arbeiten. Denn so ganz gefällt mir die Seite noch nicht. Und da diesbezüglich kein Feedback kommt, werden wohl noch einige Veränderungen (warum kann dieser IE6 kein PNG &#8211;> Stichwort Schatten) vorgenommen werden.<br />
Ich hoffe, Ihr habt Spaß mit den Neuerungen &#8230;!</p>
<!-- google_ad_section_end -->
<img src="http://feeds.feedburner.com/~r/MatusBlog-WebprogrammierungUndJedeMengeTippsTricks/~4/N79qVIn9gTo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://einmal-am-tag.de/2009-06/erweiterungsarbeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://einmal-am-tag.de/2009-06/erweiterungsarbeiten/</feedburner:origLink></item>
	</channel>
</rss>
