<?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; Tutorials</title>
	<atom:link href="http://blog.templaterie.de/category/tutorials/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>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>Vektor-Silhouette in 5 Schritten mit Photoshop</title>
		<link>http://blog.templaterie.de/873/vektor-silhouette-in-5-schritten-mit-photoshop/</link>
		<comments>http://blog.templaterie.de/873/vektor-silhouette-in-5-schritten-mit-photoshop/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 19:39:02 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Konvertieren]]></category>
		<category><![CDATA[Pfad exportieren]]></category>
		<category><![CDATA[Photoshop-Tutorial]]></category>
		<category><![CDATA[Silhouette]]></category>
		<category><![CDATA[Vektorgrafik]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/873/vektor-silhouette-in-5-schritten-mit-photoshop/</guid>
		<description><![CDATA[Der Weg zu einer Silhouette ist sehr einfach und blitzschnell erzeugt:

Nachdem ich die Quelle der 8 Vektorgrafiken[1] erst heute alle abgeklappert habe und dabei nur eine Sammlung f&#252;r nichtkommerzielle Zwecke au&#223;erhalb von Demianart zur Verwertung vorfand, stehe ich ein wenig in der Schuld. Daher hier das Tutorial. Es f&#228;ngt damit an, dass man ein geeignetes [...]]]></description>
			<content:encoded><![CDATA[<p>Der Weg zu einer Silhouette ist sehr einfach und blitzschnell erzeugt:</p>
<p class=center><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvdXBsb2FkL3ZvaWxhX2FpX3dvbWFuX3NpbGhvdWV0dGUucG5n" title='Vom Foto zur vektorgrafischen Silhouette in wenigen Schritten' class=\"thickbox\"><img src='http://blog.templaterie.de/upload/voila_ai_500.png' alt='Vektor Silhouette Deckblatt' /></a></p>
<p>Nachdem ich die Quelle der 8 Vektorgrafiken<sup><a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvODY5L2xpbmt0aXBwcy1kb2VzLWRvbnRzLXVuZC1mcmVlYmllcy1mdWVyLXdlYmRlc2lnbmVyLw==">[1]</a></sup> erst heute alle abgeklappert habe und dabei nur eine Sammlung f&#252;r nichtkommerzielle Zwecke au&#223;erhalb von Demianart zur Verwertung vorfand, stehe ich ein wenig in der Schuld. Daher hier das Tutorial. Es f&#228;ngt damit an, dass man ein geeignetes Bild heraussucht. Entweder ein helles Objekt vor dunklem Untergrund oder ein dunkels Objekt vor hellem Untergrund. Um Urheberrechte muss man sich nur bedingt Gedanken machen, da das Endergebnis sehr weit vom Original entfernt ist und es der Fotograf schwerhaben d&#252;rfte, der sp&#228;teren Vektorgrafik anzusehen, dass sein Foto einst die Basis darstellte. Hier im Tutorial sieht das anders aus. Das Foto steht in direktem Zusammenhang mit der Silhouette. Ich nehme daher <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ZsaWNrci5jb20vcGhvdG9zL3N0YXJ3YXJzYmxvZy81MTM4Mjk5MTUv">aus Flickr.com ein Foto aus dem creativ commons by 2.0 des Users officialstarwarsblog</a>. </p>
<p>Die f&#252;nf Schritte zur Vektorgrafik:<span id="more-873"></span></p>
<p>Zun&#228;chst einmal wird die Farbe entfernt: STRG+Shift+U</p>
<p class="center"><img src='http://blog.templaterie.de/upload/2_voila_ai_500.jpg' alt='Desturierung Strg + U' /></p>
<p>Da hier ein Bild mit heller Figur ist ben&#246;tige ich den Zwischenschritt der Invertierung Strg+i:</p>
<p class="center"><img src='http://blog.templaterie.de/upload/3_voila_ai_500.png' alt='Invertieren strg+i' /></p>
<p>Nun werden die Kontraste bis zum Anschlag hochgefahren Image/Adjustment/Brightness+Contrast Contrast 100, Brightness je nach Bild hier 35:</p>
<p class="center"><img src='http://blog.templaterie.de/upload/4_voila_ai_500.png' alt='Kontrast bis zum Anschlag' /></p>
<p>&#220;berfl&#252;ssiges entfernen, Zauberstab und wei&#223;er Pinsel:</p>
<p class="center"><img src='http://blog.templaterie.de/upload/5_voila_ai_500.png' alt='Zwischenstand schon akzeptabel' /></p>
<p>Mit diesem Zwischenstann k&#246;nnte man schon leben, doch sind noch zuviele Details besser noch den Rock entfernen udn einige Lichtreflektionen und Kleidungsst&#252;cke schwarz auff&#252;llen:</p>
<p class="center"><img src='http://blog.templaterie.de/upload/6_voila_ai_500.png' alt='Vektor Silhouhette Endergebnis' /></p>
<p>Auch habe ich noch die eine oder andere wei&#223;e Linie erg&#228;nzt. Damit aus dem schwarz/wei&#223;en Bitmap nun eine Vektorgrafik wird, muss zun&#228;chst &#252;ber Select/Color Range die schwarze Figur in die Auswahl genommen werden. Danach wechselt man von der Ebene zu den Pfaden und klickt am unteren Rand die Schaltfl&#228;che &#8220;Auswahl zu Pfad&#8221;. Darauf achten, dass der Pfad aktiv ist und schon kann man &#252;ber File/Export/Path to Illustrator den Pfad als AI-Vektorgrafik abspeichern und weiter verwursten. Sie erstes Bild.</p>
<p>Ist der Pfad noch zu ingenau, kann man diesen etweder bereits in Photoshop nachbearbeiten oder aber sp&#228;ter im Vektorprogramm wie z.B. der Illustrator oder CorelDraw. Und hier ist die Silhouette (<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvdXBsb2FkL3dvbWFuXzAwMi5haQ==">AI-Datei</a>) zur freien Verf&#252;gung. Wobei ich in diesem Fall zu bedenken gebe, dass die Silhouette mit dem Foto in Verbindung gebracht werden kann und damit man sich u.U. den einen oder anderen Arger einfangen k&#246;nnte. Besser wird es sein man sucht sich ein anderes Foto. <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=873" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/873/vektor-silhouette-in-5-schritten-mit-photoshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Addi, der Blitz-Zeichner oder Wie man ein Foto in eine Zeichnung verwandelt</title>
		<link>http://blog.templaterie.de/858/addi-der-blitz-zeichner-oder-wie-man-ein-foto-in-eine-zeichnung-verwandelt/</link>
		<comments>http://blog.templaterie.de/858/addi-der-blitz-zeichner-oder-wie-man-ein-foto-in-eine-zeichnung-verwandelt/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 07:26:23 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Ebenen]]></category>
		<category><![CDATA[Filter]]></category>
		<category><![CDATA[Foto]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[PSD Tutorial]]></category>
		<category><![CDATA[Zeichnung]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/858/addi-der-blitz-zeichner-oder-wie-man-ein-foto-in-eine-zeichnung-verwandelt/</guid>
		<description><![CDATA[Fast schon dachte ich, ich h&#228;tte eine dritte Methode entdeckt, wie man aus einem Foto eine Zeichnung macht, aber dann beim Test bedurfte es doch wieder einer der alten Methoden, um die Umrisse hervorzuheben.
Wovon ich spreche? Von einem ziemlich alten Beitrag, bei dem ein Foto in eine Comiczeichnung umgewandelt wird im alten templaterie blog. Dort [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.templaterie.de/upload/blitzskizze.png' alt='Blitzskizze mit Ebene und Filtern (Dammhirsch von aboutpixel.de User Stormpic)' />
<p>Fast schon dachte ich, ich h&#228;tte eine dritte Methode entdeckt, wie man aus einem Foto eine Zeichnung macht, aber dann beim Test bedurfte es doch wieder einer der alten Methoden, um die Umrisse hervorzuheben.</p>
<p>Wovon ich spreche? Von einem ziemlich alten Beitrag, bei dem ein <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cudGVtcGxhdGVyaWUuZGUvd29yZHByZXNzLz9wPTE5">Foto in eine Comiczeichnung</a> umgewandelt wird im alten templaterie blog. Dort werden zwei Methoden gegen&#252;ber gestellt.</p>
<p>Die neue Methode, die ich nun auf Tutorial-Place.com fand, verwandelt ein <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3R1dG9yaWFsLXBsYWNlLmNvbS9mb3J1bXMvaW5kZXgucGhwP3Nob3d0b3BpYz0xNTI4">Foto 4 Schritten und mittels drei Ebenen in eine Zeichnung</a>. Als ich die Methode am Hirsch von Rainer Storm testete, war das Ergebnis nicht zufriedenstellend. Aber ich konnte mir mit einem der alten Tricks helfen. Und so verwandelt man das Foto vom Hirsch in eine Zeichnung vom Hirsch:</p>
<ol>
<li>Foto 4 mal dublizieren und bis zur vierten Ebene Desaturieren (STRG+U)</li>
<li>Ebene 5: Opacity 60%, Ebenen-Filter: Color ODER: Opacity 100%, Ebenen-Filter: Color Burn oder Multiply f&#252;r kr&#228;ftigere Farben </li>
<li>Ebene 4: Opacity 85%, Ebenen-Filter: Color-Dodge, Invertieren (STRG+I), Gaussian-Blur ca. 3px</li>
<li>Ebene 3: Opacity 20%, Filter Artistic Brushes/Crosshatches Default oder ein wenig gespielt mit den Filtern</li>
<li>Ebene 2: Opacity 70%, Ebenen-Filter: Multiply, Invertieren, Filerset-Blur/Smart-Blur (Radius 50, Threshhold 100, Quality high, Overlay Edge), invertieren</li>
</ol>
<p>Wer noch den angefressenen Rand m&#246;chte, kann in einer neuen Ebene einen 10-12 Pixel breiten Papierfarbenen Rand erzeugen (STRG+A, Edit/Stroke: ca. 10px Location inside, Filter/Blur/Gaussien blur 3,0, Ebene-Filter: Dissolve).</p>
<p>Bildquelle <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Fib3V0cGl4ZWwuZGUvaW5kZXgucGhwND90b3BwYWdlPWltYWdlZGV0YWlscyYjMDM4O2ltYWdlX2lkPTM4MDk0">aboutpixel.de Hirsch von stormpic</a> aka <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zdHVybXdlcmJ1bmcuZGUv">Rainer Storm</a></p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=858" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/858/addi-der-blitz-zeichner-oder-wie-man-ein-foto-in-eine-zeichnung-verwandelt/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>Webdesign f&#252;r Agrarwirte oder wie man eine hohe Wiese-Kachel erzeugt</title>
		<link>http://blog.templaterie.de/711/webdesign-fuer-agrarwirte-oder-wie-man-eine-hohe-wiese-kachel-erzeugt/</link>
		<comments>http://blog.templaterie.de/711/webdesign-fuer-agrarwirte-oder-wie-man-eine-hohe-wiese-kachel-erzeugt/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 22:41:05 +0000</pubDate>
		<dc:creator>Silke Schümann</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Agrarwirtschaft]]></category>
		<category><![CDATA[Filter]]></category>
		<category><![CDATA[Grün]]></category>
		<category><![CDATA[Himmelblau]]></category>
		<category><![CDATA[hohe-Wiese]]></category>
		<category><![CDATA[Kachel]]></category>
		<category><![CDATA[Layer]]></category>
		<category><![CDATA[Motionblur]]></category>
		<category><![CDATA[Noise]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Transparenz]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Webentwurf]]></category>
		<category><![CDATA[Website-Entwurf]]></category>
		<category><![CDATA[Wiesenlandschaft]]></category>

		<guid isPermaLink="false">http://blog.templaterie.de/711/webdesign-fuer-agrarwirte-oder-wie-man-eine-hohe-wiese-kachel-erzeugt/</guid>
		<description><![CDATA[Website-Entwurf f&#252;r die Agrarwirtschaft in frischen Farben.

Der Entwurf entstand durchs Daddeln mit Brushes in dem Versuch eine kleine Kachel zu machen die dennoch nicht zu kleingrieselig werden sollte, was nicht ganz gelang. Zum trost folgt ein Tutorial, wie man ohne Daddeln, schnurstracks eine Kachel erzeugt, wie die, die f&#252;r diesen Entwurf den Hintergrund bildet.
Erst zog, [...]]]></description>
			<content:encoded><![CDATA[<p>Website-Entwurf f&#252;r die Agrarwirtschaft in frischen Farben.</p>
<p class="center"><a href= 'http://blog.templaterie.de/upload/entwurf_frischesweizenfeld.jpg' class="thickbox" rel="entwuerfe" title='Website-Entwurf f&#252;r einen Agrarwirt mit saftig gr&#252;ner hoher Wiese'><img src='http://blog.templaterie.de/upload/entwurf_frischesweizenfeld_500px.jpg' alt='Website-Entwurf f&#252;r einen Agrarwirt mit saftig gr&#252;ner hoher Wiese' /></a></p>
<p>Der Entwurf entstand durchs Daddeln mit Brushes in dem Versuch eine kleine Kachel zu machen die dennoch nicht zu kleingrieselig werden sollte, was nicht ganz gelang. Zum trost folgt ein Tutorial, wie man ohne Daddeln, schnurstracks eine Kachel erzeugt, wie die, die f&#252;r diesen Entwurf den Hintergrund bildet.<span id="more-711"></span></p>
<p>Erst zog, ich dann schob ich und dann kam der Gradient ins Spiel eh ich mich versah hatte ich vier Ebenen. H&#228;tte ich nicht nur Pause gemacht und gedaddelt, wie ginge man gezielt vor?<br />
<h4>Tutorial zur Herstellung einer Landschaftskachel mit hoher Sommerwiese</h4>
<p class="center"><img src='http://blog.templaterie.de/upload/wiesentutorial_500px.jpg' alt='Hohe Wiese mit Perspektive in vier Ebenen' /></p>
<p>Je weiter weg, desto weniger Detail sehen wir und desto graublauer/graugr&#252;ner werden die Farben. An einem warmen Fr&#252;hsommertag gehen die Farben &#252;ber in ein sch&#246;nes sattes himmelblau, doch der Himmel ist selten homogen blau also sollte auch dieser in der Farbe sich ver&#228;ndern. Erschaffen wir erst einmal Himmel und Erde <acronym title="beziehungsweise">bzw.</acronym> Wiese. Die L&#228;nge und die Position bestimmen Realismus und Horizont.  Nun selekttieren wir noch den Himmel und bleiben dabei im homogenen Bereich des Blaus. Nun noch von HImmelblau zu heller Himmelblau einen Gradienten gezogen und schon haben wie die Welt erschaffen, doch noch ist diese nicht sehr lebendig. Selktieren wir aus dem Gr&#252;n gut 3/4 der Fl&#228;che und kopieren diese und f&#252;gen diese wieder ein. Nun f&#252;gen wir per Filter etwas Noise dazu und weil so grieslig scharf wir das auf die Ferne kaum sehen, rauben wir die Klarheit in dem wir die Ebene halb transparent machen. Ebene dublizieren, die Transparent wieder herausnehmen, also die Opacity zur&#252;ck zu 100% und den Filter Motionblur im leichten Winkel (75Â°) und Distanz 15 Pixel. Dieser Ebene noch eine Layermaske verpassen und und mit dem Gradient langsam den Blick auf die grieselige Ebene freigeben. Die Mausbewegung ist &#228;hnlich den Gradienten f&#252;r Himmel und Wiese, nur etwas tiefer. Zum Schlu&#223; noch am Fu&#223; der Fl&#228;che die Werkzeugspitze D&#252;nengras angewendet und Voila, eine hohe Wiese im Fr&#252;hsommer.</p>
<p>Diese Kachel kann dann den Hintergrund bilden f&#252;r eine Website f&#252;r einen Agrarwirt wie eingangs gezeigt werden, wie heute die Bauern hei&#223;en <img src='http://blog.templaterie.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Viel Spa&#223;. Wer das ganze in Ockergelb, statt gr&#252;n gestaltet und dazu noch im Vorderguns ein paar Ahren platziert, erh&#228;lt ein Kornfeld das bis zum Horizont reicht.</p>
<p>Bildquelle: <a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Fib3V0cGl4ZWwuZGUvaW5kZXgucGhwND90b3BwYWdlPWltYWdlZGV0YWlscyYjMDM4O2ltYWdlX2lkPTM5Njg1">Rosmarin-Kartoffeln von User Goenz auf aboutpixel.de</a> (<a href="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5nb2Vuei5jb20v">goenz.com</a>)</p>
 <img src="http://blog.templaterie.de/wp-content/plugins/feed-statistics.php?view=1&post_id=711" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.templaterie.de/711/webdesign-fuer-agrarwirte-oder-wie-man-eine-hohe-wiese-kachel-erzeugt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

