<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Templaterie Blog &#187; Programmierung</title>
	<atom:link href="http://blog.templaterie.de/category/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.templaterie.de</link>
	<description>Webdesign, Layout, Templates, Beispiele</description>
	<lastBuildDate>Wed, 14 Apr 2010 19:55:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mailinhalte fischen mit PHP und Javascript</title>
		<link>http://blog.templaterie.de/1060/mailinhalte-fischen-mit-php-und-javascript/</link>
		<comments>http://blog.templaterie.de/1060/mailinhalte-fischen-mit-php-und-javascript/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 19:55:44 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Filtern]]></category>
		<category><![CDATA[Float]]></category>
		<category><![CDATA[for-Schleife]]></category>
		<category><![CDATA[glob]]></category>
		<category><![CDATA[integer]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[mailcontent]]></category>
		<category><![CDATA[Mails auswerten]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[preg_match]]></category>
		<category><![CDATA[pre_match_all]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[this.value]]></category>
		<category><![CDATA[usort]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/?p=1060</guid>
		<description><![CDATA[Ich programmiere noch f&#252;r den kleinen Hausgebrauch und was da so zusammenkommt, das kann man teilweise hier zum gef&#228;lligen Gebrauch oder Nichtbeachtung wiederfinden. ES dient auch mir als Erinnerungst&#252;tze.
z.B. sollte ich nicht vergessen die Methode &#60;form action="?" method="post"&#62; anzugeben. Wenn ich auf $_SERVER[php_self] von wegen dem XSS-Exploit das heutzutage nicht mehr bei allen Servern geht [...]]]></description>
			<content:encoded><![CDATA[<p>Ich programmiere noch f&#252;r den kleinen Hausgebrauch und was da so zusammenkommt, das kann man teilweise hier zum gef&#228;lligen Gebrauch oder Nichtbeachtung wiederfinden. ES dient auch mir als Erinnerungst&#252;tze.</p>
<p>z.B. sollte ich nicht vergessen die Methode <code>&lt;form action="?" method="post"&gt;</code> anzugeben. Wenn ich auf <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocC5uZXQvbWFudWFsL2RlL3Jlc2VydmVkLnZhcmlhYmxlcy5zZXJ2ZXIucGhw">$_SERVER[php_self]</a></code> von wegen dem <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cub25jb2RlLmluZm8vMjAwOC8wNS8wNy9waHBfc2VsZi1pc3QtYm9lc2UtcG90ZW50aWVsbGVzLWNyb3NzLXNpdGUtc2NyaXB0aW5nLXhzcy8=">XSS-Exploit</a> das heutzutage nicht mehr bei allen Servern geht und damit ist <code>$_SERVER[php_self]</code> nicht mehr generell b&#246;se &#8230; wie auch immer geht eben auch ohne.</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;?php $m = isset($_POST[m]) ? intval($_POST[m]) : 1 ; ?&gt; </code></li>
<li class="tab0 even"><code>&lt;form action="?" method="post"&gt;</code></li>
<li class="tab1 odd"><code>&lt;input type="text"</code></li>
<li class="tab2 even"><code>value="&lt;?php echo $m; ?&gt;" name="m" id="m"</code></li>
<li class="tab2 odd"><code>style="width: 4em;"</code></li>
<li class="tab2 even"><code>onfocus="this.value=''"</code></li>
<li class="tab2 odd"><code>onChange="this.value= isNaN(this.value)? 1 : parseInt(parseFloat(this.value))" </code></li>
<li class="tab2 even"><code>onBlur="this.value= isNaN(this.value)? 1 : parseInt(parseFloat(this.value))"/&gt;</code></li>
<li class="tab1  odd"><code>&lt;input type="submit" value="go" class="button" /&gt; </code></li>
<li class="tab0 even"><code>&lt;/form&gt;</code></li>
</ol>
<p>Es wird per Javascript schon daf&#252;r gesorgt, dass in das Formularfeld nur Ganzzahlen d&#252;rfen, nur Javascript kann leicht abgeschaltet werden oder im Browser &#252;berabeitet werden, ergo wird die Eingabe selbstredend auch in PHP noch einmal &#252;berpr&#252;ft und &#252;berarbeitet bzw mit dem Defaultwert ersetzt. OK im PHP war ich noch etwas Faul. Schlie&#223;lich m&#252;sste ich auch dort pr&#252;fen mit PHP <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLmlzLWZsb2F0LnBocA==">is_float()</a></code> pr&#252;fen statt mit PHP <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9kZS9mdW5jdGlvbi5pc3NldC5waHA=">isset()</a></code> seltsamer Weise aber scheint hier das Ergebnis immer false zu sein und der Default wird gew&#228;hlt.</p>
<p>Dass die Werte in Javascript neben parseInt (= runde auf Ganzzahl ab) zun&#228;chst noch mit parseFloat (= behandle Wert als Zahl) bearbeitet wird liegt daran, dass bei der Suche nach der Javascript-Syntax f&#252;r PHP <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLmludHZhbC5waHA=">intval()</a> und Co mir die folgenden beiden Links begegneten:</p>
<ol>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2plaGlhaC5jei9hcmNoaXZlL2phdmFzY3JpcHQtcGFyc2VpbnQtaXMtYnJva2Vu">javascript parseInt is broken</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5nbzRleHBlcnQuY29tL2ZvcnVtcy9zaG93dGhyZWFkLnBocD90PTg1Nw==">JavaScript parseInt() bug</a></li>
</ol>
<p><span id="more-1060"></span></p>
<p>A propos XSS. Da ist mir auch das Mantra &#8220;Never trust User-Input&#8221; begegnet das ausf&#252;rlich ungef&#228;hr so lautet:</p>
<blockquote><p>Most developers worth their paycheque, I&#8217;m sure, know the common rules of &#8220;never trust the user&#8221;, such as &#8220;escape all user-supplied data on output,&#8221; &#8220;always validate user input,&#8221; and &#8220;don&#8217;t rely on something not in your control to do so (ie. Javascript cannot be trusted).&#8221; &#8220;Don&#8217;t output unescaped input&#8221; goes without saying, in most cases. Only a fool would &#8220;echo $_GET['param'];&#8221; (and we&#8217;re all foolish sometimes, aren&#8217;t we?).</p>
</blockquote>
<p>Copy&amp;paste f&#252;r diesen Beitrag von <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3NlYW5jb2F0ZXMuY29tL3hzcy13b2Vz">XSS-Woes</a></p>
<p>Das Snippet wird bei mir daf&#252;r genutzt eine Mail aus einem Ordner meines Mailprogramms zu fischen und auszuwerten. Ich verate nun nicht welches Programm ich verwende, nur soviel es geht problemlos mit <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3N5bHBoZWVkLnNyYW9zcy5qcC9lbi8=">Sypheed</a> und <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tb3ppbGxhLWV1cm9wZS5vcmcvZGUv">Thunderbird</a>. Wer Outlook im Einsatz hat, findet hier Hilfe zu den Pfaden: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL29mZmljZS5taWNyb3NvZnQuY29tL2RlLWRlL291dGxvb2svSFAwMzA4MjIxMDEwMzEuYXNweA==">Speicherorte von Outlook-Dateien</a></p>
<p>.</p>
<ol class="codelist">
<li class="tab0  odd"><code>$dir = "[Laufwerk]:\Dokumente und Einstellungen\[Benutzer]\Lokale Einstellungen\Anwendungsdaten\[Hersteller \ Mailprogramm]\[Mailordner]"; <br />// Pfad zum Speicherort der Mails</code></li>
<li class="tab0 even"><code>$files = glob(utf8_decode($dir).'*'); <br />// Datei in UTF-8 gespeichert</code></li>
<li class="tab0  odd"><code>//$files = glob($dir.'*'); <br />// Wenn datei in Ansi gespeichert ist </code></li>
<li class="tab0 even"><code>usort($files, create_function('$a,$b', 'return filemtime($a) - filemtime($b);')); <br />// Mails nach Datum sortiert</code></li>
<li class="tab0  odd"><code>$MailsCount = count($files); <br />// Alle Mails im Ordner z&#228;hlen </code></li>
<li class="tab0  odd"><code>$c = $MailsCount-$m; <br />\\ Mail $m von hinten</code></li>
<li class="tab0 even"><code>$string = file_get_contents($files[$c]); <br />// Inhalt der Mail mit der Index-Nummer xy fischen gehen </code></li>
</ol>
<p>Zur Auswertung der Mail sind die folgenden Code-Schnipsel sehr hilfreich:</p>
<ol class="codelist">
<li class="tab0  odd">//Singleline &#8211; Zeichenfolge bis Zeilenende<br />
<br /><code>preg_match_all('/(?<=Zeichenfolge)(.){0,}/',$string,$out[$k], PREG_OFFSET_CAPTURE);</code></li>
<li class="tab0  odd">//Multiline - Zeichenfolge 1 bis Zeichenfolge 2<br />
<br /><code>preg_match('/Zeichenfolge1(.*)Zeichenfolge2/msU',$string,$out);</code></li>
<li class="tab0  odd">//Leere Zeilen l&#246;schen:<br />
<br /><code>$string =  preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $string);</code></li>
</ol>
<p>Meine preg_match-Meriten holte ich mir von hier: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocC1yZWdleC5ibG9nc3BvdC5jb20v">PHP-Regex Blogspot</a></p>
<p>So das war es auch schon ... das hei&#223;t, wei&#223; jemand wie man bei einer Serie von preg_match_all &#252;ber die String-Position die Arrays so zusammen mischt, dass die Werte korrekt zugeordnet werden k&#246;nnen?</p>
<ol class="codelist">
<li class="tab0  odd">//FILTER WERTE AUS MAIL UND SCHREIBE IN ARRAY<br />
<code>for($k=0;$k<=6;$k++){</code></li>
<li class="tab1 even"><code>$werte[$k] = preg_match_all('/(?<='.$trenner[$k].')(.){0,}/',$string,$out[$k], PREG_OFFSET_CAPTURE);</code></li>
<li class="tab1 odd"><code> array_pop($out[$k]);</code><br />
/*AUSGABE IN ARRAY:<br />
   [0] Bestellung          [0]=> [0] wert [1] strpos<br />
   [1] Anzahl              [0]=> [0] wert [1] strpos<br />
   [2] Preis               [0]=> [0] wert [1] strpos<br />
   [3] Produkt-Bezeichnung-Typ1   [0]=> [0] wert [1] strpos<br />
   [4] Produkt-ID-Typ1            [0]=> [0] wert [1] strpos<br />
   [5] Produkt-Bezeichnung-Typ2 [0]=> [0] wert [1] strpos<br />
   [6] Produkt-ID-Typ2         [0]=> [0] wert [1] strpos<br />
   [7] ...-Typ3 ...etc.<br />
 */</li>
<li class="tab0 even"><code>}</code></li>
</ol>
<p>Das coole daran ist, dass die mit einer Zeile Zappzerapp die Mail ausgewertet ist. Das Dumme ist, nur &#252;ber den nummerischen Wert der String-Position sind die Bestellungen den Produkttypen zuzuordnen und da hatte ich bislang einen Knoten im Hirn. Zur Klarstellung alle Bestellungen die zwischen dem strpos-Wert von Produkt Index1 und Produkt Index2 (sprich: Prod1-strpos < Bestell-strpos > Prod2-strpos) ... sieht einfach genug aus, aber in der Umsetzung ist das mir aktuell noch zu hoch. F&#252;r alle die das interessiert, hier das Ganze noch einmal mit ein paar Beispieldaten.</p>
<ol class="codelist">
<li class="tab0  odd">
<pre>&lt;?php<code></code></li>
<li class="tab1  even">
<pre><code>
$date = "Date: Fri, 25 Mar 2010 04:42:52 +0000 (UTC)";

$string = &lt;&lt;&lt;STRING
Du hast heute auf dem Marktplatz Folgendes verkauft:

Frischwarename: &#196;pfel (Kg)
Frischware-ID: 7246899

Bestellnummer: 2437838-2525661
Anzahl: 1
Einzelprovision: 2.45 €

Bestellnummer: 2437838-2525661
Anzahl: 1
Einzelprovision: 2,45 €Bestellnummer: 2437838-2525661

Anzahl: 3
Einzelprovision: 2,45 €

Frischware: Orangen (Kg)
Frischware-ID: 5930826

Bestellnummer: 2446464-2534439
Anzahl: 1
Einzelprovision: 2,45 €

Frischwarename: Birnen (Kg)
Frischware-ID: 10115488

Bestellnummer: 2441306-2529176
Anzahl: 1
Einzelprovision: 2,45 EUR

K&#252;hlware: Frischk&#228;se (Kg)
K&#252;hlware-ID: 16739414-11401126

Bestellnummer: 2445140-2533086
Anzahl: 1
Einzelprovision: 2,45 €

K&#252;hlware: Schimmelk&#228;se (Kg)
K&#252;hlware-ID: 15054156-10369264

Bestellnummer: 2446425-2534400
Anzahl: 1
Einzelprovision: 2,45 €

K&#252;hlware: Butter (Kg)
K&#252;hlware-ID: 16739414-11401126

Bestellnummer: 2445140-2533086
Anzahl: 1
Einzelprovision: 2,45 €

K&#252;hlware: Streichwurst (Kg)
K&#252;hlware-ID: 15054156-10369264

Bestellnummer: 2446425-2534400
Anzahl: 1
Einzelprovision: 2,45 €
STRING;

$trenner = array(
"0" => "Bestellnummer: ",
"1" => "Anzahl: ",
"2" => "Einzelprovision: ",
"3" => "Frischwarename: ",
"4" => "Frischware-ID: ",
"5" => "K&#252;hlware: ",
"6" => "K&#252;hlware-ID: ");
 </code></pre>
</li>
<li class="tab0  odd">//FILTER WERTE AUS MAIL UND SCHREIBE IN ARRAY<br />
<code>for($k=0;$k<=6;$k++){</code></li>
<li class="tab1 even"><code>$werte[$k] = preg_match_all('/(?<='.$trenner[$k].')(.){0,}/',$string,$out[$k], PREG_OFFSET_CAPTURE);</code></li>
<li class="tab1 odd"><code> array_pop($out[$k]);</code><br />
/*AUSGABE IN ARRAY:<br />
   [0] Bestellung          [0]=> [0] wert [1] strpos<br />
   [1] Anzahl              [0]=> [0] wert [1] strpos<br />
   [2] Preis               [0]=> [0] wert [1] strpos<br />
   [3] Produkt-Bezeichnung-Typ1   [0]=> [0] wert [1] strpos<br />
   [4] Produkt-ID-Typ1            [0]=> [0] wert [1] strpos<br />
   [5] Produkt-Bezeichnung-Typ2 [0]=> [0] wert [1] strpos<br />
   [6] Produkt-ID-Typ2         [0]=> [0] wert [1] strpos<br />
   [7] ...-Typ3 ...etc.<br />
 */</li>
<li class="tab0 even"><code>} </code></li>
<li class="tab0 odd"><code>echo "&lt;pre&gt;\n"; </code></li>
<li class="tab0 even"><code>var_dump($out); </code></li>
<li class="tab0 odd"><code>echo "\n&lt;/pre&gt;"; ?&gt;</code></li>
</ol>
<p>So ich hoffe, ich konnte dem einen oder anderen nun helfen seine Mail auszuwerten und wer wei&#223;, vieleicht kommt ja auch noch zur kleinen Kniffelaufgabe mit dem Umsortieren des Arrays bzw. einem hilfreichen Index zur Zuordnung der Bestellungen zu den Waren. BTW. Ich habe eine L&#246;sung die mit <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2RlLnBocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLnByZWctbWF0Y2gucGhw">preg_match()</a></code>, <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2RlLnBocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLnN0cnBvcy5waHA=">strpos()</a></code> und <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2RlLnBocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLnN1YnN0ci5waHA=">substr()</a></code> den String unterteilt und den Array Abschnittsweise schreibt schon entsprechend zugeordnet.</p>
<p>Gesucht ist wirklich die Weiterverarbeitung des Arrays, der sich ergibt durch die For-Schleife mit <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2RlLnBocC5uZXQvbWFudWFsL2RlL2Z1bmN0aW9uLnByZWctbWF0Y2gtYWxsLnBocA==">preg_match_all()</a></code>. Nat&#252;rlich sind auch Weise Worte zur Performance willkommen, sollte hier preg_match_all() eine echte Performance-Wutz sein. Ich finde an der L&#246;sung vor allem die K&#252;rze und Einfachheit im Code cool.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=1060" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/1060/mailinhalte-fischen-mit-php-und-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Link-Tipp: PHP &#8211; Regular Expression</title>
		<link>http://blog.templaterie.de/1055/link-tipp-php-regular-expression/</link>
		<comments>http://blog.templaterie.de/1055/link-tipp-php-regular-expression/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 12:41:49 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[1001 Linktipp]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Link-Tipp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-Tutorials]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/?p=1055</guid>
		<description><![CDATA[Yessss! Endlich habe ich eine Seite gefunden mit einem guten Cheatsheet f&#252;r regular Expression. Hier zwei Links die einem wirklich weiterhelfen mit diesen Unget&#252;men, wobei der erste Link mir einen Tick mehr zusagt als der Zweite:

php-regex: Regular Expressions Tutorial
weblogtoolscollection: Regular Expressions Tutorial&#160;

Hier ist noch ein n&#252;tzlicher Link: Powerfull onliner &#8211; PHP leere Zeilen entfernen (RegEX [...]]]></description>
			<content:encoded><![CDATA[<p>Yessss! Endlich habe ich eine Seite gefunden mit einem guten Cheatsheet f&#252;r regular Expression. Hier zwei Links die einem wirklich weiterhelfen mit diesen Unget&#252;men, wobei der erste Link mir einen Tick mehr zusagt als der Zweite:</p>
<ol>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocC1yZWdleC5ibG9nc3BvdC5jb20v">php-regex: Regular Expressions Tutorial</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3dlYmxvZ3Rvb2xzY29sbGVjdGlvbi5jb20vcmVnZXgvcmVnZXgucGhwP3BhZ2U9Mw==">weblogtoolscollection: Regular Expressions Tutorial</a><br />&nbsp;</li>
</ol>
<p>Hier ist noch ein n&#252;tzlicher Link: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3Byb2dyYW1taW5nLW9uZWxpbmVycy5ibG9nc3BvdC5jb20vMjAwNi8wMy9yZW1vdmUtYmxhbmstZW1wdHktbGluZXMtcGhwLTI5Lmh0bWw=">Powerfull onliner &#8211; PHP leere Zeilen entfernen</a> (RegEX in der Praxis)</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=1055" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/1055/link-tipp-php-regular-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aufr&#228;umen mit Tabs und Javascript</title>
		<link>http://blog.templaterie.de/1034/aufraeumen-mit-tabs-und-javascript/</link>
		<comments>http://blog.templaterie.de/1034/aufraeumen-mit-tabs-und-javascript/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 12:54:59 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[1001 Linktipp]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Barrierearm]]></category>
		<category><![CDATA[boxen]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Linktipps]]></category>
		<category><![CDATA[Seite aufräumen]]></category>
		<category><![CDATA[tabs]]></category>
		<category><![CDATA[unobtrusive]]></category>
		<category><![CDATA[unobtrusive Javascript]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/?p=1034</guid>
		<description><![CDATA[Manchmal will man auf der Seite aufr&#228;umen, z.B. wenn man per iFrame sich bereits sehr komplexe zwei Seiten gegen&#252;berstellt, wie google-Transation und ein Formular das in diversen Sprachen ausgef&#252;llt werden soll. In meinem Fall waren das dann 22 iFrames jeweils 11 Mal gegen&#252;bergestellt. Also habe ich nach Tab-Navigation im Netz gesucht. Rausgekommen ist: 

25+ Useful [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal will man auf der Seite aufr&#228;umen, z.B. wenn man per iFrame sich bereits sehr komplexe zwei Seiten gegen&#252;berstellt, wie google-Transation und ein Formular das in diversen Sprachen ausgef&#252;llt werden soll. In meinem Fall waren das dann 22 iFrames jeweils 11 Mal gegen&#252;bergestellt. Also habe ich nach Tab-Navigation im Netz gesucht. Rausgekommen ist: </p>
<ul>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53ZWJkZXNpZ25ib290aC5jb20vMjUtdXNlZnVsLWphdmFzY3JpcHQtdGFiLW5hdmlnYXRpb24tc2NyaXB0cy8=">25+ Useful Javascript Tab Navigation Scripts</a></li>
<li><a herf="http://localhost/JS/toggletabs/Yetii%20-%20Yet%20(E)Another%20JavaScript%20Tab%20Interface%20Implementation%20_%20kminek.pl.htm"><strong>Yettii</strong> Yet (E)Another JavaScript Tab Interface Implementation.</a></li>
</ul>
<p>Nachdem unter den Treffern schon 25 Treffer &#252;ber eine Tabnavigation-Sammlung in einem Blog ist und unter den Suchtreffern auch noch andere die Liste wiederholen, konnte ich schon nach der ersten Ergebnisseite aufh&#246;ren zu suchen.</p>
<p>Zwei aus der Liste mit den 25 Varianten gibt es zwei die mich besonders beeindruckt haben. Zum Einsatz ziehe ich f&#252;r meinen Fall aber nur eines in Betracht.</p>
<p>Nodetraveller hat unter <strong><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5ub2RldHJhdmVsbGVyLmNvbS9zYW5kYm94L21vZHVsZVRhYnMvc3RhbmRhcmQucGhw">Module Tabs</a></strong> eine beeindruckende Funktionalit&#228;t der Tabs aber ohne Javascript zickte die Seite bei mir und war so gar nicht unobtrusive.</p>
<p>Einfach, &#252;bersichtlich, valide, funktional und vor allem unobtrusive erwies sich <strong><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5vbmxpbmV0b29scy5vcmcvdG9vbHMvZG9tdGFiZGF0YS8=">DOMTab &#8211; Navigation tabs with CSS and DOMscripting</a></strong> auf Onlinetools.org</p>
<p>Das hier noch aufgef&#252;hrte Tab-Menu YETTII fehlt in der Liste der 25, wurd in Smashing Magazin unter <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDA4LzA5LzExLzc1LXJlYWxseS11c2VmdWwtamF2YXNjcmlwdC10ZWNobmlxdWVzLw==">75 really useful Javascript techniques</a> gefeatured, weil es von der Funktionalit&#228;t ebenfall durchaus beeindruckt, aber wie auch schon die Tabnavigation von Nodetraveller nicht wirklich auf sein Javascript verzichten kann und f&#228;llt damit bei meinen strengen Vorgaben durch.</p>
<p>Ebenfalls beeindruckend, um seine Navigation rassig und n&#252;tzlich (weil informativ) aufzumotzen fand ich &#252;brigens das Beispiel von Dynamic Drive unter <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5keW5hbWljZHJpdmUuY29tL2R5bmFtaWNpbmRleDEvZGR0YWJtZW51Lmh0bQ==">DD Tab Menu (5 styles)</a> Das zublenden von Linkerl&#228;uterungen ohne die Informationen in die Linkliste reinzupressen macht es f&#252;r die meisten CMS-Tools leicht integrierbar.</p>
<p>Nachtrag: Seufz &#8211; nehmen wir noch die Liste mit den <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5ub3VwZS5jb20vamF2YXNjcmlwdC8zNy1ncmVhdC1hamF4LWNzcy10YWItYmFzZWQtaW50ZXJmYWNlcy5odG1s">37+ Great Ajax, CSS Tab-Based Interfaces</a> hier auf &#8230; auch wenn sich der eine oder andere Link nat&#252;rlich wiederholt und dann lass ich es aber besser gut sein und implementiere die DOMTABs in mein 11-sprachiges SPRD-Design-Publikations-Monstrum.</p>
<p>Nachtrag 2: Manche nachteile zeigen sich erst, wenn man die Demo im echten Leben umsetzen will, so verschluckt das DOMtab nested DIVs. DAs ist nat&#252;rlich ein b&#246;ses nogo. Aktuell arbeite ich wenig erfolgreich daran, das &#8220;getElmenetByID(DIV)&#8221; mit der Funktion getElementByClassName(el,class) (Fundstelle: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2phdmFzY3JpcHQveW91cl9mYXZvdXJpdGVfMQ==">Your Favourite getElementsByClassName</a>) im Script zu ersetzen. um nur noch DIVs auszublenden, die eine entsprechende Klasse mitf&#252;hren. Das Ergebnis stelle ich dann hier vor. Nat&#252;rlich k&#246;nnte man auch im Netz eine fertige L&#246;sung suchen, aber hey &#8230; ein Skript &#252;berarbeiten schult ungemein. Da will ich mich ein wenig mit Javascript qu&#228;len, zwischen all den anderen Aufgaben, die meine Zeitplanung aktuell bestimmen. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong style="background: #a00; color: #fff; padding: 2px;">Nachtrag 3:</strong> Plan&#228;nderung: nachdem ich mich erst wieder in objektorientiertes Javascript einarbeiten m&#252;sste und das Netz nicht selten irgendwo, Probleme l&#228;ngst gel&#246;st hat, habe ich mich dann doch noch einmal umgesehen und wurde f&#252;ndig. Unbtrusive und eine Klasse bestimmt was zum Inhalt der Registerkarte z&#228;hlt. Auch wenn ich noch nicht den Test gemacht habe. Der erste Eindruck ist jedenfalls beeindruckend und einen Linktipp wert:<br />&nbsp; <span class="randnotiz">&#8230; and the winner is &#8230;</span>
<p class="c announce">&nbsp;<br /><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5uZXR3YXZlci5jb20vMTcxL3N0YW5kYWxvbmUtdW5vYnRydXNpdmUtdGFicy1zY3JpcHQv">Standalone Unobtrusive Tabs Script: SimpleTabs By Komrade</a>.<br />&nbsp;</p>
<p>&#246;ps &#8230; &#246;h &#8230; dieser Winner muss auch &#252;berarbeitet werden. Siehe Kritik im nachfolgenden Artikel <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvMTA0MS9saW5rdGlwcC11bm9idHJ1c2l2ZS1qYXZhc2NyaXB0LXJ1bGVzLw==">&#8220;Unobtrusive JavaScript Rules&#8221;</a>. Jajajaja &#8230;. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=1034" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/1034/aufraeumen-mit-tabs-und-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-Shorthand &#8211; ein &#220;berblick (Linktipp)</title>
		<link>http://blog.templaterie.de/1019/php-shorthand-ein-ueberblick-linktipp/</link>
		<comments>http://blog.templaterie.de/1019/php-shorthand-ein-ueberblick-linktipp/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 14:32:24 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[1001 Linktipp]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/?p=1019</guid>
		<description><![CDATA[Nicht alles was ich da sah, erkannte ich als Shorthand, denn ich dachte, das sei die ganz normale Syntax, aber immerhin hier ist f&#252;r den Anf&#228;nger ein kleiner Einblick der wichtigsten Shorthand-Syntax-Beispiele: PHP Shorthand Syntax
Nachtrag: Das sollte ich hier wohl auch noch dazu packen, obwohl ich es dann noch weniger als Shorthand erkannte und auch [...]]]></description>
			<content:encoded><![CDATA[<p>Nicht alles was ich da sah, erkannte ich als Shorthand, denn ich dachte, das sei die ganz normale Syntax, aber immerhin hier ist f&#252;r den Anf&#228;nger ein kleiner Einblick der wichtigsten Shorthand-Syntax-Beispiele: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Rlc2lnbmVyZm9vLmNvbS9waHAtc2hvcnRoYW5kLXBocC1hbHRlcm5hdGl2ZS1hbHRlcm5hdGUtc3ludGF4LWEtcXVpY2tpZS5odG1sI2NvbnRlbnRzdGFydHNoZXJl">PHP Shorthand Syntax</a></p>
<p>Nachtrag: Das sollte ich hier wohl auch noch dazu packen, obwohl ich es dann noch weniger als Shorthand erkannte und auch als relative Unvollst&#228;ndig empfinde. Schlie&#223;lich wurde auf &#8220;<code>.=</code>&#8221; nicht eingegangen: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaXRlbGxpdGUub3JnL2luZGV4L3R1dG9yaWFscy1zdG9yeS1hY3Rpb24vc3RvcnkuNjAvdGl0bGUucGhwLXNob3J0aGFuZC1yZWZlcmVuY2U=">PHP Shorthand Reference</a></p>
<p>jajaja &#8230; alle vergessen die H&#228;lfte und unter PHP Shortcuts findet sich noch dieser Links: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5ldm9sdC5vcmcvdGhlc2UtdGhpbmdzLWkta25vdy1waHAtdGlwcw==">These Things I Know, PHP Tips</a></p>
<p>Gute Linktipps zum Thema Shorthand, Shortcuts zur Erg&#228;nzung der Linktipps hier werden gerne in den Kommentaren entgegengenommen.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=1019" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/1019/php-shorthand-ein-ueberblick-linktipp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tooltip mit b&#246;sem inline Javascript</title>
		<link>http://blog.templaterie.de/954/tooltip-mit-boesem-inline-javascript/</link>
		<comments>http://blog.templaterie.de/954/tooltip-mit-boesem-inline-javascript/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 01:17:42 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Attributes]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Nodes]]></category>
		<category><![CDATA[Popup]]></category>
		<category><![CDATA[Tooltipp]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/?p=954</guid>
		<description><![CDATA[Eigentlich bin ich ja ein absoluter Verfechter der Trennung von strukturiertem Inhalt, Aussehen und Benimm einer Website, aber in der Administration eines CMS ist es manchmal dann doch praktischer, wenn man mit dem alten onmouseover="" onmouseout="" im HTML-&#60;TAG&#62; arbeitet. Ein netter Tooltip an einer kryptischen Schaltfl&#228;che hilft dem Nutzer, der so oder so Javascript f&#252;r [...]]]></description>
			<content:encoded><![CDATA[<p>Eigentlich bin ich ja ein absoluter Verfechter der Trennung von strukturiertem Inhalt, Aussehen und Benimm einer Website, aber in der Administration eines CMS ist es manchmal dann doch praktischer, wenn man mit dem alten <code>onmouseover="" onmouseout=""</code> im HTML-&lt;TAG&gt; arbeitet. Ein netter Tooltip an einer kryptischen Schaltfl&#228;che hilft dem Nutzer, der so oder so Javascript f&#252;r das CMS aktiviert haben muss, bei der Bedienung des Werkzeugs.</p>
<p>Das ist zwar alter Kram aber weil ich das gerade gemacht habe und das eine oder andere erst Nachschlagen musste, will ich hier mein Ergebnis verposchten, f&#252;r Andere zum Finden:</p>
<h3>Tooltipp mit inline-Script</h3>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;a onClick="funktion()" </code></li>
<li class="tab0 even"><code>onmouseover="this.firstChild.style.display='block';" </code></li>
<li class="tab0 odd"><code>onmouseout="this.firstChild.style.display='none';" &gt;</code></li>
<li class="tab0 even"><code> &lt;spanstyle="position: absolute; width: 200px; height: auto; margin-top: 28px; margin-left: -100px; padding=".5em" border: 1px solid #aaa; color: #494949; background: #efefef; display: none;"&gt; </code></li>
<li class="tab0 odd"><code>Tooltip-Text&lt;/span&gt;&lt;img src="buttoff.gif" alt="Button-Text" </code></li>
<li class="tab0 even"><code> onmouseover="this.setAttribute('src','button.gif');" </code></li>
<li class="tab0  odd"><code> onmouseout="this.setAttribute('src','buttoff.gif');" /&gt;&lt;/a&gt; </code></li>
</ol>
<p>Und so kann das dann aussehen:</p>
<div id="message" style="display: none;">Funktions-Aufruf blihblahblubb &#8230;<br />
<input type="button" value="OK" onClick="document.getElementById('message').setAttribute('style','display:none;');" style="width: auto; height: auto; font-weight: bold; margin: 5px auto;" /></div>
<p style="position: relative; left: 230px; margin-bottom: 200px;"><a onClick="document.getElementById('message').setAttribute('style','display:block;width: 180px; height: 100px; position: absolute; margin: 0 150px; z-index: 5; border:3px solid #d00; background: #fff; color: #494949; text-align: center; padding: 2em;');" onmouseover="this.firstChild.style.display='block'; this.getElementByName['img'].setAttribute['src']='http://blog.templaterie.de/upload/btn_on.png';" onmouseout="this.firstChild.style.display='none';" ><span style="position: absolute; width: 17em; height: auto; margin-top: 55px; margin-left: -75px; padding: .5em; border: 1px solid #aaa; color: #494949; background: #efefef; text-align: center; display: none;">Viel Platz f&#252;r den Namen der Funktion und Anweisungen <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</span><img src="http://blog.templaterie.de/upload/btn_off.png" onMouseOver="this.setAttribute('src','http://blog.templaterie.de/upload/btn_on.png');" onMouseOut="this.setAttribute('src','http://blog.templaterie.de/upload/btn_off.png');" alt="Tool-Button" style="width: 60px; height: 60px;" /></a></p>
<p><del datetime="2010-03-13T02:10:30+00:00" style="color: #aaa;">
<p>Nachtrag: ach Gottchen, mein frisch aktualisierter Firefox mag nicht, was ich da gemacht habe. Nur gut, dass ich es nur f&#252;r den IE brauchte und hier auch keine R&#252;cksicht auf die veralteten Versionen genommen habe. Aber dann &#8230; der Firefox nimmt eh gruselige Entwicklung und ich mag ihn immer weniger. Ich wei&#223; wirklich nicht was der FF an diesen simplen DOM-Anweisungen auszusetzen hat. Meine G&#252;te. OK. Der Firefox wollte unbedingt auch noch Javascript blockieren, obwohl ich daf&#252;r ein Addon habe &#8230; jajaja Javascript ist b&#246;se und es macht Sinn es nur von Fall zu Fall zu gestatten. Einstellungen korrigiert — jetzt tut&#8217;s auch im FF.</p>
<p> </del></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=954" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/954/tooltip-mit-boesem-inline-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Step1 zur Archiv-Thumbgalerie via Custom fields Marke Eigenbau</title>
		<link>http://blog.templaterie.de/931/step1-zur-archiv-thumbgalerie-via-custom-fields-marke-eigenbau/</link>
		<comments>http://blog.templaterie.de/931/step1-zur-archiv-thumbgalerie-via-custom-fields-marke-eigenbau/#comments</comments>
		<pubDate>Thu, 29 May 2008 12:54:07 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[Funktion]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[thumbgalerie]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/931/step1-zur-archiv-thumbgalerie-via-custom-fields-marke-eigenbau/</guid>
		<description><![CDATA[Dank der Hilfe von Michael von Reichweite.de, konnte nun das Problem gel&#246;st werden und ich wei&#223; wieder, warum ich selbst nur in ganz kleinem Ma&#223; schon f&#252;r Kunden PHP anfasse, und hier lieber Fachm&#228;nner ins Boot hole. Aber es kommt, Leute es kommt. Ich werde peut a peut besser. Danke auch an Robert, dass er [...]]]></description>
			<content:encoded><![CDATA[<p>Dank der Hilfe von <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5yZWljaHdlaXRlLmRlLw==">Michael von Reichweite.de</a>, konnte nun das Problem gel&#246;st werden und ich wei&#223; wieder, warum ich selbst nur in ganz kleinem Ma&#223; schon f&#252;r Kunden PHP anfasse, und hier lieber Fachm&#228;nner ins Boot hole. Aber es kommt, Leute es kommt. Ich werde peut a peut besser. <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5iYXNpY3RoaW5raW5nLmRlL2Jsb2cvMjAwOC8wNS8yOC9waHAtcHJvYmxlbS0yLw==">Danke auch an Robert</a>, dass er mir die Hilfe von seinem Blog r&#252;bergeschickt hat.</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;? /* */</code></li>
<li class="tab1 even"><code>$dgal = get_posts('numberposts=0&#038;category=1');</code></li>
<li class="tab1  odd"><code>function getThumbs($stichwort, $dgal){</code></li>
<li class="tab2 even"><code>foreach($dgal as $post) : setup_postdata($post); </code></li>
<li class="tab2  odd"><code>$galArr =  explode("\n", get_post_meta($post-&gt;ID, "designthumbs", true));</code></li>
<li class="tab2 even"><code>foreach($galArr as $thepics){</code></li>
<li class="tab3  odd"><code>$dtharr =  explode(",", $thepics);</code></li>
<li class="tab3 even"><code>$pos = strpos($dtharr[1], $stichwort);</code></li>
<li class="tab3  odd"><code>if($pos===false){}else{</code></li>
<li class="tab4 even"><code>$galentry = '&lt;dl class="galerie2"&gt;'."\n\t".'&lt;dt&gt;&lt;span&gt;&lt;img src="http://franchie.de/ ... /uploads/'.$dtharr[0].'" alt="'.$dtharr[2].'"  /&gt;&lt;/span&gt;&lt;/dt&gt;'."\n\t".'&lt;dd&gt;&lt;a href="'.get_permalink($post-&gt;ID, '', true).'" title="'.the_title('','',false).'"&gt;Details ansehen&lt;/a&gt; /&lt;br /&gt;&lt;a href="http://franchie.spreadshirt.net/ ... /design/'.$dtharr[3].'" title="'.$dtharr[2].'"&gt;Will ich haben!&lt;/a&gt;&lt;/dd&gt;'."\n".'&lt;/dl&gt;';</code></li>
<li class="tab4  odd"><code>echo $galentry; </code></li>
<li class="tab4 even"><code>};</code></li>
<li class="tab3  odd"><code>};</code></li>
<li class="tab2 even"><code>endforeach;</code></li>
<li class="tab1  odd"><code>} //Funktion ende</code></li>
<li class="tab0 even"><code>//*/</code></li>
<li class="tab0  odd"><code>?&gt;</code></li>
</ol>
<p>Im Beitrag oder Seite folgt nun noch der Aufruf der Abfrage mit den jeweiligen Begriffen. Voila eine Thumb-Archivgalerie via Custom Fields.</p>
<ol class="codelist">
<li class="tab0 even"><code>&lt;h4&gt;Thumbs mit Menschen&lt;/h4&gt;</code></li>
<li class="tab0  odd"><code>&lt;? getThumbs('Menschen', $dgal); ?&gt;</code></li>
<li class="tab0 even"><code>&lt;h4&gt;Thumbs mit Tiere&lt;/h4&gt;</code></li>
<li class="tab0  odd"><code>&lt;? getThumbs('Tiere', $dgal); ?&gt;</code></li>
<li class="tab0  odd"><code> etc.</code></li>
</ol>
<p>Die eine oder andere Kleinigkeit muss bei <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZyYW5jaGllLmRl">Franchie.de</a> noch angepasst werden, dann wird diese Archiv-Galerie dort laufen. Also noch ein klein wenig Geduld &#8230; ach ja und irgendwann werde ich das noch mit Bl&#228;ttern durch die Thumbs ausbauen m&#252;ssen, denn je mehr es werden, desto problematischer wird es — wer will schon Warten bis 2000 Thumbs geladen sind <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Das ist also auch erst noch ein Provisorium, das aber sicherlich eine Weile h&#228;lt &#8230; d.h. ich muss noch ausprobieren wie die Page-Funktion von WP reagiert &#8230; <del datetime="2008-05-29T12:48:20+00:00">ggf.</del> vermutlich muss die Funktion in die Datei funktion.php verfrachtet werden (Jetzt erst Mal aber warten andere Aufgaben. Ich aktualisiere den Beitrag so bald ich kann).</p>
<p>BTW: Ich nehme f&#252;r die Bl&#228;tterfunktion jederzeit gerne Hilfe an, damit innerhalb einer Stichwortabfrage auch 1000de von Thumbs vorkommen d&#252;rfen.</p>
<p>Hier noch Mal was die Ausgangssituation war:</p>
<p>Ich habe in der Kategorie 1 ein Custom field namens â€˜designthumbs&#8217;. In dem Feld ist der Inhalt wie folgt:</p>
<p>Name des Thumbs_a, Stichwort1 Stichwort2 Stichwort3 etc, externerLink_a</p>
<p>Name des Thumbs_b, Stichwort1 Stichwort3 Stichwort7 etc, externerLink_b<br />
etc.</p>
<p>Diese Thumbs sollen in einer Galerie in einer Seite ausgegeben werden:</p>
<p>H3: Stichwort 1:<br />
============<br />
[Thumb_a]<br />
Postlink<br />
externer Link a</p>
<p>[Thumb_b]<br />
Postlink<br />
externer Link b
<p>H3 Stichwort 2<br />
============<br />
[Thumb_a]<br />
Postlink<br />
externer Link a</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=931" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/931/step1-zur-archiv-thumbgalerie-via-custom-fields-marke-eigenbau/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ein Archiv mit Thumbs via custom fields f&#252;r Wordpress</title>
		<link>http://blog.templaterie.de/930/ein-archiv-mit-thumbs-via-custom-fields-fuer-wordpress/</link>
		<comments>http://blog.templaterie.de/930/ein-archiv-mit-thumbs-via-custom-fields-fuer-wordpress/#comments</comments>
		<pubDate>Sun, 11 May 2008 14:13:31 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[ArchivÂ´]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[custom fields]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[Galerie]]></category>
		<category><![CDATA[Kategorie]]></category>
		<category><![CDATA[Pages]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[thumbnail]]></category>
		<category><![CDATA[While]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WP-Query]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/930/ein-archiv-mit-thumbs-via-custom-fields-fuer-wordpress/</guid>
		<description><![CDATA[Nachdem ich vor einigen Tagen meine erste eigene Wordpress.PHP-Erweiterung f&#252;r die Sidebar zusammengefriggelt hatte, ging ich munter daran, diesen netten praktischen Code-Schnipsel in eine Seite einzubinden und parallel die ganze Angelelgenheit ein wenig auszubauen. Doch was relativ schnell und einfach in die Sidebar einzubauen ging, erweist sich in der Seite in der erweiterten Form doch [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich vor einigen Tagen meine erste eigene Wordpress.PHP-Erweiterung f&#252;r die Sidebar zusammengefriggelt hatte, ging ich munter daran, diesen netten praktischen Code-Schnipsel in eine Seite einzubinden und parallel die ganze Angelelgenheit ein wenig auszubauen. Doch was relativ schnell und einfach in die Sidebar einzubauen ging, erweist sich in der Seite in der erweiterten Form doch als reichlich widerspenstig. Nach etlichen Try&#038;Error-Fehlschl&#228;gen und zahlreichen traurigen Teilerfolgen, habe ich es nun beinahe geschafft &#8230; beinahe, denn leider looped mein Script noch etwas &#252;bereifrig gleich mehrfach und listet die Liste damit mehrfach hintereinander. Ich will mit der Geschichte von Anfang an beginnen.<span id="more-930"></span></p>
<p>Um in in dem neuen T-Shirt-Projekt unter <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZyYW5jaGllLmRl">franchie.de</a> meinen Kunden praktische Suchhilfen und Sortierkriterien in die Hand zugeben, so dass Sie A) gezielt nach Motiven schauen k&#246;nnen und sich B) sich einen geordneten &#220;berblick &#252;ber die Motive verschaffen k&#246;nnen, habe ich in der Kategorie Motive ein Custom Field eingef&#252;hrt, das:</p>
<ol>
<li>den Namen des Vorschaubildes enth&#228;lt,</li>
<li>Stichw&#246;rter, die die Motive in Motivgruppen unterteilt, wie z.B. Humor, Menschen, Grafik, Plottdruck, Aktion-XY und</li>
<li>Link zur Shopseite mit den Shirts auf denen das Motiv abgebildet ist</li>
</ol>
<p>Wird in einem Beitrag mehr als ein Motiv vorgestellt, dann sind in dem Feld mehrere Zeilen mit den Angaben wie oben angezeigt. Aus diesen Angaben soll nun eine Galerie-Seite erstellt werden, also eine Archivseite mit Thumbs, die die <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvNTk2L2RsLWdhbGVyaWUtaW0tc3R5bGVzaGVldC1kZXMtdGhlbWVzLWdlc3BhYS1lcmdhZW56dC8=">Definitionlist-Formatierung</a> nutzt, die hier im Weblog vorgestellt wurde. Der Code ist &#228;hnlich dem Code f&#252;r die <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvOTI4L21pbmktdGh1bWJnYWxlcmllLWluLXdvcmRwcmVzcy12aWEtY3VzdG9tLWZpZWxkcy8=">Thumbnailgalerie in der Sidebar</a>, allerdings steckt in dem folgenden PHP-Code noch ein Bug und ich hoffe nun, dass sich mir jemand erbarmt und sagen kann, wo ich den Loop limitieren muss, so dass er nur einmal und nicht mehrmals durchl&#228;uft und Bilder und Links listet. Aaaahlsooooh &#8230; finde den Bug:</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;?php /* */ </code></li>
<li class="tab1 even"><code>$getThumbs = new WP_Query();</code></li>
<li class="tab1  odd"><code>$getThumbs-&gt;query('');</code></li>
<li class="tab1 even"><code>while ($getThumbs-&gt;have_posts()) : $getThumbs-&gt;the_post();</code></li>
<li class="tab2  odd"><code>$dgal = get_posts('category=1');</code></li>
<li class="tab2 even"><code>foreach($dgal as $post) : setup_postdata($post);</code></li>
<li class="tab3  odd"><code>$galArr =  explode("\n", get_post_meta($post-&gt;ID, "designthumbs", true));</code></li>
<li class="tab3 even"><code>foreach($galArr as $thepics){</code></li>
<li class="tab4 odd"><code>$dtharr =  explode(",", $thepics);</code></li>
<li class="tab4  even"><code>$pos = strpos($dtharr[1], 'Menschen');</code></li>
<li class="tab5 odd"><code>if($pos===false){}else{</code></li>
<li class="tab5  even"><code>$galentry = '&lt;dl class="galerie2"&gt;'."\n\t".'&lt;dt&gt;&lt;span&gt;&lt;img src="http://franchie.de/ ... /'.$dtharr[0].'" alt="'.$dtharr[2].'" /&gt;&lt;/span&gt;&lt;/dt&gt;'."\n\t".'&lt;dd&gt;&lt;a href="'.get_permalink($post-&gt;ID, '', true).'" title="'.the_title('','',false).'"&gt;Details ansehen&lt;/a&gt; /&lt;br /&gt;&lt;a href="http://franchie.spreadshirt.net/ ... /'.$dtharr[3].'" title="'.$dtharr[2].'"&gt;Will ich haben!&lt;/a&gt;&lt;/dd&gt;'."\n".'&lt;/dl&gt;';<br />//writing actual galery entry</code></li>
<li class="tab5 odd"><code>echo $galentry;</code></li>
<li class="tab4  even"><code>}</code></li>
<li class="tab3 odd"><code>} </code></li>
<li class="tab2  even"><code>endforeach;</code></li>
<li class="tab1 odd"><code>endwhile;</code></li>
<li class="tab1 even"><code>//*/</code></li>
<li class="tab1 even"><code>?&gt;</code></li>
</ol>
<p>OK, hier ist soweit ich den Programm-code verstehe:</p>
<ol>
<li>Ich er&#246;ffne ein PHP-Statement und f&#252;r den Fall das mein erster Versuch eine Fluppe ist, lege ich auch gleich das Auskommentieren mit dem Trick 17 an, bei dem ich in dieser Zeile nur den letzten Slash wegnehmen muss und schon ist der Block hier bis Zeile 18 auskommentiert.</li>
<li>Ich Greife auf die WP-Klasse Query zu und &#246;ffne eine neue Instanz</li>
<li>Ich schreibe das Ergebnis der Klasse in die Variable <code>$getThumbs</code>.</li>
<li>Ich &#246;ffne ein While-Schleifchen, das solange kringelt, solange es noch einen Post findet.</li>
<li>Ich isoliere alle Beitr&#228;ge die meiner Kategory entsprechen und schreibe diese in die Variable <code>$dgal</code></li>
<li>Ich &#246;ffne ein foreach-Schleifchen, das durch meine Eintr&#228;ge im Array <code>$dgal</code> enthalten sind</li>
<li>Ich fische aus diesem Array das/die Metafelder, die die Bezeichnung &#8220;designthumbs&#8221; f&#252;hren und zerlege hierbei gleich noch die Metainhalte in eine Array nach &#252;ber das Trennzeichen &#8220;Zeilenwechsel&#8221;</li>
<li>Den so gewonnen neuen Array wandere ich mit einer weiteren foreach-Schleife durch</li>
<li>In diesem Prozess zerlege ich die komma-spearierten Zeileneintr&#228;ge in seine Bestandteile und erhalte so Teil-Url des Thumbs, Stichw&#246;rter zum Thumb und die assoziierte Shopseite zum Thumb.</li>
<li>Ich definiere einen Selektoren.</li>
<li>Ich packe wie Aschenputtel &#252;ber die If-Klausel mit dem zuvor defnierten Selektor die Erbsen und die Linsen in zwei separate Sch&#228;lchen. Mit dem Ersten stelle ich nichts an mit dem Zweiten &#8230;</li>
<li>schreibe ich den eigentlichen Galerie-Eintrag in ein Variable. Dabei lerne ich, dass ich nun nicht <code>the_permalink()</code> (wie bei der Sidebar) verwenden darf sondern im Beitr&#228;gen <code>get_permalink()</code> verwenden muss und dann <code>the_title()</code> in beiden F&#228;llen stimmt &#8230; *Phrrrrz* Was nat&#252;rlich &#252;ber ich rate mal, weil schlie&#223;lich gibt es auch ein <code>get_post_meta()</code> zustande kommt und nicht weil im Codex oder in der deutschen Doku hier ein hilfreicher Hinweis st&#252;nde *grrrh*</li>
<li>Ich gebe die Variable aus meinem Erbsensch&#228;lchen per echo aus</li>
<li> und schlie&#223;e das IF</li>
<li>Ich schlie&#223;e foreach innen</li>
<li>Ich schlie&#223;e das foreach au&#223;en</li>
<li>Ich schlie&#223;e die while-schleife</li>
<li>Ich kommentiere den mehrzeiligen Kommentarschlu&#223; mit doppelten Slash aus, so dass dieser nicht st&#246;rt wenn oben in der ersten Zeile der mehrzeilige Kommentar noch geschlossen ist.</li>
<li>Ich schlie&#223;e mein PHP-Script</li>
</ol>
<p>Soweit man mich fragt, liegt das Problem in der While-Anweisung oder in der ersten foreach-Schleife &#8230; aber hier fehlt mir noch die Erfahrung mit Wordpress in Bezug auf PHP-Programmierung &#8230; *seufz*</p>
<p>Nachtrag: Sollte jemandem auffallen, das ich ein foreach nicht geschlossen habe &#8230; oder dass man hier auch ein Semikolons nach den geschweiften Klammern setzen kann &#8230; sollte? &#8230; das das war mir auch schon aufgefallen mit dem Ergebnis, dass die von den f&#252;nf Eintr&#228;gen mit entsprechendem custom field dieses nicht mehr nur f&#252;nf Mal gelistet wird, sondern freundlich 25 Mal. Sch&#228;tze das Problem liegt an den geschachtelten foreach-Schleifen &#8230; ich krieg die Meise &#8230; *piep piep piep*</p>
<p>Nachtrag:<strong> Fehler in Fehlerhaftes einbauen, die helfen den Fehler zu verstehen ist was Feines.</strong></p>
<p>Alles was das PHP-Skript aus der Sidebar brauchte, um in der Page zu funktionieren, war die Anderung von the_permalink() in get_permalink().</p>
<p>Zum Fehler verstehen: Beim rumr&#228;tseln und mit klassichem Anf&#228;nger-Unverstand und in bester copy&#038;paste-Mentalit&#228;t aus diversen Codeschnipseln, hatte ich erst einen eigenen Loop aufgemacht — die whileschleife und hatte dann unabh&#228;ngig von der Whileschleife in jedem Durchgang eine foreach-Schleife exerziert, die ebenfalls alle Posts herauszieht und dann wurde auch brav in jeder Schleife alles aufgedr&#246;selt und und angezeigt, was dann zu f&#252;nf eintr&#228;gen f&#252;hrte. <br /><strong style="background: #a00; color: #fff; padding: 2px;">Loopidooh!</strong> <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Die <del datetime="2008-05-28T20:45:40+00:00">L&#246;sung</del> Nope &#8230; noch nicht die L&#246;sung f&#252;r die Thumb-Galerie:</h3>
<p>Wer also eine solche Thumbliste f&#252;r sein Weblog m&#246;chte hier ist der bereinigte Code:</p>
<ol class="codelist">
<li class="tab0  even"><code>&lt;?php /* */ </code></li>
<li class="tab2  odd"><code>$dgal = get_posts('category=1');</code></li>
<li class="tab2 even"><code>foreach($dgal as $post) : setup_postdata($post);</code></li>
<li class="tab3  odd"><code>$galArr =  explode("\n", get_post_meta($post-&gt;ID, "designthumbs", true));</code></li>
<li class="tab3 even"><code>foreach($galArr as $thepics){</code></li>
<li class="tab4 odd"><code>$dtharr =  explode(",", $thepics);</code></li>
<li class="tab4  even"><code>$pos = strpos($dtharr[1], 'Menschen');</code></li>
<li class="tab5 odd"><code>if($pos===false){}else{</code></li>
<li class="tab5  even"><code>$galentry = '&lt;dl class="galerie2"&gt;'."\n\t".'&lt;dt&gt;&lt;span&gt;&lt;img src="http://franchie.de/ ... /'.$dtharr[0].'" alt="'.$dtharr[2].'" /&gt;&lt;/span&gt;&lt;/dt&gt;'."\n\t".'&lt;dd&gt;&lt;a href="'.get_permalink($post-&gt;ID, '', true).'" title="'.the_title('','',false).'"&gt;Details ansehen&lt;/a&gt; /&lt;br /&gt;&lt;a href="http://franchie.spreadshirt.net/ ... /'.$dtharr[3].'" title="'.$dtharr[2].'"&gt;Will ich haben!&lt;/a&gt;&lt;/dd&gt;'."\n".'&lt;/dl&gt;';<br />//writing actual galery entry</code></li>
<li class="tab5 odd"><code>echo $galentry;</code></li>
<li class="tab4  even"><code>}</code></li>
<li class="tab3 odd"><code>} </code></li>
<li class="tab2  even"><code>endforeach;</code></li>
<li class="tab1 odd"><code>//*/</code></li>
<li class="tab1 even"><code>?&gt;</code></li>
</ol>
<p><strong>Noch immer steh ich auf dem Schlauch und kann zwar schon eine Galerie f&#252;r recent Thumbs anlegen, nicht aber wie einem Archiv jeweils alle Ausfiltern, die ein Kriterium erf&#252;llen und dann die n&#228;chste Liste machen, die ein anderes Kriterium erf&#252;llen und die n&#228;chste und die n&#228;chste &#8230; </strong></p>
<p>F&#252;r Hinweise die mich auf dem rechte Pfad leiten also immer noch dankbar</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=930" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/930/ein-archiv-mit-thumbs-via-custom-fields-fuer-wordpress/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Mini-Thumbgalerie in Wordpress via Custom Fields</title>
		<link>http://blog.templaterie.de/928/mini-thumbgalerie-in-wordpress-via-custom-fields/</link>
		<comments>http://blog.templaterie.de/928/mini-thumbgalerie-in-wordpress-via-custom-fields/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 04:19:22 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[get_custom_fields]]></category>
		<category><![CDATA[meta_data]]></category>
		<category><![CDATA[Minigalerie]]></category>
		<category><![CDATA[Sidebar]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/928/mini-thumbgalerie-in-wordpress-via-custom-fields/</guid>
		<description><![CDATA[Nach ein wenig try&#38;error und mit der Hilfe einer Vorlage habe ich nun auf Franchie.de eine kleine Galerie in der Sidebar, die die j&#252;ngsten sechs Motive, genauer die j&#252;ngsten sieben T-Shirtmotive auf der Startseite. Das allerneuste Motiv ist in der rechte Spalte unter dem Feature, die weiteren sechs Motive erscheinen als Thumbgalerie. Nachdem ich &#252;ber [...]]]></description>
			<content:encoded><![CDATA[<p>Nach ein wenig try&amp;error und mit der <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53cGRlc2lnbmVyLmNvbS8yMDA3LzA2LzA1L29uZS13YXktdG8tdXNlLWN1c3RvbS1maWVsZHMv">Hilfe einer Vorlage</a> habe ich nun auf <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZyYW5jaGllLmRl">Franchie.de</a> eine kleine Galerie in der Sidebar, die die j&#252;ngsten sechs Motive, genauer die j&#252;ngsten sieben T-Shirtmotive auf der Startseite. Das allerneuste Motiv ist in der rechte Spalte unter dem Feature, die weiteren sechs Motive erscheinen als Thumbgalerie. Nachdem ich &#252;ber das <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5kZXItcHJpbnouY29tLzIwMDgvMDEvMjAvd29yZHByZXNzLW1hZ2F6aW5lLXN0eWxlLXRoZW1lLWJyYW5mb3JkbWFnYXppbmUv">Branford Magazin Theme</a> die Custom fields etwas genauer unter die Lupe nahm, da war der Weg nicht weit zu den Motivbeitr&#228;gen eine Thumbgalerie zu generieren. Wie immer war Google der erste Weg. Die meisten Ergebnisse brachten mich wenig weiter, insbesondere wenn man mit der Aussage, dass Custom fields nur im Loop funktionieren nicht viel anfangen kann.</p>
<p>Und so sieht das Ergebnis aus:</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;h3&gt;Die j&#252;ngsten sechs Motive&lt;/h3&gt;</code></li>
<li class="tab0 even"><code>&lt;ul class="sixthumbs"&gt;&lt;li&gt;</code></li>
<li class="tab1  odd"><code>&lt;?php </code></li>
<li class="tab1 even"><code>$motive = get_posts('numberposts=7&#038;category=12'); array_shift($motive); foreach($motive as $post) : setup_postdata($post); </code></li>
<li class="tab1  odd"><code>$thumbsArr =  explode("|", get_post_meta($post-&gt;ID, "designthumbs", true));</code></li>
<li class="tab1 even"><code>$cth = count($thumbsArr);</code></li>
<li class="tab1  odd"><code>srand((float) microtime() * 10000000);</code></li>
<li class="tab1 even"><code>$rand_keys = array_rand($thumbsArr, $cth);</code></li>
<li class="tab1  odd"><code>if($cth&gt;1){</code></li>
<li class="tab2 even"><code>$dthpArr = explode(',', $thumbsArr[$rand_keys[0]]);</code></li>
<li class="tab2  odd"><code>}else {$dthpArr = explode(',', $thumbsArr[0]);}</code></li>
<li class="tab1 even"><code>?&gt;</code></li>
<li class="tab1  odd"><code>&lt;a href="&lt;?php the_permalink(); ?&gt;" title="&lt;?php the_title(); ?&gt;"&gt;&lt;img src="&lt;?php bloginfo('url'); echo '/'; echo get_option('upload_path'); echo '/';</code></li>
<li class="tab1 even"><code>echo $dthpArr[0]; ?&gt;" alt="&lt;?php the_title(); ?&gt;" /&gt;&lt;/a&gt;</code></li>
<li class="tab1  odd"><code>&lt;?php</code></li>
<li class="tab0 even"><code>endforeach;  </code></li>
<li class="tab0  odd"><code>?&gt; </code></li>
<li class="tab0 even"><code>&lt;span style="clear: left;"&gt;&nbsp;&lt;/span&gt; </code></li>
<li class="tab0  odd"><code>&lt;/li&gt;&lt;/ul&gt; </code></li>
</ol>
<p>Zun&#228;chst werden die Datenbank-Eintr&#228;ge (der Loop) in die Variable <code>$motive</code> geschrieben.  Au&#223;erhalb eines Posts oder einer Page, liefert  <code>get_posts()</code> alle Eintr&#228;ge, innerhalb eines Posts oder einer Page jeweils die Inhalte des Posts oder der Page. Der Loop wird in der Sidebar daher mit der Anzahl der j&#252;ngsten Beitr&#228;ge und der Einschr&#228;nkung auf die Kategorie 12 auf das gew&#252;nschte Segement der Datenbank reduziert. Nachdem der erste Beitrag bereits auf der Startseite gesondert hervorgehoben wurde, macht es Sinn den j&#252;ngsten Eintrag wieder wegzunehmen. Dies geschieht mit <code>array_shift()</code> Anschlie&#223;end wird mit <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2NvZGV4LndvcmRwcmVzcy5vcmcvVGVtcGxhdGVfVGFncy9nZXRfcG9zdHM=">foreach ...</a></code> der Array mit den Datenbankeinr&#228;gen abgearbeitet. Damit ist der Loop quasi offen und man kann die Funktion <code>get_post_meta()</code> einwerfen. Da mein Feld ein Array ist, mit dem sich eine ganze Reihe Informationen zum Motiv aufarbeiten l&#228;sst, schreibe ich die Daten in einen Array und da pro Eintrag nicht immer nur ein Motiv vorgestellt wird, es aber nicht sinnvoll ist, jedes Einzelmotiv bzw. jede Motivvariation in der kleinen &#220;bersicht anzuzeigen und den Rahmen damit sprengen, wird die kleine Thumb-Sammlung noch einmal aufgedr&#246;selt und &#252;ber <code>array_rand()</code> wird jeweils ganz zuf&#228;llig eines aus der kleinen Sammlung herausgefischt und angezeigt. Das Customfield hei&#223;t in meinem Fall &#8216;designthumbs&#8217;</p>
<p>Das ist nun nicht mehr schwer analog nachzubauen und kann so allerlei Dinge anzeigen lassen. Viel Spass beim Aufmotzen des eigenen Themes. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Und Danke an meine beiden Vorarbeiter, ohne deren Hilfe ich vermutlich noch lange den Codex anstarren w&#252;rde und nicht w&#252;sste, wovon die Rede ist. Noch immer wei&#223; ich z.B. nicht was hinter der Funktion steckt.</p>
<p>Mit dieser Vorlage ist es nicht mehr sehr schwer, jedwede &#220;bersichten zusammenzutragen.                                                                                                                               Ich kann an dieser Stelle nur noch viel Spa&#223; w&#252;nschen, beim Verbiegen des eigenen Themes.</p>
<p>PS: hier ist noch ein Link zu <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BlcmZvcm1hbmNpbmcuY29tL3dvcmRwcmVzcy10aXBzL2phenoteW91ci1zaXRlLTI4LXdheXMtdXNlLXdvcmRwcmVzcy1jdXN0b20tZmllbGRz">28 Wege wie man sein Wordpress-Blog mit Custom fields aufpeppen</a> kann.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=928" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/928/mini-thumbgalerie-in-wordpress-via-custom-fields/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Die Krux mit dem Eindeutschen</title>
		<link>http://blog.templaterie.de/923/die-krux-mit-dem-eindeutschen/</link>
		<comments>http://blog.templaterie.de/923/die-krux-mit-dem-eindeutschen/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 02:38:35 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Eindeutschen]]></category>
		<category><![CDATA[Linkstruktur]]></category>
		<category><![CDATA[Stichwort]]></category>
		<category><![CDATA[Tag]]></category>
		<category><![CDATA[Technorati]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WP-Plugin]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/923/die-krux-mit-dem-eindeutschen/</guid>
		<description><![CDATA[In Silkester.de verwende ich das Plugin &#8220;Technorati Tags&#8220;, das den Loop von Wordpress verwendet. Intern in Wordpress habe ich &#8220;tag&#8221; durch &#8220;Stichwort&#8221; ersetzt, was im Deutschen durchaus Sinn macht, dabei aber nicht bedacht, dass das Plugin nun die Link-Struktur f&#252;r Silkester auf Technorati anwendet und damit in einem 404 bei Technorati aufl&#228;uft. Die Quick&#038;Dirty-Methode ist [...]]]></description>
			<content:encoded><![CDATA[<p>In Silkester.de verwende ich das Plugin &#8220;<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2dvcm1mdWwuY29tL3Byb2plY3RzL3dwMjMtdGVjaG5vcmF0aS10YWdzLw==">Technorati Tags</a>&#8220;, das den Loop von Wordpress verwendet. Intern in Wordpress habe ich &#8220;tag&#8221; durch &#8220;Stichwort&#8221; ersetzt, was im Deutschen durchaus Sinn macht, dabei aber nicht bedacht, dass das Plugin nun die Link-Struktur f&#252;r Silkester auf Technorati anwendet und damit in einem 404 bei Technorati aufl&#228;uft. Die Quick&#038;Dirty-Methode ist es, einfach &#252;ber <code><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2RlLnBocC5uZXQvc3RyX3JlcGxhY2U=">str_replace</a></code> an der Stelle, wo der Link erzeugt wird einzubinden und &#8220;stichwort&#8221; gegen &#8220;tag&#8221; auszutauschen. Besser w&#228;re es, den Feld-Inhalt zu verwenden, das herauszukramen ist mir jetzt zu m&#252;hsam. Es ist unwahrscheinlich, das ich bei <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3NpbGtlc3Rlci5kZS9ibG9n">Silkester erz&#228;hlt &#8230;</a> die interne Url zu den jeweiligen Stichworten noch einmal &#228;ndere. F&#252;r da n&#228;chste Kundenprojekt werde ich es dann aber wohl heraussuchen m&#252;ssen.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=923" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/923/die-krux-mit-dem-eindeutschen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: onLoad oder delegate?</title>
		<link>http://blog.templaterie.de/887/javascript-onload-oder-delegate/</link>
		<comments>http://blog.templaterie.de/887/javascript-onload-oder-delegate/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 05:32:32 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Behaviour]]></category>
		<category><![CDATA[event-delegation]]></category>
		<category><![CDATA[event-handler]]></category>
		<category><![CDATA[Exposure]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Ladezeit]]></category>
		<category><![CDATA[Nonstandard]]></category>
		<category><![CDATA[onLoad]]></category>
		<category><![CDATA[Scriptfehler]]></category>
		<category><![CDATA[Standard]]></category>
		<category><![CDATA[unobtrusive Javascript]]></category>
		<category><![CDATA[Vollständigkeit]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/887/javascript-onload-oder-delegate/</guid>
		<description><![CDATA[Sei kein Esel, delegate
Das so scheint das Fazit zu sein, dass ich meiner j&#252;ngsten Suche nach dem onLoad-Script entnehme. Es began mit einem Beitrag vom Mai 2004: addLoadEvent von Simon Wilson. Dann begegnete mir eine &#220;bersicht des Onloads Stand 30. Januar 2007: The window.onload problem (still) von Peter Micheaux. Lesenswert auch wenn einige Bahnh&#246;fe f&#252;r [...]]]></description>
			<content:encoded><![CDATA[<h3><img src='http://blog.templaterie.de/upload/esel_93296381_9ab40c76f8_m.jpg' alt='Onload? Sei kein Esel, delegate!' class="leftalign"/>Sei kein Esel, delegate</h3>
<p>Das so scheint das Fazit zu sein, dass ich meiner j&#252;ngsten Suche nach dem onLoad-Script entnehme. Es began mit einem Beitrag vom Mai 2004: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3NpbW9ud2lsbGlzb24ubmV0LzIwMDQvTWF5LzI2L2FkZExvYWRFdmVudC8=">addLoadEvent</a> von Simon Wilson. Dann begegnete mir eine &#220;bersicht des Onloads Stand 30. Januar 2007: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BldGVyLm1pY2hhdXguY2EvYXJ0aWNsZS81NTM=">The window.onload problem (still)</a> von Peter Micheaux. Lesenswert auch wenn einige Bahnh&#246;fe f&#252;r mich dabei sind. Peter Micheaux publiziert im August des selben Jahres noch einmal zum Thema: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BldGVyLm1pY2hhdXguY2EvYXJ0aWNsZS8zNzUy">The window.onload Problem &#8211; Really Solved!</a>, Aha. Interessant &#8230; und am Ende der Kommentare st&#246;&#223;t man auf eine Kommentar von Diego Perini, die besagt &#8230; Pfeiff auf onLoad-Funktionen und delegier: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2phdmFzY3JpcHQubndib3guY29tL05XRXZlbnRzL2RlbGVnYXRlcy5odG1s">Delegates</a> (Da s&#228;mtliche verlinkten Beispiele seiner vorherigen Kommentare verschwunden sind, macht es Sinn, sich die Seite irgendwo lokal f&#252;r den zuk&#252;nftigen Zugriff zu speichern, bevor auch diese Seite vom 19. Februar 2008 sich in Luft aufl&#246;st.). Ob und in wie weit es wirklich Sinn macht, auf den Eventhandler zu verzichten und schlicht alles zu delegieren, kl&#228;rt Christian Heilman in seinem Beitrag: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ljYW50LmNvLnVrL3NhbmRib3gvZXZlbnRkZWxlZ2F0aW9uLw==">Vergleich Eventhandling und Eventdelegation</a></p>
<p>Schaut man sich weiter um, dann scheint die Delegation aktuell im Gespr&#228;ch zu sein. Noch weitere Beitr&#228;ge:</p>
<ol>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2dzLnN1bi5jb20vZ3JlaW1lci9lbnRyeS9hX2xvb2tfYXRfb3VyX25ldw==">A Look at Sun.COM&#8217;s New Event Delegation Library</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3JlbXlzaGFycC5jb20vMjAwOC8wMi8wMy9wb29yLW1hbnMtamF2YXNjcmlwdC1iZWhhdmlvdXJzLw==">Poor man&#8217;s JavaScript Behaviours</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5kYW53ZWJiLm5ldC8yMDA4LzIvOC9ldmVudC1kZWxlZ2F0aW9uLW1hZGUtZWFzeS1pbi1qcXVlcnk=">Event-Delegation made easy in jQuery</a></li>
</ol>
<p>Bildquelle <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5mbGlja3IuY29tL3Bob3Rvcy9qYXh4b24vOTMyOTYzODEv">Esel auf flickr.com vom User Jaxxon</a></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=887" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/887/javascript-onload-oder-delegate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linktipps: PHP</title>
		<link>http://blog.templaterie.de/871/linktipps-php/</link>
		<comments>http://blog.templaterie.de/871/linktipps-php/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 03:28:57 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[1001 Linktipp]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-Optimierung]]></category>
		<category><![CDATA[PHP-Sicherheit]]></category>
		<category><![CDATA[PHP-Snippets]]></category>
		<category><![CDATA[PHP-Tutorials]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/871/linktipps-php/</guid>
		<description><![CDATA[Quellen, Listen, Snippets und gute Ratschl&#228;ge aus dem Netz:

100+ n&#252;tzliche PHP-Codeschnipsel
40 Tipps seine PHP-Skripte zu optimieren
20+ PHP-Ressourcen (Aus der mashable PHP-Toolbox)
25 PHP template engines mit Kurzbeschreibung
6 Anlaufstellen f&#252;r werdende PHP-Programmierer
Der PHP Sicherheitslotse vom PHP Security Consortium

So und damit ist mit der Reihe 1001 Linktipp-Overload f&#252;r heute erst mal Schluss  
Einen hab ich noch, einen [...]]]></description>
			<content:encoded><![CDATA[<p>Quellen, Listen, Snippets und gute Ratschl&#228;ge aus dem Netz:</p>
<ul>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qb25hc2pvaG4uZGUvc25pcHBldHMvcGhwLw==">100+ n&#252;tzliche PHP-Codeschnipsel</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3JlaW5ob2xkd2ViZXIuY29tLz9wPTM=">40 Tipps seine PHP-Skripte zu optimieren</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL21hc2hhYmxlLmNvbS8yMDA3LzA5LzI2L3BocC10b29sYm94Lw==">20+ PHP-Ressourcen (Aus der mashable PHP-Toolbox)</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53aGVucGVuZ3VpbnNhdHRhY2suY29tLzIwMDYvMDcvMTkvcGhwLXRlbXBsYXRlLWVuZ2luZS1yb3VuZHVwLz8xPTE=">25 PHP template engines mit Kurzbeschreibung</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL25ld3RocmVhZC5vcmcvP3A9Mjc=">6 Anlaufstellen f&#252;r werdende PHP-Programmierer</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BocHNlYy5vcmcvcHJvamVjdHMvZ3VpZGUv">Der PHP Sicherheitslotse vom PHP Security Consortium</a></li>
</ul>
<p>So und damit ist mit der Reihe 1001 Linktipp-Overload f&#252;r heute erst mal Schluss <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Einen hab ich noch, einen hab ich noch: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53aGVucGVuZ3VpbnNhdHRhY2suY29tLzIwMDcvMDYvMDQvNS1jb29sLXRoaW5ncy15b3UtY2FuLWRvLXdpdGgtd2luZG93cy1hbmQtcGhwLw==">5 Coole Sachen machen mit Windows und PHP</a></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=871" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/871/linktipps-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linktipps: Intensivkurs Javascript</title>
		<link>http://blog.templaterie.de/868/linktipps-intensivkurs-javascript/</link>
		<comments>http://blog.templaterie.de/868/linktipps-intensivkurs-javascript/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 02:01:50 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[1001 Linktipp]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Javascript-Resourcen]]></category>
		<category><![CDATA[Linktipps]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/868/linktipps-intensivkurs-javascript/</guid>
		<description><![CDATA[&#8230; und kommen wir nun zu Javascript. Zur Einstimmung erst einmal der ultimative Rahmen f&#252;r jeden Startrek-Fan: Through Space 2 (Source) und noch ein wenig Daddeln mit JS bevor es Ernst wird: Das Labyrinth
Javascript 

Crossbrowser scripten via feature-detection (&#8230; mehr von jener Quelle / Google-group: comp.lang.javascript, Autor Richard Comford)

Ressourcen:

Der Top-Link: comp.lang.javascript FAQ
Wo sind all die [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; und kommen wir nun zu Javascript. Zur Einstimmung erst einmal der ultimative Rahmen f&#252;r jeden Startrek-Fan: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5saXRvdGVzLmRlbW9uLmNvLnVrL2V4YW1wbGVfc2NyaXB0cy9zdGFyRmllbGRfM0QuaHRtbA==">Through Space 2</a> (<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5saXRvdGVzLmRlbW9uLmNvLnVrL2V4YW1wbGVfc2NyaXB0cy9zdGFyRmllbGRfM0Rfc3JjLmh0bWw=">Source</a>) und noch ein wenig Daddeln mit JS bevor es Ernst wird: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL3ByaW50L2FydC1zY2llbmNlLWphdmFzY3JpcHQ=">Das Labyrinth</a></p>
<h4>Javascript </h4>
<ul>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qaWJiZXJpbmcuY29tL2ZhcS9mYXFfbm90ZXMvbm90X2Jyb3dzZXJfZGV0ZWN0Lmh0bWw=">Crossbrowser scripten via feature-detection</a> (<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5saXRvdGVzLmRlbW9uLmNvLnVrL2pzX2luZm8vaW5kZXguaHRtbA==">&#8230; mehr von jener Quelle</a> / <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3Vwcz9xPWdyb3VwOmNvbXAubGFuZy5qYXZhc2NyaXB0K2F1dGhvcjpSaWNoYXJkJTIwQ29ybmZvcmQmIzAzODtzY29yaW5nPWQ=">Google-group: comp.lang.javascript, Autor Richard Comford</a>)</li>
</ul>
<p>Ressourcen:</p>
<ul>
<li><strong  style="background: #a00; color: #fff; padding: 2px;">Der Top-Link:</strong> <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ppYmJlcmluZy5jb20vZmFxLyNGQVE0XzM5">comp.lang.javascript FAQ</a></li>
<li>Wo sind all die Referenzlisten zu Javascript? <br />Da kann man nachschlagen: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jcm9ja2ZvcmQuY29tL2phdmFzY3JpcHQv">Crockfords Javascript-Liste</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Vsb3F1ZW50amF2YXNjcmlwdC5uZXQvY29udGVudHMuaHRtbA==">Eloquent Javascript</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2RldmVsb3Blci55YWhvby5jb20vamF2YXNjcmlwdC8=">Yahoo Developer Center Javascript</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL2NvbXAubGFuZy5qYXZhc2NyaXB0L2ZlZWRz">Mit halben Auge die Google.Group comp.lang.javascript verfolgen per Feed kann nicht schaden</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3NwZWNreWJveS5jb20vMjAwOC8wMi8xMC90aGUtdG9wLTQwLWZyZWUtYWpheC1qYXZhc2NyaXB0LWNvZGUtZm9yLXdlYi1kZXNpZ25lcnMv">40 freie Ajax- und Javascript-Scripts</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5ub3VwZS5jb20vamF2YXNjcmlwdC9iZXN0LW9mLWFqYXgtZGh0bWwtYW5kLWphdmFzY3JpcHQtcGFydDEuaHRtbA==">NoupÃ©s bestOf-Liste in DHMTL, AJAX und Javascript (Teil 1)</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53aGVucGVuZ3VpbnNhdHRhY2suY29tLzIwMDcvMDgvMjAvNS13YXlzLXRvLXNwZWVkdXAtamF2YXNjcmlwdC8=">5 Wege Javascript zu beschleunigen</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ljYW50LmNvLnVrL2FydGljbGVzL3NldmVuLXJ1bGVzLW9mLXVub2J0cnVzaXZlLWphdmFzY3JpcHQv">7 Regeln zu barrierearmes Javascript</a></li>
</ul>
<p>F&#252;r Fortgeschrittene vermutlich interessant (mir derzeit schlicht noch zu komplex und ~iziert): <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zdmVuZHRvZnRlLmNvbS9jb2RlL2N1cnJpZWRfamF2YXNjcmlwdC8=">Curried Javascript</a></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=868" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/868/linktipps-intensivkurs-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Index 0 in Arrays und die humanoide Syntax</title>
		<link>http://blog.templaterie.de/856/php-index-0-in-arrays-und-die-humanoide-syntax/</link>
		<comments>http://blog.templaterie.de/856/php-index-0-in-arrays-und-die-humanoide-syntax/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 20:13:20 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Float]]></category>
		<category><![CDATA[for-Schleife]]></category>
		<category><![CDATA[Indizierung]]></category>
		<category><![CDATA[integer]]></category>
		<category><![CDATA[Key]]></category>
		<category><![CDATA[Lektion 1]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-Tutorial]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Variablen]]></category>
		<category><![CDATA[Variablentypen]]></category>
		<category><![CDATA[Zählen]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/856/php-index-0-in-arrays-und-die-humanoide-syntax/</guid>
		<description><![CDATA[Ich wette, der Programmierer, der sich das mit dem Index &#8220;0&#8243; f&#252;r das erste Element im Array ausdachte, fand das tierisch clever und am&#252;sant. Und weil das in der Welt der Programmierer fortan nun einmal so war und immer noch ist, dass man das erste Element eines Arrays mit $arrayVariable[0] anspricht und das letzte folglich [...]]]></description>
			<content:encoded><![CDATA[<p>Ich wette, der Programmierer, der sich das mit dem Index &#8220;0&#8243; f&#252;r das erste Element im Array ausdachte, fand das tierisch clever und am&#252;sant. Und weil das in der Welt der Programmierer fortan nun einmal so war und immer noch ist, dass man das erste Element eines Arrays mit $arrayVariable[0] anspricht und das letzte folglich mit $arrayVariable[$Anzahl-1], d&#252;rfen alle Manchmal~ und Gelegenheits-Programmierer sich ein Schleifchen an den Finger machen, damit sie diese Tatsache nicht vergessen. Ich f&#252;r meinen Teil habe bei den ersten Z&#228;hl&#252;bungen im zarten Toddler-Alter verinnerlicht, dass beim Z&#228;hlen der Gummib&#228;rchen in der Hand, das Schnabulieren mit dem ersten Gummib&#228;r beginnt und nicht mit dem nullten. Daher zum Trotz und f&#252;r ein gegrummeltes &#8220;Und &#220;berhaupt!&#8221;:</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;?PHP </code></li>
<li class="tab1 even"><code>$i = 1;</code></li>
<li class="tab1 odd"><code>$arrayVariable = array( </code></li>
<li class="tab2 even"><code> $i++ =&gt; 'Erstes Element',</code></li>
<li class="tab2 odd"><code> $i++ =&gt; 'Zweites Element',</code></li>
<li class="tab2 even"><code> $i++ =&gt; 'Drittes Element'</code></li>
<li class="tab1  odd"><code> );</code></li>
<li class="tab1  even"><code> echo '&lt;pre&gt;$arrayVariable: ';</code></li>
<li class="tab1  odd"><code> print_r($arrayVariable);</code></li>
<li class="tab1  even"><code> echo '&lt;/pre&gt;';</code></li>
<li class="tab0  odd"><code> ?&gt;</code></li>
</ol>
<p>Und bei diesem Script stimmt die Ausgabe mit den Z&#228;hlerfahrungen aus fr&#252;hster Kindheit wieder &#252;berein:</p>
<pre>$arrayVariable: Array
(
    [1] => Erstes Element
    [2] => Zweites Element
    [3] => Drittes Element
)
</pre>
<p>F&#252;r alle, die das erste Mal sich mit PHP besch&#228;ftigen und das mit der Null noch ganz neu ist, hier ein paar kleine Erl&#228;uterungen zum Skript:<span id="more-856"></span></p>
<p><code>&lt;?php</code> leitet ein PHP-Skript ein. Man kann auch nur <code>&lt;?</code> schreiben, doch nicht alle Server lassen diese Kurzschreibweise zu. Mir ist noch keiner begegnet, der es nicht zugelassen hat, aber dann sind meine Programmierkenntnisse und Erfahrungen nicht unbedingt gigantisch. Im Anschluss in der Zeile zwei wird eine Variable definiert. Variablen in PHP werden mit dem Dollar-Zeichen <code>$</code> eingeleitet. Variablen sind sensible und reagieren auf Unterschiede in der Gro&#223;- und Kleinschreibung. <code>$myVar</code> ist eine andere Variable als <code>$myvar</code> oder <code>$myVAR</code>. Wird der Variablen kein Wert zugewiesen (Die Zuweisung erfolgt &#252;ber das <em>einfache</em> Gleichheitszeichen &#8220;<code>=</code>&#8221; ),  dann hat die Variable den Wert <code>NULL</code>. <code>NULL</code> ist mit Tucholsky gesprochen das <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy50ZXh0bG9nLmRlL3R1Y2hvbHNreS1wc3ljaG9sb2dpZS0xOTMxLmh0bWw=">Loch</a> und die Variable ist das etwas, das Nichtloch ohne das das Loch nicht sein kann. <code>NULL</code> ist im Universum der Programmierer das Nichts, w&#228;hrend &#8220;<code>0</code>&#8221; <em>etwas</em> ist, das der Variable dem anderen Etwas (die Variable) zugeordnet, wie der Rand eines Loches und <code>0</code> ist der Korken. Gew&#246;hnlich werden Zugewiesene Elemente mit einfachen oder doppelten Hochkommata eingeleitet, wobei in doppelten Hochkommata Variablen und andere Sonderzeichen als Variablen und Sonderzeichen erkannt werden in einfachen Hochkommata  nicht. In meinem kleinen Skriptbeispiel f&#252;r Anf&#228;nger fehlen sie die Hochkommata, was ich bei Zahlen machen darf. Da der Zahl ein Komma fehlt, nennt sich das Integer in den Manuals mit &#8216;int&#8217; abgek&#252;rzt und steht f&#252;r Ganzzahl. Variablen d&#252;rfen auch Ausdr&#252;cke oder auch Methoden zugewiesen werden, was ich in der n&#228;chsten Variablen getan habe und mit dem Ausdruck <code>array()</code> gleich eine ganze Sammlung von Variablen zusammengefasst. In dieser Variablensammlung werden standardm&#228;&#223;ig mit dem Komma-Delimiter &#8216;<code>,</code>&#8216; eine Variable von der anderen unterschieden, wobei jede Variable noch mit Hochkommatas umschlossen wird, so wie dies auch bei der Zuweisung au&#223;erhalb des Arrays geschieht. In meinem Array taucht die erste Variable, der ich die Ganzzahl 1 zugewiesen hatte wieder auf: <code>$i++</code>. Das doppelte Pluszeichen ist die Kurzschreibweise f&#252;r <code>$i = $i + 1;</code>. Der Wert wird also beim Aufruf um eins erh&#246;ht. Und beim n&#228;chsten Aufruf in dem Array erneut, und erneut und erneut &#8230; Damit man die Variablen im Array ansprechen kann, ben&#246;tigen diese einen Index. Wenn ich diesen nicht vergebe und einfach nur <code>$meinArray = array('Erstens','Zweitens','Drittens');</code> schreibe, dann wird der Index automatisch vergeben. Zur Anschauung noch ein kleines Beispiel und diesmal gebe ich den Array nicht mit <code>print_r()</code> aus sondern mit <code>var_dump()</code> aus. Damit erhalte ich nicht nur die Werte der Variablen und den Index sondern auch den Variablen-Typ. Wer es nicht schon erahnt, bevor ich weiter mache noch rasch der handgemachte Index, bei dem ich bestimme, wie der Index (auch als &#8216;key&#8217; bezeichnet) lautet wird mit <code>=&gt;</code> erzeugt.</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;?php </code></li>
<li class="tab1  even"><code>$var;</code></li>
<li class="tab1  odd"><code>$emptyVar = '';</code></li>
<li class="tab1  even"><code>$defVar = 7;</code></li>
<li class="tab1 odd"><code>$myARRAY = array(NULL,0,1, '2','drei',"3,5",4.5, 'NULL', null,'5.5, 6',$var, $emptyVar, $defVar,"$defVar","\$defVar",'$defVar',',',); </code></li>
<li class="tab1  even"><code> echo '&lt;pre&gt;$arrayVariable: ';</code></li>
<li class="tab1  odd"><code> var_dump($myARRAY);</code></li>
<li class="tab1  even"><code> echo '&lt;/pre&gt;';</code></li>
<li class="tab0  odd"><code>?&gt;</code></li>
</ol>
<pre>$myARRAY: array(17) {
  [0]=>
  NULL
  [1]=>
  int(0)
  [2]=>
  int(1)
  [3]=>
  string(1) "2"
  [4]=>
  string(4) "drei"
  [5]=>
  string(3) "3,5"
  [6]=>
  float(4.5)
  [7]=>
  string(4) "NULL"
  [8]=>
  NULL
  [9]=>
  string(6) "5.5, 6"
  [10]=>
  NULL
  [11]=>
  string(0) ""
  [12]=>
  int(7)
  [13]=>
  string(1) "7"
  [14]=>
  string(7) "$defVar"
  [15]=>
  string(7) "$defVar"
  [16]=>
  string(1) ","
}
</pre>
<p>Dem aufmerksamen Beobachter ist nun aufgefallen, dass da ein <code>float(4.5)</code> ist, das entspricht der Flie&#223;kommazahl 4,5 im Deutschen. Der aufmerksame Beobachter sieht auch die Unterschiede zwischen <em>mit</em> und <em>ohne</em> Hochkommata und einfachen und doppelten Hochkommata und wie man mit einem Backslash &#8216;<code>\</code>&#8216; verhindern kann, dass in doppelten Hochkommata der Wert der Variablen ausgegeben wird und statt dessen das Dollarzeichen samt Variablenname ausgegeben wird. Und dem aufmerksamen Beobachter ist die <em>eckige Klammer</em> nicht entgangen. Die eckige Klammer enth&#228;lt den Schl&#252;ssel. Will man ein gezieltes Element aus seinem Array herauspicken, dann erreicht man das mit der folgenden Schreibweise: <code>$arrayVariable["key"]</code>. Ist der Schl&#252;ssel (=key = index) eine Ganzzahl (=int = integer), dann kann man die Anf&#252;hrungszeichen weglassen. F&#252;r die Variablen in einem Array gilt, was f&#252;r ganz normale Variablen gilt. Ein Element in einem Array kann ein Array sein. Ich kann Arrays schachteln. <code>$myArray = array(array(element1, element2, ...), array(element1, element2, ...), ...). Um nun das Element 1 im ersten Array anzusprechen muss ich erst das Array-Element &#252;ber den Schl&#252;ssel in der eckigen Klammer ansprechen und dann &#252;ber die n&#228;chste eckige Klammer das erste Element im ersten Array-Element &#252;ber den entsprechenden Schl&#252;ssel des Array-Elementes: <code>$myArray[key][key]</code>.</p>
<p>Nach all der trockenen Theorie noch ein kleines Praktisches Anwendungsgebiet, um viel Schreiberei zu sparen und Daten kompakt an einem Ort zu listen und nicht zwischen dem HLMT-Gewusel suchen zu m&#252;ssen.  <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Den Array in einer ungeordnete Liste in XHTML &#252;berf&#252;hren:</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;?php </code></li>
<li class="tab1 even"><code>$i = 1; </code></li>
<li class="tab1 odd"><code>$myGallery = array(</code></li>
<li class="tab1 even"><code>$i++ =>array(</code></li>
<li class="tab2 odd"><code> imgData => $imgUrl.'img1', </code></li>
<li class="tab2 even"><code> imgExt => 'png',</code></li>
<li class="tab2 odd"><code> imgAlt => 'Bildbezeichnung1',</code></li>
<li class="tab2 even"><code> imgZiel => $artikelPath.'Bildkritik1'</code></li>
<li class="tab1 odd"><code> ),</code></li>
<li class="tab1 even"><code>$i++ =>array(</code></li>
<li class="tab3 odd"><code> imgData => $imgUrl.'img2', </code></li>
<li class="tab3 even"><code> imgExt => 'png',</code></li>
<li class="tab3 odd"><code> imgAlt => 'Bildbezeichnung2',</code></li>
<li class="tab3 even"><code> imgZiel => $artikelPath.'Bildkritik2'</code></li>
<li class="tab2 odd"><code> ),</code></li>
<li class="tab1 even">etc. ...</li>
<li class="tab1 odd"><code>$i++ =>array(</code></li>
<li class="tab3 even"><code> imgData => $imgUrl.'img[n]', </code></li>
<li class="tab3 odd"><code> imgExt => 'png',</code></li>
<li class="tab3 even"><code> imgAlt => 'Bildbezeichnung[n]',</code></li>
<li class="tab3 odd"><code> imgZiel => $artikelPath.'Bildkritik[n]'</code></li>
<li class="tab2 even"><code> )</code></li>
<li class="tab1 odd"><code>);</code></li>
<li class="tab1 even"><code> $j = count($myGallery);</code></li>
<li class="tab0 odd"><code>?&gt;</code></li>
<li class="tab0 even"><code style="color: blue;">&lt;ul&gt;</code></li>
<li class="tab0 odd"><code>&lt;?php</code></li>
<li class="tab1 even"><code>for($x=1; $x<=$j; $x++){ </code></li>
<li class="tab1 odd"><code>echo "<span style="color: blue;">&lt;li&gt;&lt;a href='</span>".$myGallery[$x]['imgZiel']."<span style="color: blue;">' &gt;&lt;img src='</span>".$myGallery[$x]['imgData'].$myGallery[$x]['imgExt']."<span style="color: blue;">' alt='</span>".$myGallery[$x]['imgAlt']."<span style="color: blue;">' /&gt;&lt;/a&gt;&lt;/li&gt;</span>"; </code></li>
<li class="tab1 even"><code>}</code></li>
<li class="tab0 odd"><code> ?&gt;</code></li>
<li class="tab0 even"><code style="color: blue;">&lt;/ul&gt;</code></li>
</ol>
<p>Was ist nun noch neues dazugekommen?</p>
<p>Zeile 5: <code> imgData => $imgUrl.'img[n]',</code> beachten die den schnuckeligen kleinen Punkt. Mit ihm klebt man Strings zusammen und kann so diese nach einander Reihen. Hier spare ich mir die Wiederholdung des Pfades zum Bildordner, der immer gleich ist.</p>
<p>Zeile 24: <code> $j = count($myGallery);</code>. Das ist eine interne PHP-Funktion, die die Elemente in einem Array z&#228;hlt. Bei unserem verschachtelten Array z&#228;hlt er die Arrays nicht aber was in dem Array ist. Erst <code> $n = count($myGallery['1']);</code> w&#252;rde z&#228;hlen was in dem Array mit dem Schl&#252;ssel (=key = index) '1! ist und k&#228;me auf den Wert '4'.</p>
<p>Zeile 25-27: PHP arbeitet immer zwischen seinem Anfang und seinem Ende. Ich kann jederzeit rein und raus springen, d.h. fast immer. Innerhalb von PHP-Klassen darf ich das nicht, aber das kommt erst viel sp&#228;ter, wenn man sich mit objektorientierten PHP besch&#228;ftigt. Davor, dazwischen und danach kann ich ganz profanes (X)HTML schreiben.</p>
<p>Zeile 28: Die for-Schleife <code>for(Startbedingung,Schlu&#223;bedingung,Forw&#228;rtsbewegung){Funktion};</code>. Zun&#228;chst einmal habe ich mit <code>$x=1;</code> die Startbedingung festgelegt. Das erste Mal, wenn die  Schleife in die geschweifte Klammer hineinspringt und die darin befindlichen Anweisungen (=Funktionen, Methoden) ausf&#252;hrt, hat die Variable <code>$x</code> den Wert '1' und da die Variable <code>$x</code> den Schl&#252;ssel (= key = index) bestimmt <code>$myGallery[$x]</code> schnappt sich das Programm den Wert des entsprechenden Array-Elementes in unserem Fall einen Array, weswegen gleich noch ein zweiter Schl&#252;ssel angeh&#228;ngt wird, f&#252;r den wir zur leichten Erkennung und Zuweisung einen String-Index w&#228;hlten, der uns verr&#228;t was dahintersteckt. Mit diesen Bausteinen bauen wir unsere HTML-Zeile zusammen. Und weil in einer for-Schleife der Vorgang solange wiederholt wird, bis die Schlu&#223;bedingung erf&#252;llt ist, also wie in unserem Falle Unsere Variable <code>$x</code> der Anzahl unserer Arrays mit den Bilddaten entspricht.</p>
<p>Nat&#252;rlich kann man das ganze noch kompakter gestalten und auf den Gag mit der 1 verzichten, dann liest sich der Array wie folgt:</p>
<ol class="codelist">
<li class="tab0  odd"><code>$myGallery = array(array(img1,ext1,Bez1,Url1),array(img2,ext2,Bez2,Url2), etc.) </code></li>
</ol>
<p>Die for-Schleife ver&#228;ndert sich dabei ebenfalls etwas:</p>
<ol class="codelist">
<li class="tab0  odd"><code>$j = count($myGallery);</code></li>
<li class="tab1 even"><code>for($x=0; $x<$j; $x++){ ... };</code></li>
</ol>
<p><code>Count()</code> z&#228;hlt vier Elemente, der Index aber geht nur bis drei. Also bleibt darunter und ist damit nicht kleiner gleich sondern eben nur kleiner.</p>
<p>Ebenso ver&#228;ndert sich der Zusammenbau der Quelltextbausteine:</p>
<ol class="codelist">
<li class="tab0  odd"><code>echo "<span style="color: blue;">&lt;li&gt;&lt;a href='</span>".$myGallery[$x][3]."<span style="color: blue;">' &gt;&lt;img src='</span>".$myGallery[$x][0].$myGallery[$x][1]."<span style="color: blue;">' alt='</span>".$myGallery[$x][2]."<span style="color: blue;">' /&gt;&lt;/a&gt;&lt;/li&gt;</span>";  </code></li>
</ol>
<p>Man beachte das 0, 1, 2, 3 ... man stelle sich einfach vor, dass als man noch ganz klein war und der gro&#223;e Bruder auf gehei&#223; der Mutter die T&#252;te Gummib&#228;rchen teilen musste, dass er als er die B&#228;rchen in das kleine H&#228;ndchen z&#228;hlte, er mit der Zahl 0 das erste B&#228;rchen knurrend &#252;bergab. Dann klappts schon irgendwie.</p>
<p>Viel Spa&#223; mit dem ersten eigenen tats&#228;chlich n&#252;tzlichen PHP-Programm. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Eine erste Lektion beinah ohne <code>echo 'Hallo Welt.';</code></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=856" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/856/php-index-0-in-arrays-und-die-humanoide-syntax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kleine Linksammlung: Javascript und PHP</title>
		<link>http://blog.templaterie.de/750/kleine-linksammlung-javascript-und-php/</link>
		<comments>http://blog.templaterie.de/750/kleine-linksammlung-javascript-und-php/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 22:25:48 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[hide-Emails]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Linksammlung]]></category>
		<category><![CDATA[Linktipps]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/750/kleine-linksammlung-javascript-und-php/</guid>
		<description><![CDATA[Ich habe im Opera wieder fuzelkleine Register und viele viele Seiten offen. Alle will ich dann noch nicht &#252;ber den Jordan schicken und meine Bookmarks tendieren dazu so &#252;berzuquellen, so dass ich darin ohnehin nichts nicht wiederfinde. Dann doch lieber hier:

Javascript: Tutorial &#8211; Combining Window Events
Javascript-Library mit diversen freien fertigen Skripten von Mark Wilton-Jones
Noch ne [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe im Opera wieder fuzelkleine Register und viele viele Seiten offen. Alle will ich dann noch nicht &#252;ber den Jordan schicken und meine Bookmarks tendieren dazu so &#252;berzuquellen, so dass ich darin ohnehin nichts nicht wiederfinde. Dann doch lieber hier:</p>
<ul>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3NjcmlwdGFzeWx1bS5jb20vdHV0b3JpYWxzL3BhZ2VldmVudHMuaHRtbA==">Javascript: Tutorial &#8211; Combining Window Events</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5ob3d0b2NyZWF0ZS5jby51ay9qc2xpYnMv">Javascript-Library mit diversen freien fertigen Skripten von Mark Wilton-Jones</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tb2NoaWtpdC5jb20v">Noch ne Javascript-Bibliothek</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5kY2xqcy5kZS9saW5rcy5waHA=">Dokuemntation rund um Javascript</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53ZWItdG9vbGJveC5uZXQvd2VidG9vbGJveC9lbWFpbHMvZW1haWwtdmVyc3RlY2tlbi5odG0=">Methoden um eine Email vor Spidern zu sch&#252;tzen</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlcy9ncmFjZWZ1bGVtYWlsb2JmdXNjYXRpb24v">ALA: Graceful E-Mail Obfuscation</a><br />Leider mit der ganzen Um-, rum- und numschreiberei, etwas das nicht auf allen Servern so ohne weiteres l&#228;uft. Ich arbeite noch daran, dass es in dem Projekt funktioniert. Soweit habe ich es nur dass die E-Mail-Adressen ohen Rot13 umgelenkt werden auf ein Verzeichnis, das ein Formular auswirft mit jener Mathe&#252;bung.</li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5yb2JlcnRueW1hbi5jb20vMjAwNS8wNi8yMC9yaXNlLWxvcmQtamF2YXNjcmlwdC8=">Ein Lob auf Javascript und warum es so verteufelt wird.</a><br />Ich habe immer noch meine gro&#223;en Abers bei Javascript. Vielleicht weil ich kaum gute Scriptler kenne und ich eigentlich meist damit k&#228;mpfe und auch weil Entscheider &#252;ber die gro&#223;en Budgets manchmal echte Kr&#252;ppel-PCs haben und Javascript dann doch nicht funktioniert. Was da gesprochen wird aber klingt vern&#252;nftig und bemerkenswert.</li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5yb2JlcnRueW1hbi5jb20vY29kZS1saWJyYXJpZXMv">Und noch eine Javascript-Library, von dem der eine Link zuvor das Loblied singt.</li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zb3VyY2VyYWxseS5uZXQvU2NyaXB0cy80NS1TcGFtLVByb29mLUVtYWlsLUFkZHJlc3MtLUhpZGUtYWRkcmVzcy1mcm9tLXNwYW0tYm90cw=="> Spam Proof Email Address- Hide address from spam-bots</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ljYW50LmNvLnVrL2FydGljbGVzL2R5bmdhbGxlcnkv">Dynamische Jacascript Thumbnailgallerie</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ljYW50LmNvLnVrLw==">&#220;berhaupt eine gute Quelle f&#252;r alles M&#246;gliche von Christian Heilmann</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5mcmVxdWVuY3ktZGVjb2Rlci5jb20vMjAwNi8xMC8yNS9saW5rLXByZXZpZXctdjIv">Linkpreview v2</a><br />Die nervigen Popups mit Screenshottthumps bei Links, die manchmal den Surffluss massiv unterbrechen und dann so richtig nerven. Aber weil es in und hipp ist &#8230;</li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zY3JpcHRzYmFuay5jb20vSmF2YVNjcmlwdC9JbWFnZV9FZmZlY3RzL2luZGV4Lmh0bWw=">Sammlung von diversen JS-Bildeffekten</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5wamh5ZXR0LmNvbS9wb3N0cy8yMDYtdGltZW91dC15b3VyLW1vdXNlb3ZlcnM=">MouseOver Timeout</a></li>
</ul>
<p>Und noch ein Link der gesondert gestellt werden soll, weil die Idee ist absolut begr&#252;ssenswert und ich sollte vermutlich selbst hier und da drauf achten, dass ich alten Kram mit einem Hinweis zu besseren Quellen ausstatte:</p>
<ul>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53YWl0LXRpbGwtaS5jb20vMjAwNS8wNi8xMi9maWdodGluZy1saW5rcm90LWFuZC1oYXJtZnVsLXR1dG9yaWFscy1hdC10aGUtc2FtZS10aW1lLw==">Harmfull Linkrot &#8230;</a></li>
</ul>
<p>Und hier gar einen Feed einbauen zu k&#246;nnen, der redaktionell gesteuert ist, ist nat&#252;rlich noch das Doppelt&#252;pfelchen auf dem &#220;.</p>
<p>So damit habe ich nun die meisten Fenster auch wieder geschlossen und ich kann in den Registern schon die ersten 10 Buchstaben lesen. </p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=750" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/750/kleine-linksammlung-javascript-und-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Das PHP $_GET[&#039;var&#039;] und das Javascript-Equivalent / Javascript: replace() so wohl nicht</title>
		<link>http://blog.templaterie.de/737/get-js-equivalent-und-javascript-funktion-replace/</link>
		<comments>http://blog.templaterie.de/737/get-js-equivalent-und-javascript-funktion-replace/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 04:56:39 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[$_GET]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[replace]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/737/get-js-equivalent-und-javascript-funktion-replace/</guid>
		<description><![CDATA[Die Funktion, die ich bei struppi aka J.  Str&#252;big gefunden habe, z&#228;hlt sicherlich zu den Dingen, die man sich in seine Library einverleiben sollte: javascript.jstruebig.de: $_GET f&#252;r Javascript
Gesucht hatte ich nach der Syntax von Javascript replace und war &#252;ber Signatur in einem selfHTML-Forumsbeitrag von struppi auf dessen Blog gesto&#223;en.
Tja, das eine nicht gesucht und [...]]]></description>
			<content:encoded><![CDATA[<p>Die Funktion, die ich bei struppi aka J.  Str&#252;big gefunden habe, z&#228;hlt sicherlich zu den Dingen, die man sich in seine Library einverleiben sollte: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2phdmFzY3JpcHQuanN0cnVlYmlnLmRlL2phdmFzY3JpcHQvNTkvI21vcmUtNTk=">javascript.jstruebig.de: $_GET f&#252;r Javascript</a></p>
<p>Gesucht hatte ich nach der Syntax von Javascript <code>replace</code> und war &#252;ber Signatur in einem <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZvcnVtLmRlLnNlbGZodG1sLm9yZy9hcmNoaXYvMjAwNC8xMi90OTY2Mzgv">selfHTML-Forumsbeitrag von struppi</a> auf dessen Blog gesto&#223;en.</p>
<p>Tja, das eine nicht gesucht und das andre &#8230; die Suche begann &#8230; das andere Thema (<del datetime="2008-02-02T13:56:58+00:00">ungel&#246;st!</del> Und gel&#246;st <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  von Struppi. Danke. <strong  style="background: #a00; color: #fff; padding: 2px;">Siehe Kommentare</strong>) </p>
<h4>Die Javascript-Funktion replace() und <br />das Mysterium mit dem global Austausch via Variablen</h4>
<p>Die Syntax ist denkbar einfach: <code>var x = y.replace(suchvar,ersatzvar);</code></p>
<p>Leider schweigt sich selfHTML bei dem Eintrag zu der Javascript-Funktion <code>replace()</code> &#252;ber Variablen aus, geschweige denn, wie man den g-Parameter bei einer Variablen angibt. Vielleicht so? <code>var = var.replace(var1+//g,var2);</code> Nein! &#8230; auch nicht <code>var = var.replace(var1 g,var2);</code> wie zu erwarten <code>var = var.replace(/var1/g,var2);</code> funtioniert, doch nicht wie gew&#252;nscht. nun sucht Javascript nach der Variablenbezeichnung und ersetzt diese soweit vorhanden. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Schlie&#223;lich fand ich in einem Beispiel f&#252;r Regul&#228;re Ausdr&#252;cke im Buch von <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3dhaXQtdGlsbC1pLmNvbQ==">Christian Heilmann</a> die L&#246;sung.</p>
<p>Wenn eine Variable &#252;bergeben m&#246;chte, dann gebe ich das bereits bei der Variablen mit:</p>
<ol class="codelist">
<li class="tab0  odd"><code>var a = 'ein alter Hase und alter Hut \n test: b und b';</code></li>
<li class="tab0 even"><code>var b = /alter/g;</code></li>
<li class="tab0  odd"><code>var c = 'neuer';</code></li>
<li class="tab0 even"><code>var d = a.replace(b,c);</code></li>
<li class="tab0  odd"><code>alert(a+d);</code></li>
</ol>
<p>Sch&#246;n, sch&#246;n. Was aber, wenn die Variable von anderer Quelle kommt und nicht mit dem Delimitern und dem Parameter schon ausgestattet werden kann und wieder sind wir beim dem, was nicht funktioniert und immer noch doof wie Stroh: <code>var e = '/'+b+'/g';</code> ist ein kalter und auch <code>var e = / + b + /g;</code> l&#228;sst den Anf&#228;nger im Regen stehen.</p>
<p>Keine gute Idee ist es in Javascript wohl, es mit dem folgenden Loop zu versuchen: <code>for (i=0;a.search(b)!=-1;i++) {var d = a.replace(b,c);}</code>. Zumindest der Firefox scheint damit unendlich besch&#228;ftigt zu sein und fragt mehrfach h&#246;flich an, ob das Script weiter ausgef&#252;hrt werden solle oder ob man genug h&#228;tte. Ich hatte dann irgendwann genug. Angesichts des kurzen Test-Strings kann ich nur davon ausgehen, dass Search nicht den ver&#228;nderten String verwendete sondern jeweils den Originalstring &#8230; Ich gebe vorl&#228;ufig auf. Ich habe das Gef&#252;hl hier wurde in Javascript etwas vergessen zu implementieren und Tutorials hier einen wesentlichen Hinweis missen lassen.</p>
<p>Und all das, weil ich nicht via PHP, das Javascript in den Header schreiben wollte und damit folgende Variante einer Variablen in replace() nicht verwenden konnte:</p>
<ol class="codelist">
<li class="tab0  odd"><code>a.replace(/&lt;?php echo $var ?&gt;/g,&lt;?php echo $var2 ?&gt;);</code></li>
</ol>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=737" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/737/get-js-equivalent-und-javascript-funktion-replace/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mini-Jobofferte: flexibeles barriere-armes Bildwechsel-Script</title>
		<link>http://blog.templaterie.de/734/mini-jobofferte-flexibeles-barriere-armes-bildwechsel-script/</link>
		<comments>http://blog.templaterie.de/734/mini-jobofferte-flexibeles-barriere-armes-bildwechsel-script/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 17:16:42 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/734/mini-jobofferte-flexibeles-barriere-armes-bildwechsel-script/</guid>
		<description><![CDATA[Ich ben&#246;tige m&#246;glichst gestern folgendes barrierearme Javascript, das auch im IE5 funktioniert.
Mouseover auf Thumb namens &#8216;logo_firma.jpg&#8217; tauscht das gro&#223;e Bild &#8216;xy-unbekannt.jpg&#8217; in der Tabellenzelle-Zelle mit der Klasse &#8216;preview&#8217; gegen &#8217;screenshot_firma.jpg&#8217;. Beide Bilder Thumb bzw. Logo und Screenshot befinden sich im selben Bildordner.

&#8216;firma&#8217; steht hier f&#252;r den Platzhalter der diversen Firmen.
&#8216;xy-unbekannt&#8217; steht f&#252;r ein Bild das [...]]]></description>
			<content:encoded><![CDATA[<p>Ich ben&#246;tige m&#246;glichst gestern folgendes barrierearme Javascript, das auch im IE5 funktioniert.</p>
<p>Mouseover auf Thumb namens &#8216;logo_firma.jpg&#8217; tauscht das gro&#223;e Bild &#8216;xy-unbekannt.jpg&#8217; in der Tabellenzelle-Zelle mit der Klasse &#8216;preview&#8217; gegen &#8217;screenshot_firma.jpg&#8217;. Beide Bilder Thumb bzw. Logo und Screenshot befinden sich im selben Bildordner.</p>
<p>
&#8216;firma&#8217; steht hier f&#252;r den Platzhalter der diversen Firmen.<br />
&#8216;xy-unbekannt&#8217; steht f&#252;r ein Bild das sich jederzeit &#228;ndern kann und dann u.U. weder Klasse noch ID bes&#228;&#223;e.</p>
<p>Alle Bilder sind in einer Tabelle mit der ID &#8216;partner&#8217; und die Tabellenzellen mit den Thumbs haben die Klasse &#8216;partnerlogo&#8217;.</p>
<p class="center"><img src='http://blog.templaterie.de/upload/partner-tabelle.gif' alt='Tabelle mit Partnerlogos' /></p>
<ul>
<li><del datetime="2008-01-31T23:30:56+00:00">Das Script darf jQuery verwenden.</del> Ups. Ich lerne noch und habe auf die Kompatibilit&#228;t nicht geachtet. Siehe Kommentar von Stefan B.</li>
<li>Sollte Objektorientiert sein (<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvaW5kZXgucGhwP3M9b2JqZWt0b3JpZW50aWVydCtqYXZhc2NyaXB0">http://blog.templaterie.de/index.php?s=objektorientiert+java&#8230;</a>)</li>
<li>Barrierearm, also DOM-Tree und Eventhandler verwenden und absolut ohne inline-javascript auskommen.</li>
<li>Bildbezeichnungen aus dem HMTL ermitteln (vom this.img.src des thumbs unter dem Mauszeiger f&#252;r das Vorschaubild vom Thumbnamen logo_ gegen screenshot_ austauschen)</li>
<li>Keine Javascript-Fehler ausgeben, wenn kein passender Screenshot gefunden werden kann oder das Bild zum Austauschen fehlt.</li>
</ul>
<p>Budget ist nicht &#252;ppig aber angemessen.</p>
<p>Wenn es heute noch klappen k&#246;nnte, w&#228;re riesig. Ich vermeide Programmieren, wenn ich kann und wenn dies stressfrei klappt, dann sehe ich eine lange Businessfreundschaft.</p>
<p>Gerne nehme ich auch sachdienliche Hinweise zu fertigen Scripts im Netz entgegen.</p>
<p>Kontakt unter info bei silkester.de oder unter Telefon 07191-910091 von <del datetime="2008-02-01T08:44:09+00:00">11 am </del> wird dann doch eher Nachmittag werden &#8230; bis knapp vor Mitternacht <del datetime="2008-02-01T08:45:09+00:00">und heute noch bis 1 am.</del></p>
<p><strong>Mit Hilfe von Stefan (<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3RyYWZleC5kZS8=">Trafex.de</a>) ist eine L&#246;sung gefunden, die schon sehr gut ist, auch wenn sie zu meinem gro&#223;en Bedauern im CMS selbst noch rumzickt. Hilfe nehme ich daher immer noch gerne an, die Dringlichkeit ist nicht mehr so gegeben. Demo funktioniert tadellos. Siehe Kommentare. Eine ganz dickes Danke an Stefan f&#252;r die tolle Unterst&#252;tzung.</strong></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=734" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/734/mini-jobofferte-flexibeles-barriere-armes-bildwechsel-script/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Thickbox-Plugin — die mangelnde Logik der Bildfolge</title>
		<link>http://blog.templaterie.de/664/thickbox-plugin-die-mangelnde-logik-der-bildfolge/</link>
		<comments>http://blog.templaterie.de/664/thickbox-plugin-die-mangelnde-logik-der-bildfolge/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 05:21:24 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Clientsprache]]></category>
		<category><![CDATA[Datenmenge]]></category>
		<category><![CDATA[Datenpakete]]></category>
		<category><![CDATA[Logikfehler]]></category>
		<category><![CDATA[Serversprache]]></category>
		<category><![CDATA[Thickbox]]></category>
		<category><![CDATA[Verfügbarkeit]]></category>
		<category><![CDATA[Wordpress-Plugin]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/664/thickbox-plugin-die-mangelnde-logik-der-bildfolge/</guid>
		<description><![CDATA[Thickbox bietet die M&#246;glichkeit Bilderserien  &#252;ber rel="serie-x" mit einander zu verkn&#252;pfen. Dies ist rein auf Javascript basiert und bezieht sich stets auf die Bilder die aktuell in der Seite angezeigt werden. In Wordpress verteilen sich diese Bildserien &#252;ber mehrere Seiten und schon ein schichtes &#60;&#8211;&#8211;more&#8211;&#8211;&#62; wirft die ganze Idee der Bildfolge aus dem Konzept. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2pxdWVyeS5jb20vZGVtby90aGlja2JveC8=">Thickbox </a>bietet die M&#246;glichkeit Bilderserien  &#252;ber <code>rel="serie-x"</code> mit einander zu verkn&#252;pfen. Dies ist rein auf Javascript basiert und bezieht sich stets auf die Bilder die aktuell in der Seite angezeigt werden. In Wordpress verteilen sich diese Bildserien &#252;ber mehrere Seiten und schon ein schichtes <code>&lt;&#8211;&#8211;more&#8211;&#8211;&gt;</code> wirft die ganze Idee der Bildfolge aus dem Konzept. Geschweige denn Bildfolgen &#252;ber mehrere Blogbeitr&#228;ge, ggf. &#252;ber Monate und Jahre zu einer stattlichen Zahl angewachsen.</p>
<p>Dem <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbmlldG8yay5jb20vMjAwNi8xMC8xNy90aGlja2JveC0yMS1wbHVnaW4tYWN0dWFsaXphY2lvbi8=">Plugin Thickbox</a> fehlt an dieser Stelle eine Verwaltung, die die zusammengeh&#246;rigen Bilder in einer Tabelle sammelt und per Ajax zum Bl&#228;ttern anbietet.</p>
<p>Jetzt fehlt noch ein Programmierer, der seine Zeit opfert. *unschuldig guck* </p>
<p class="center"><img src='http://blog.templaterie.de/upload/pfeiffffffh.gif' alt='Unschuldig Pfeiffffh' /></p>
<p>Zugegeben, dem more-Problem k&#246;nnte man mit folgender L&#246;sung begegnen:</p>
<p><code>&lt;?php if (!is_single()){ ?&gt; &lt;a href="Link zum Bild" rel="serie-x" title="Bildtitel"&gt; class="thickbox"&lt;span class="hide"&gt;&nbsp;&lt;/span&gt;&lt;/a&gt; ... &lt;?php }?&gt;</code></p>
<p>Vorausgesetzt nat&#252;rlich man ist firm genug mit PHP, dass man es wagen kann PHP in Beitr&#228;gen zuzulassen. Ich habe die Variante noch nicht getestet, doch wenn <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2NvZGV4LndvcmRwcmVzcy5vcmcvQ29uZGl0aW9uYWxfVGFncw==">Conditional Tags</a> funktioniert wie auf der Seite beschrieben, dann m&#252;sste es funktionieren. Dies l&#246;st das Problem mit <code>&lt;&#8211;&#8211;more&#8211;&#8211;&gt;</code>. Es ist nicht umsetzbar s&#228;mptliche Bildserien auf diese Weise in Beitr&#228;ge unterzubringen, d.h. vermutlich schon, wenn man so diszipliniert ist, diese Liste separat zu f&#252;hren und jeweis in den conditional tag per Copy&amp;Paste klatscht.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=664" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/664/thickbox-plugin-die-mangelnde-logik-der-bildfolge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nimm jQuery — damit ist alles so easy!</title>
		<link>http://blog.templaterie.de/613/nimm-jquery-damit-ist-alles-so-easy/</link>
		<comments>http://blog.templaterie.de/613/nimm-jquery-damit-ist-alles-so-easy/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 20:47:29 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/613/nimm-jquery-damit-ist-alles-so-easy/</guid>
		<description><![CDATA[Nimm jQuery — damit ist alles so easy! sagt er. Und auf den ersten Blick hat er recht, aber schon so einfache Dinge wie eine if-Abfrage l&#228;sst sich nicht ohne weiteres kl&#228;ren. Muss ich hier nun wieder auf altbewertes Javascript zur&#252;ckgreifen oder kann ich da wild mischen, nach gut d&#252;nken?
Mein erster Schritt RTFM war hier [...]]]></description>
			<content:encoded><![CDATA[<p><q>Nimm jQuery — damit ist alles so easy!</q> sagt er. Und auf den ersten Blick hat er recht, aber schon so einfache Dinge wie eine if-Abfrage l&#228;sst sich nicht ohne weiteres kl&#228;ren. Muss ich hier nun wieder auf altbewertes Javascript zur&#252;ckgreifen oder kann ich da wild mischen, nach gut d&#252;nken?</p>
<p>Mein erster Schritt RTFM war hier leider nicht sehr von Erfolg gekr&#246;nt. Zugegeben ich habe das f***ing Manual nicht von vorn bis hinten durchgelesen. Schlie&#223;lich wollte ich nur eine Miniaufgabe l&#246;sen und diese mit so wenig Hirnschmalz wie eben geht. Wenn Maus auf Objekt A zeige Objekt B. Das war mit jQuery noch eine einfache Angelegenheit:</p>
<ol class="codelist">
<li class="tab0  odd"><code>&lt;script type="text/javascript"&gt;</code></li>
<li class="tab1 even"><code> $(document).ready(function(){</code></li>
<li class="tab2  odd"><code>//Hover-Effekt: mouseover tauscht den Style display: none;</code></li>
<li class="tab2 even"><code>$(".elementA").mouseover(function(){$(".elementB").toggle();});</code></li>
<li class="tab1  odd"><code> });</code></li>
<li class="tab0 even"><code>&lt;/script&gt;</code></li>
</ol>
<p>Will man den toggle-Effekt auf auf den Hover direkt auf das Element B legen, erh&#228;lt man nur einen ents&#228;tzlichen Flickererffekt. Nun gibt es bei jQuery eine If-Abfrage besser gesagt einen if-Loop, der alle Elemente <code>$("Element"):hidden</code> in einem selektierten Bereich herauspickt, die die versteckt sind, also die Eigenschaft <code>display: hidden;</code> oder bei input-Feldern <code>type="hidden"</code> haben [&#220;brigens nicht versteckt: <code>$("Element"):not(:hidden)</code>]. Vergeblich sucht man nach Hinweisen und wenn man dann nichts findet &#8230; ich habe nichts gefunden, beginnt man zu experimentieren <span id="more-613"></span></p>
<pre><code>
    $("#katcover").("#rueckseite:not(:hidden)").mouseover(function(){
         $(".catpic").toggle();
        });

    $("#katcover").("#titelseite:not(:hidden)").mouseover(function(){
         $(".catpic").toggle();
        });
<hr />
    $("#rueckseite:not(:hidden)").mouseover(function(){
         $(".catpic").toggle();
        });

    $("#titelseite:not(:hidden)").mouseover(function(){
         $(".catpic").toggle();
        });
<hr />
$("#katcover").mouseover(function(){
         $(".catpic").toggle();
        });
<hr />
$("#titelseite:not(:hidden)").mouseover(function(){
         $(".catpic").toggle("#titelseite.fadeOut("slow"), #rueckseite.fadeIn("slow")");
        });
</pre>
<p>... mit unterschiedlichen Teil- und Misserfolgen aufgrund von Logikfehlern oder Syntaxfehlern. Ist man erst im blinden und verzweifelten Try&#038;Error angekommen, ist ohnehin das auch egal, schlie&#223;lich arbeitet man nun wie die Ratte/ der Affe im Versuchlabor. Schlie&#223;lich ist da irgendwo die Banane.  Bis man die Schnauze voll hat und einen Blogbeitrag daraus macht, tief durchatmet und &#252;berlegt, wie man denn nun an die gegehrte Banane kommt. Also an die Erkenntnis, wie man einen Ist-Zustand abfragt und dann ein Element gegen das andere austauscht und auch noch die Funktionalit&#228;t des ersten Bereiches erh&#228;lt, wo Elemente der Gruppe A das Erscheinen oder Verschwinden der beiden Elemente im Feld B triggern.</p>
<p>BTW hatte ich noch realisiert, dass ich eine If-Abfrage mehr oder weniger &#252;ber einen If-Loop erreiche, wenn ich den Loop auf die Menge eins begrenze: <code>$("#titelseite:not(:hidden)")</code>. Allerdings wird mein Script dann nicht bis zu Ende abgearbeitet. Im Teilerfolg wird zwar noch das vorhandene Element ausgeblendet, doch das versteckte bleibt versteckt. Logik-Fehler, in dem Moment scheint sich das Programm vorauszueilen und wendet die Regel f&#252;r das noch versteckte Feld an und zeigt dieses erst gar nicht an. ... oder wie auch immer. Ich verstehe in erster Linie: "tut nicht". *murks*</p>
<p>Ich kann programmieren lernen nicht leiden.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=613" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/613/nimm-jquery-damit-ist-alles-so-easy/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Kleine Linksammlung</title>
		<link>http://blog.templaterie.de/604/kleine-linksammlung/</link>
		<comments>http://blog.templaterie.de/604/kleine-linksammlung/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 04:59:53 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Charts]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[FontsFLV]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Javascript-Bibliotheken]]></category>
		<category><![CDATA[Linktipp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web-Videoplayer]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/604/kleine-linksammlung/</guid>
		<description><![CDATA[Was so beim Surfen an- und abf&#228;llt:


DomHelper &#8211; Create Elements using DOM, HTML fragments and Templatesund Javascript-Bibliotheken im Vergleich
DHTML Hotlinks und DOM-Javascript Hotlinks
Umfangreiche Liste der verf&#252;gbaren Bibliotheken f&#252;r Ajax, DHMTL und Javascript
Kleine &#220;bersicht: Diagramme f&#252;r die Website
replaceHTML wenn innerHTML &#228;chzt und st&#246;hnt
Javascript: Eventdelegation ohne Libraries
Blueprint CSS Framework
F&#252;r Liebhaber des Schnickschnacks: Rollover-Links
40 hochwertige Freefonts f&#252;r professionelles [...]]]></description>
			<content:encoded><![CDATA[<p>Was so beim Surfen an- und abf&#228;llt:</p>
<p><script type="text/javascript" src="http://pg4me.de/functions/scrollovers.js"></script></p>
<ul>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrc2xvY3VtLmNvbS9ibG9nLzIwMDYvMTAvMDYvZG9taGVscGVyLWNyZWF0ZS1lbGVtZW50cy11c2luZy1kb20taHRtbC1mcmFnbWVudHMtb3ItdGVtcGxhdGVzLw==">DomHelper &#8211; Create Elements using DOM, HTML fragments and Templates</a><br />und <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5qYWNrc2xvY3VtLmNvbS9ibG9nL2V4YW1wbGVzL2RvbWhlbHBlci5waHA=">Javascript-Bibliotheken im Vergleich</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Rldi51cGlhbi5jb20vaG90bGlua3MvdGFnL2RodG1s">DHTML Hotlinks</a> und <br /><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Rldi51cGlhbi5jb20vaG90bGlua3MvdGFnL0RPTStKYXZhc2NyaXB0">DOM-Javascript Hotlinks</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3RlY2hub3RhcmdldC5jb20vYWpheC1kaHRtbC1hbmQtamF2YXNjcmlwdC1saWJyYXJpZXMv">Umfangreiche Liste der verf&#252;gbaren Bibliotheken f&#252;r Ajax, DHMTL und Javascript</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDA3LzEwLzE4L2NoYXJ0cy1hbmQtZ3JhcGhzLW1vZGVybi1zb2x1dGlvbnMv">Kleine &#220;bersicht: Diagramme f&#252;r die Website</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2FqYXhpYW4uY29tL2FyY2hpdmVzL3JlcGxhY2VodG1sLWZvci13aGVuLWlubmVyaHRtbC1kb2dzLXlvdS1kb3du">replaceHTML wenn innerHTML &#228;chzt und st&#246;hnt</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3VzYWJsZXR5cGUuY29tL3dlYmxvZy9ldmVudC1kZWxlZ2F0aW9uLXdpdGhvdXQtamF2YXNjcmlwdC1saWJyYXJ5Lw==">Javascript: Eventdelegation ohne Libraries</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2JsdWVwcmludGNzcy9pc3N1ZXMvZGV0YWlsP2lkPTU0">Blueprint CSS Framework</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zY3JvbGxvdmVycy5jb20v" class=\"scrollover\" type=\"scrollover\">F&#252;r Liebhaber des Schnickschnacks: Rollover-Links</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDA3LzExLzA4LzQwLWV4Y2VsbGVudC1mcmVlZm9udHMtZm9yLXByb2Zlc3Npb25hbC1kZXNpZ24v">40 hochwertige Freefonts f&#252;r professionelles Design</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Rldm9saW8uY29tL2Jsb2cvYXJjaGl2ZXMvMTA5LTY3LUtpbGxlci1SZXNvdXJjZXMtZm9yLVdlYi1EZXZlbG9wZXJzLWFuZC1EZXNpZ25lcnMuaHRtbA==">67 Killerressourcen</a><br />darunter die eben erw&#228;hntne Fonts und: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL21pbmlhamF4LmNvbS8=">miniAJAX</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Zsdi1wbGF5ZXIubmV0Lw==">Sehr flexibler FLV-Player f&#252;r die eigene Website und die Website der Kunden</a><br />via <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy52aWRlby1mbGFzaC5kZS8=">video-flash.de, eine Autorit&#228;t auf dem Gebiet</a></li>
</ul>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=604" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/604/kleine-linksammlung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Z&#228;hmung des zickigen IE6</title>
		<link>http://blog.templaterie.de/601/die-zaehmung-des-zickigen-ie6/</link>
		<comments>http://blog.templaterie.de/601/die-zaehmung-des-zickigen-ie6/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 07:06:03 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[evolt.org]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MSIE]]></category>
		<category><![CDATA[MSIE-Standalone]]></category>
		<category><![CDATA[MSIE6]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/601/die-zaehmung-des-zickigen-ie6/</guid>
		<description><![CDATA[Es war einmal ein cranky old IE6, der mit dem System kam und kurz nach dem ersten Start von Arcor umgebaut wurde. Es dauerte nicht lange, da zickte auch schon dieser Browser. Nicht immer, wenn es hie&#223; getestet mit dem MSIE6, wollte mein IE6 da mitmachen. Nicht schlimm, denn mein MSIE6 ist nur zum Testen [...]]]></description>
			<content:encoded><![CDATA[<p>Es war einmal ein cranky old IE6, der mit dem System kam und kurz nach dem ersten Start von Arcor umgebaut wurde. Es dauerte nicht lange, da zickte auch schon dieser Browser. Nicht immer, wenn es hie&#223; getestet mit dem MSIE6, wollte mein IE6 da mitmachen. Nicht schlimm, denn mein MSIE6 ist nur zum Testen im Gebrauch und da st&#246;rt es nicht wenn jQuery nicht funktioniert. Auch schadet es nicht, sich nach Skripten umzusehen, die diese Zicke von Browser akzeptiert.</p>
<p>Doch eigentlich wollte ich schon, dass auch mein MSIE6 kann was andere MSie6er k&#246;nnen. Heute habe ich mich nach einem <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jyb3dzZXJzLmV2b2x0Lm9yZy9kb3dubG9hZC5waHA/L2llLzMyYml0L3N0YW5kYWxvbmUv">MSIE6-Standalone</a> umgesehen und von evolt.org gezogen. Und siehe da, <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2pxdWVyeS5jb20v">jQuery</a> tut. Sollte nun ein Kunde Probleme haben, wo diese Standalone keine hat, so kann ich ihm immer anbieten, ihm einen reparierten MSie6 zuzusenden. Insbesondere einen Programmierer wird das vermutlich freuen. Bietet dies doch die Aussicht weniger Extrarunden in der Programmierung zu fahren und auf darauf auf viele fertige Skripte zur&#252;ckgreifen zu k&#246;nnen.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=601" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/601/die-zaehmung-des-zickigen-ie6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fast perfekt &#8230;</title>
		<link>http://blog.templaterie.de/599/fast-perfekt/</link>
		<comments>http://blog.templaterie.de/599/fast-perfekt/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 14:25:03 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Konkurrierende-Eigenschaften]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/599/fast-perfekt/</guid>
		<description><![CDATA[Nach Stunden um Stunden um Stunden um Stunden habe ich ein neues Template fertig. Nur eine klitze kleine Kleinigkeit fehlt noch: Weil dieses Template unter CC by 2.0 gestellt werden soll, liefere ich kein PHP-Mailformular mit und damit beim Klick auf das Layoutbeispiel f&#252;r das Formular etwas geschieht, habe ich im Netz eine Alert-Box gesucht, [...]]]></description>
			<content:encoded><![CDATA[<p>Nach Stunden um Stunden um Stunden um Stunden habe ich ein neues Template fertig. Nur eine klitze kleine Kleinigkeit fehlt noch: Weil dieses Template unter CC by 2.0 gestellt werden soll, liefere ich kein PHP-Mailformular mit und damit beim Klick auf das Layoutbeispiel f&#252;r das Formular etwas geschieht, habe ich im Netz eine Alert-Box gesucht, die ich dem Design anpassen kann und gefunden, d.h. ich musste sie gar nicht anpassen, weil sie so witzig ist und als Alert-Box sich vom Rest ruhig abheben darf: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3FsaWIucXVhenpsZS5jb20vX21lc3NhZ2Vib3guaHRtbA==">QMessageBox</a> auf quazzle.com scheint wie f&#252;r mich geschaffen, w&#228;re da nicht die kleine Angelegenheit mit den konkurrierenden Styleanweisungen. Das Dumme nun, der Programmierer hat die Styleanweisung im Javascript untergepracht und meine sind im Stylesheet. Ich bin kein Held in Bezug auf Javascript und das Javascript ist f&#252;r meine Fahigkeiten um einiges zu kompliziert, um die Styleanweisungen aus dem Javascript zu ziehen, so dass ich wieder die Kontrolle habe.</p>
<p><img src='http://blog.templaterie.de/upload/das_verbogene_schild.png' alt='Das vernogene Schild (alertbox)' /><br />
Der durch das Script erzeugt Quelltext ist auch viel komplizierter, als n&#246;tig. So viele verschachtelte Tabellen &#8230; uphhhf</p>
<p>Es ist sooooooo frustrierend.</p>
<p><del datetime="2007-12-30T16:10:04+00:00">Ich werde mir ein schlichteres customizable Alert suchen m&#252;ssen. Es gibt ja reichlich davon im Netz. *seufz*</del></p>
<p>Nachtrag &#8230; nach einem herzlichen &#8220;verflixt und zugen&#228;ht&#8221;  und nachdem ich radikal alle Styleangaben aus Javascript entfernte und auch die Bedeutung der Variable &#8216;ec&#8217; begriffen hatte, war es nicht mehr schwer. Ich bin wieder happy. Nun nur noch den Styleguide und n&#252;tzliche Hinweise zum Template schreiben und alles in zwei Sprachen deutsch und englisch und dann geht&#8217;s an die Publikation an geeigneten Stellen. Yuppiiiieh.</p>
<p>Kann sich nur noch um &#8230; handeln.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=599" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/599/fast-perfekt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kleine PHP-Funktion f&#252;r transparente PNGs in alten IEs</title>
		<link>http://blog.templaterie.de/583/kleine-php-funktion-fuer-transparente-pngs-in-alten-ies/</link>
		<comments>http://blog.templaterie.de/583/kleine-php-funktion-fuer-transparente-pngs-in-alten-ies/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 10:16:40 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Funktion]]></category>
		<category><![CDATA[Imagetag]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[Transparenzfilter]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/583/kleine-php-funktion-fuer-transparente-pngs-in-alten-ies/</guid>
		<description><![CDATA[Auch wenn das bald hinf&#228;llig ist, weil die IE4-6 bald ausgestorbene Browserfossile sein werden, so habe ich mir doch noch ein PHP-Skript gebastelt, dass f&#252;r diese alten Microsoft-Browser PNG-Bilder per Span und einem IE-Transparenzfilter einbindet.
Das Land Transpngvanien wo dem PNG im MSIE 4-6 die Farbe ausgesogen wird &#8230; harr
Das ist alles noch kleines PHP-Einmaleins, mit [...]]]></description>
			<content:encoded><![CDATA[<p>Auch wenn das bald hinf&#228;llig ist, weil die IE4-6 bald ausgestorbene Browserfossile sein werden, so habe ich mir doch noch ein PHP-Skript gebastelt, dass f&#252;r diese alten Microsoft-Browser PNG-Bilder per Span und einem IE-Transparenzfilter einbindet.</p>
<p><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BnNG1lLmRlL2RlbW9zL3RyYW5zcG5ndmFuaWVuLw==">Das Land Transpngvanien wo dem PNG im MSIE 4-6 die Farbe ausgesogen wird &#8230; harr</a></p>
<p>Das ist alles noch kleines PHP-Einmaleins, mit dem ich noch zurechtkomme. Ja, ich wei&#223;, dass Header-Informationen nicht verl&#228;sslich sind: Opera-Falseflags und gelegentlich wird es abgeschaltet. Das ist dann &#8220;Tough luck&#8221;. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>In bezug auf MSIE 4-6 d&#252;rfte das aber dann schon die gro&#223;e Ausnahme sein, weswegen mir die L&#246;sung auch ausgesprochen gut gef&#228;llt. Nicht zu letzt mag ich diese L&#246;sung f&#252;r PHP-Files weil ich bei den Bildern die Gr&#246;&#223;enangabe automatisch ausgegeben bekomme.</p>
<p>Weitere Quellen:</p>
<ol>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbGlzdGFwYXJ0LmNvbS9zdG9yaWVzL3BuZ29wYWNpdHkv">ALA-Artikel zu PNG Tranparenz</a></li>
<li><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5mZWxnYWxsLmNvbS9qc3RpcDI2Lmh0bQ==">Kleiner Javascript-Trick um die Bodyfarbe zu wechseln</a></li>
<li>Nachtrag: Link zu einer Javascript-L&#246;sung, die auch Hintergrundgrafiken beherrscht: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovLzI0d2F5cy5vcmcvMjAwNy9zdXBlcnNsZWlnaHQtdHJhbnNwYXJlbnQtcG5nLWluLWllNg==">Transparent PNGs in Internet Explorer 6</a> (Das Thema hat konjunktur wie ich bei der Gelegenheit festellen konnte.)</li>
</ol>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=583" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/583/kleine-php-funktion-fuer-transparente-pngs-in-alten-ies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL-Bl&#228;hungen</title>
		<link>http://blog.templaterie.de/516/mysql-blaehungen/</link>
		<comments>http://blog.templaterie.de/516/mysql-blaehungen/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 12:10:50 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/516/mysql-blaehungen/</guid>
		<description><![CDATA[Nichts kann einen Server so schnell in die Knie zwingen, wie Spam, der in einer fehlerhaften Wordpress-Installation, die Requests nicht schlie&#223;t. Nun habe ich auf meinen Host Europe VPS die Updates bei allen Installationen vorgenommen, also auch auf dem stillgelegten im Unterverzeichnis /wordpress/. Seither hat der Spam nicht nachgelassen, aber er wird weiterhin brav von [...]]]></description>
			<content:encoded><![CDATA[<p>Nichts kann einen Server so schnell in die Knie zwingen, wie Spam, der in einer fehlerhaften Wordpress-Installation, die Requests nicht schlie&#223;t. Nun habe ich auf meinen Host Europe VPS die Updates bei allen Installationen vorgenommen, also auch auf dem stillgelegten im Unterverzeichnis /wordpress/. Seither hat der Spam nicht nachgelassen, aber er wird weiterhin brav von Spamkarma verspeist und abserviert. Wenn man einmal am Updaten ist, dann macht man nat&#252;rlich weiter. Leider f&#252;hrte das nun auf Silkester.de zu einigen Schwierigkeiten. die wp-admin/upgrade.php will nicht &#246;ffnen, sondern die Download-Funktion des Browsers besteht darauf, dass zu *.php kein Mime existiere, kein PHP installiert sei und wie bei allen unbekannten Formaten der Download-Dialog bzw. Dialog zum &#196;ffnen mit einer beliebigen lokalen Applikation (bzw. der zugeordneten wie z.B. PHPEdit) die logische Folge sei.</p>
<p>Wie bringe ich dem Server bei, dass diese PHP-Datei nicht anders ist als andere PHP-Dateien auf dem Rechner, die nach wie vor brav interpretiert werden? Mit der dieser Server im &#220;brigen keine Probleme hatte.</p>
<p><strong  style="background: #a00; color: #fff; padding: 2px;">Update:</strong><br />Oh Boy&#8230; Es liegt offensichtlich nicht am Server. Denn wenn ich die Datenbank auf diesen Server hole, auf dem das Update so Problemlos gleich drei Mal funktionierte, so habe ich immer noch das gleiche Ergebnis, wenn ich hier ein Update laufen lassen m&#246;chte. Auch hier wird dann die PHP-Datei wp-admin/upgrade.php nicht mehr serverseitig ausgef&#252;hrt und der Download-Dialog startet. mal sehen, ob ich mit einzelnen Tabellen in PHPMyAdmin umbenennen weiterkomme. Und langsam sollte ich wohl das Blog unter Silkester.de offiziell vom Netz nehmen und ein Baustellenschild stattdessen anzeigen lassen. mit <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5vemVyb3YuZGUvYmlnZHVtcC5waHA=">Bigdump</a> die Tabellen in eine bereits bestehende Wordpress 2.2.1 Installation mit einem unterschiedlichen Prefix &#252;bernehmen und schon &#8230; Ich frage mich nur, was in der Wordpress-Datenbank von Silkester.de verborgen liegt, dass diese Komplikationen mit sich bringt &#8230;</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=516" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/516/mysql-blaehungen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Warenkorbfunktionen — Masken aufteilen</title>
		<link>http://blog.templaterie.de/510/warenkorbfunktionen-masken-aufteilen/</link>
		<comments>http://blog.templaterie.de/510/warenkorbfunktionen-masken-aufteilen/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 12:55:45 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Projektplanung]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/510/warenkorbfunktionen-masken-aufteilen/</guid>
		<description><![CDATA[Keep it simple! Wenn man Warenkorbdaten und Adressdaten nicht in einem langen Formular sammeln will, kann man dies auch trennen. Da Versanddaten und Versandkostenberechnung eng verkn&#252;pft sind, macht es Sinn die Versandkosten ein St&#252;ckweit vom Warenkorb zu separieren. Nun verlangt der Gesetzgeber transparenz bei den Angaben der Kosten. Es gen&#252;gt also nicht, irgendwo darauf hinzuweisen, [...]]]></description>
			<content:encoded><![CDATA[<p><a  href= "http://blog.templaterie.de/upload/bestellprozedere.jpg" title="Warenkorbprozedere" class="thickbox"><img src="http://blog.templaterie.de/upload/bestellprozedere500.jpg" alt="Warenkorbprozedere" /></a></p>
<p>Keep it simple! Wenn man Warenkorbdaten und Adressdaten nicht in einem langen Formular sammeln will, kann man dies auch trennen. Da Versanddaten und Versandkostenberechnung eng verkn&#252;pft sind, macht es Sinn die Versandkosten ein St&#252;ckweit vom Warenkorb zu separieren. Nun verlangt der Gesetzgeber transparenz bei den Angaben der Kosten. Es gen&#252;gt also nicht, irgendwo darauf hinzuweisen, dass noch Versandkosten mit dem Betrag XY hinzukommen. Teure komplex geschriebene Shops haben hier mit Datenbanken und Schnickschnack meist auch keine besseren L&#246;sungen als das was im letzten Post dargestellt ist. Das einfachste ist also nach dem Warenkorb Liefer- / Rechnugnsanschrift und Zahlungsbedingungen zu erfassen und im Anschlu&#223; noch einmal alle Daten in einer Seite darzustellen, die z.B. wie eine Rechung (Lieferschein) gestaltet sein kann, bei der der Kunde nun nur noch best&#228;tigt, dass die Angaben stimmen und die AGB akzeptiert werden und der letzte Knopf ist dann die Bestellung. An dieser Stelle kann sich der Kunde die Daten auch noch einmal ausdrucken, sollte er probleme mit seinem E-Mailfach haben, wird er f&#252;r diese Option dankbar sein.</p>
<p>Mit dieser getrennten L&#246;sung sollte auch die Verwaltung der Daten im Zusammenhang mit der Ausgabe einfacher sein, denn man kann so leichter die Module der Zwischenspeicherung, Berechnung und Auswertung sowie der Ausgabe in einzelne fast eigenst&#228;ndige Programmteile unterteilen.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=510" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/510/warenkorbfunktionen-masken-aufteilen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Programmierung f&#252;r Versandkosten planen</title>
		<link>http://blog.templaterie.de/506/programmierung-fuer-versandkosten-planen/</link>
		<comments>http://blog.templaterie.de/506/programmierung-fuer-versandkosten-planen/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 02:44:38 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Projektplanung]]></category>
		<category><![CDATA[cpFormhandler]]></category>
		<category><![CDATA[Dilemma-der-Viefalt]]></category>
		<category><![CDATA[Handelsspannen]]></category>
		<category><![CDATA[Kalkulation]]></category>
		<category><![CDATA[Shopprogrammierung]]></category>
		<category><![CDATA[Transparenzpflicht]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/506/programmierung-fuer-versandkosten-planen/</guid>
		<description><![CDATA[Transportbedingungen

Ma&#223;e und GewichteUnser Shop sammelt diese Informationen nicht, doch er kann einzelnen Artikeln einen Versandkostenaufschlag zuweisen.
Artikel die keine Versandkosten produzieren
Versandwege
Versandmenge (Anzahl der Artikel)
Aufrtagsvolumen

Wo und wann werden diese Versandkosten gesammelt?

Direkt beim Artikel (Punkt 1 und 2 s.o.)
Am Ende der Bestellliste (Restlichen Punkte)

Wie wirken sich die Faktoren auf die Versandkosten aus? Welche F&#228;lle gilt es zu unterscheiden?
Zun&#228;chst [...]]]></description>
			<content:encoded><![CDATA[<h4>Transportbedingungen</h4>
<ol>
<li><del>Ma&#223;e und Gewichte</del><br />Unser Shop sammelt diese Informationen nicht, doch er kann einzelnen Artikeln einen Versandkostenaufschlag zuweisen.</li>
<li>Artikel die keine Versandkosten produzieren</li>
<li>Versandwege</li>
<li>Versandmenge (Anzahl der Artikel)</li>
<li>Aufrtagsvolumen</li>
</ol>
<p>Wo und wann werden diese Versandkosten gesammelt?</p>
<ol style="list-style-type: upper-alpha;">
<li>Direkt beim Artikel (Punkt 1 und 2 s.o.)</li>
<li>Am Ende der Bestellliste (Restlichen Punkte)</li>
</ol>
<h4>Wie wirken sich die Faktoren auf die Versandkosten aus? <br />Welche F&#228;lle gilt es zu unterscheiden?</h4>
<p>Zun&#228;chst einmal betrachten wir die Fallunterscheidungen:<br /><a href= 'http://blog.templaterie.de/upload/versandkosten.jpg' title='Programmierung der Versandkosten f&#252;r einen Shop planen' class="thickbox"><img src="http://blog.templaterie.de/upload/versandkosten1.jpg" alt="Fallunterscheidungen Versandkosten" /></a></p>
<p>Unterschieden werden muss auch noch ob bei Aufschlag noch weitere Informationen eingeholt werden m&#252;ssen.</p>
<p>Anschlie&#223;end hei&#223;t es die Fallunterscheidungen abzuarbeiten. Das einfachste ist es mit dem Sonderfall keine Versandkosten anzufangen, denn dann kann man sich alles Rechnen sparen. Anschlie&#223;end pr&#252;ft man ob die Bedingungen f&#252;r die Basiskosten gegeben sind und wenn hier keine Sonderf&#228;lle also Aufschl&#228;ge vorliegen, kann man die Basiskosten ausgeben und dem Bestellwert addieren und schlie&#223;lich gilt es die Sonderf&#228;lle mit den Aufschl&#228;gen abzuarbeiten:<br /><a href= 'http://blog.templaterie.de/upload/versandkosten.jpg' title='Programmierung der Versandkosten f&#252;r einen Shop planen' class="thickbox"><img src="http://blog.templaterie.de/upload/versandkosten2.jpg" alt="Programmplanung Versankosten" /></a></p>
<p>Bei den Aufschl&#228;ge gilt es zu unterscheiden zwischen einem Aufpreis, der den bisherigen Kosten zugeschlagen also addiert wird, einem Faktor, &#252;ber den die bisher ermittelten Versandkosten sich erh&#246;hen und einem Versandkostenbetrag, der den ermittelten Betrag ersetzt.</p>
<p>Den Versandradius k&#246;nnte mit einem Faktor vern&#252;nftig abgedeckt werden. Artikelmengen hingegen d&#252;rften Addition oder Ersetzen sinnvoll erscheinen lassen. Eine M&#246;glichkeit hier dem Shopbetreiber die Entscheidung zu &#252;berlassen ist es, lediglich den Rahmen vorzugeben und die Bezeichungen der Umgang mit den ermittelten Versandkosten dem Shopbetreiber zu &#252;berlassen, so wie das z.B. beim <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy50ZW1wbGF0ZXJpZS5kZS9zaG9wL2luZGV4LnBocD9jPTEmIzAzODtzPWNwLWZvcm1oYW5kbGVy">cpFormhandler </a>in Bezug auf Formulare gel&#246;st ist. Damit hat man die gr&#246;&#223;tm&#246;gliche Flexibilit&#228;t und die zig verschiedenen Sonderf&#228;lle mit denen unterschiedliche H&#228;ndler mit unterschiedlichen Warensortimenten mit einem Schlag abgedeckt.</p>
<p>Zu Unterscheiden ist auch, ob noch Informationen eingeholt werden m&#252;ssen. Gl&#252;cklicher Weise kommen hier nur drei Formular-Varainten in Frage: Selektfelder, Radiobutton oder Checkboxen und man kann sich &#252;berlegen hier die Auswahl gurnds&#228;tzlich noch einzuschr&#228;nken.</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=506" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/506/programmierung-fuer-versandkosten-planen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

