<?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>Der Interaktionsdesigner - PHP, jQuery und CSS &#187; Allgemein</title>
	<atom:link href="http://www.interaktionsdesigner.de/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.interaktionsdesigner.de</link>
	<description>Pauls Blog beschäftigt sich mit Webentwicklungsthemen, im Focus stehen jQuery, TYPO3, CSS und PHP.</description>
	<lastBuildDate>Sat, 05 Jun 2010 21:13:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>entireHtml 2.0</title>
		<link>http://www.interaktionsdesigner.de/2009/09/23/entirehtml-2-0/</link>
		<comments>http://www.interaktionsdesigner.de/2009/09/23/entirehtml-2-0/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 15:24:04 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=600</guid>
		<description><![CDATA[Ich habe schon mal darüber bereichtet. Die Funktion $('.test').html() liefert nicht das komplette HTML, sondern nur das innerHTML. Mit meinem vorhergehenden Post kriegt man schon sehr einfach das komplette HTML eines Elements, und genau das ist das Problem: eines Elements.
Mit ein paar Zeilen mehr im Plugin läufts auch mit beliebig vielen Objekten. So funktionierts:

Die Anforderung
...ist [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe schon mal darüber bereichtet. Die Funktion <strong>$('.test').html()</strong> liefert nicht das komplette HTML, sondern nur das <strong>innerHTML</strong>. Mit meinem <a title="entireHtml in Pauls Blog" href="http://www.interaktionsdesigner.de/2009/05/06/das-komplette-html-eines-elements-mit-jquery-auslesen/" target="_self">vorhergehenden Post</a> kriegt man schon sehr einfach das komplette HTML eines Elements, und genau das ist das Problem: <strong>eines Elements</strong>.</p>
<p>Mit ein paar Zeilen mehr im Plugin läufts auch mit beliebig vielen Objekten. So funktionierts:</p>
<p><span id="more-600"></span></p>
<h2>Die Anforderung</h2>
<p>...ist alt bekannt. Folgendes HTML liegt vor:</p>
<pre><code class=''>&lt;div class="test"&gt;<br />
&nbsp;&nbsp;Wir sind &lt;strong&gt;wichtig&lt;/strong&gt;<br />
&lt;/div&gt;</code></pre>
<p>Wenn man dieses HTML auslesen will und nur weiß, dass das Zielelement die Klasse <em>test</em> hat, schlägt folgender Versuch fehl:</p>
<pre><code class=''>$('.test').html(); //funktioniert nicht</code></pre>
<p>Funktioniert nicht, weil das Ergebnis nicht komplett ist.</p>
<pre><code class=''>Wir sind &lt;strong&gt;wichtig&lt;/strong&gt;</code></pre>
<p>Mein kleines <a title="entireHtml in Pauls Blog" href="http://www.interaktionsdesigner.de/2009/05/06/das-komplette-html-eines-elements-mit-jquery-auslesen/">Plugin entireHtml</a> hilft weiter, und liefert wie erwartet das komplette HTML. So wirds allerdings nervig:</p>
<pre><code class=''>&lt;div class="test"&gt;<br />
&nbsp;&nbsp;Wir sind &lt;strong&gt;wichtig&lt;/strong&gt;<br />
&lt;/div&gt;<br />
&lt;div class="test"&gt;<br />
&nbsp;&nbsp;und das ist &lt;strong&gt;schön&lt;/strong&gt;.<br />
&lt;/div&gt;</code></pre>
<p>Die Funktion <em>entireHtml</em> liefert nur das HTML des <strong>ersten</strong> divs zurück.</p>
<h2>Die Lösung</h2>
<p>Im Plugin stehen alle Objekte in der Variable <em>this</em> zur Verfügung. Das Plugin muss, wenn mehr als ein Element im Stack liegt, <strong>jedes</strong> Element durchgehen und das komplette HTML zurückgeben.</p>
<p>Und ohne große Worte folgt jetzt das <strong>komplette Plugin</strong>:</p>
<pre style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; "><span style="color:#e27600;">/*
 *  entireHtml
 *  Ein kleines, nettes Plugin um das komplette HTML eines Selectors zu bekommen.
 *
 *  Mehr Infos unter http://www.interaktionsdesigner.de
 */</span>

(<span style="color:#3f7bc6;">function</span>($) {
  jQuery.fn.entireHtml = <span style="color:#3f7bc6;">function</span>() {
    <span style="color:#3f7bc6;">if</span>(<span style="color:#3f7bc6;">this</span>.length == <span style="color:#fe2d00;">1</span>) {
      <span style="color:#3f7bc6;">return</span> <span style="color:#3f7bc6;">this</span>.<span style="color:#4080ff;">clone</span>().<span style="color:#4080ff;">wrap</span>(<span style="color:#df2800;">'&lt;div&gt;&lt;/div&gt;'</span>).<span style="color:#4080ff;">parent</span>().<span style="color:#4080ff;">html</span>();
    }
    <span style="color:#3f7bc6;">else</span> {
      <span style="color:#3f7bc6;">var</span> html = <span style="color:#df2800;">''</span>;
      $(<span style="color:#3f7bc6;">this</span>).<span style="color:#4080ff;">each</span>(<span style="color:#3f7bc6;">function</span>() {
        html+= $(<span style="color:#3f7bc6;">this</span>).<span style="color:#4080ff;">entireHtml</span>();
      });
      <span style="color:#3f7bc6;">return</span> html;
    }
  }
})(jQuery);</pre>
<h2>Fazit</h2>
<p>Schön, oder? Funktioniert wie erwartet. Noch eine Antwort: <strong>Wozu braucht man das?</strong> Im Moment arbeiten wir an einem interaktiven Tool um PDFs zu erstellen. Das Formular kommt aus der Extension Powermail für TYPO3 und wird von einem Redakteursteam gepflegt. Im Frontend sollen aber bestimmte Optionen erst auf Nachfrage sichtbar sein.</p>
<p>Redakteur fügt also Dateiuploadfelder hinzu und speichert. jQuery "merkt" das, nimmt das komplette HTML raus, packt es in eine Box, versteckt die Felder und legt einen Link ala "Klicken Sie hier, wenn Sie eine Datei hochladen möchten".</p>
<p>Ich sach nur: Kundenprojekte...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2009/09/23/entirehtml-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cooles Templatesystem für PHP</title>
		<link>http://www.interaktionsdesigner.de/2009/03/17/cooles-templatesystem-fur-php/</link>
		<comments>http://www.interaktionsdesigner.de/2009/03/17/cooles-templatesystem-fur-php/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 09:00:59 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=331</guid>
		<description><![CDATA[Ich habe ein paar Stunden in ein Templatesystem für PHP investiert. Vorher habe ich mir natürlich Smarty und viele weitere Lösungen angesehen, aber keiner der Ansätze hat mich so richtig glücklich gestimmt.
Marker, wie in TYPO3 mit "ausgedachten" Zeichen zu umgeben, um anschließend eine neue Syntax für Schleifen und Bedingungen zu lernen, finde ich zu kompliziert. [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe ein paar Stunden in ein <strong>Templatesystem für PHP</strong> investiert. Vorher habe ich mir natürlich Smarty und viele weitere Lösungen angesehen, aber keiner der Ansätze hat mich so richtig glücklich gestimmt.</p>
<p>Marker, wie in TYPO3 mit "ausgedachten" Zeichen zu umgeben, um anschließend eine neue Syntax für Schleifen und Bedingungen zu lernen, finde ich zu kompliziert. Außerdem habe ich mich hier im Blog schon einmal positiv über die <a title="Kurzschreibweisen in PHP" href="http://www.interaktionsdesigner.de/2009/01/31/php-kurzschreibweisen/" target="_blank">Kurzschreibweisen von PHP</a> geäußert. Da ist es natürlich nur noch ein kleiner Schritt zu einer funktionalen Klasse, welche ein PHP Template mit Inhalt befüllt.</p>
<p>Im folgenden Beitrag stelle ich meine <strong>einfach</strong> zu nutzende Möglichkeit vor. Es ist mein erster Ansatz Richtung Template und ich freue mich sehr über Kommentare und Verbesserungsvorschläge!<span id="more-331"></span></p>
<h2>Vorüberlegungen</h2>
<p>Viele Projekte münden in eine <strong>variable HTML Ansicht</strong>. Dabei muss der Kunde keine Templates erstellen, er hat nur viele verschiedene Anforderungen an ein und die selben Daten. Der Entwickler ist fähig, PHP Scripte zu schreiben und hat <strong>Spaß</strong> daran. Warum also keine PHP Templates?</p>
<p>Es ist natürlich gefährlich, was die <strong>Trennung von Layout und Logik</strong> angeht und erfordert an dieser Stelle besondere Vorsicht, aber belohnt wird man durch eine sehr schnelle Umsetzung und sehr variable Einsatzmöglichkeiten.</p>
<h2>Das Template</h2>
<p>Das PHP Template greift auf die Variablen des Objektes zu, über die Variable <strong>$this</strong>. Ein Beispiel:<pre><code class='html'>&lt;h1&gt;&lt;?=$this-&gt;title?&gt;&lt;/h1&gt;<br />
&lt;? if(isset($this-&gt;subtitle)): ?&gt;&lt;h2&gt;&lt;?=$this-&gt;subtitle?&gt;&lt;/h2&gt;&lt;? endif; ?&gt;<br />
&lt;p&gt;&lt;?=$this-&gt;text?&gt;&lt;/p&gt;<br />
&lt;small&gt;&lt;?=$this-&gt;footer?&gt;&lt;/small&gt;</code></pre> Das ist ein sehr einfaches Template, gespeichert in der Datei <em>einfaches-template.php</em>.</p>
<h2>Der Aufruf</h2>
<p>Um im PHP Script dieses Template zu benutzen muss<strong> nur ein neues Template Objekt</strong> erzeugt werden:<pre><code class='php'>$content = array(<br />
&nbsp;&nbsp;"title" =&gt; "Hallo Welt",<br />
&nbsp;&nbsp;"subtitle" =&gt; "Die Welt zu Gast im Template",<br />
&nbsp;&nbsp;"text" =&gt; "Lorem Ipsum usw."<br />
);<br />
include("class.template.0.2.php");<br />
$output = new template("einfaches-template.php", $content);<br />
echo $output;</code></pre> Wie unschwer zu erkennen ist, macht sich die Template Klasse eine Menge der objektorientierten Programmierweisen zu nutze, wie z.B. die Funktion <em>__toString()</em>, um das geparste Template ausgeben zu können.</p>
<h2>Alternativen</h2>
<p>Ich habe versucht die Klasse so einfach und logisch wie möglich aufzubauen. So können Daten auch einzeln während der Laufzeit des Programms übergeben werden: <pre><code class='php'>$output = new template("einfaches-template.php");<br />
$output-&gt;title = "Hallo Welt 2";<br />
$output-&gt;text = "Ich bin auch möglich.";<br />
echo $output;</code></pre></p>
<h2>Automatische Verarbeitung</h2>
<p>Um eine automatische Vearbeitung der Marker zu ermöglichen merkt sich die Klasse die angeforderten Schlüssel! Nach dem Parsen kann mit der Funktion <em>$output-&gt;keys()</em> ein Array der verwendeten Schlüssel zurückgegeben werden. Dabei akzeptiert die Funktion zwei Parameter: <strong>'set'</strong> oder <strong>'unset'</strong>. Erweitert man also das zweite Beispiel um eine Zeile: <pre><code class='php'>echo "&lt;hr&gt;&lt;pre&gt;".print_r($output-&gt;keys(), 1)."&lt;/pre&gt;";</code></pre>erhält man folgende Ausgabe:</p>
<pre>Array
(
    [0] =&gt; title
    [1] =&gt; text
)</pre>
<p>Und mit dem Parameter<strong> 'unset'</strong> dann:</p>
<pre>Array
(
    [0] =&gt; footer
)</pre>
<p>Sehr praktisch für die automatische Information bei der Verwendung von neuen Templates.</p>
<h2>Dynamische Erweiterung</h2>
<p>Aktuell hatten wir in der Agentur ein Projekt, in dem die Anforderung darin bestand, ein bestimmtes Wort immer kursiv darzustellen. Mit meiner Template Klasse habe ich, wie ich finde, einen sehr eleganten Weg gefunden dies zu realisieren ohne die Aktualisierbarkeit der Klasse zu verlieren. Zum Beispiel das Wort <em>Welt</em>. Der Trick liegt in einer neuen Klasse, welche die Funktion <em>$this-&gt;afterParse()</em> überschreibt: <pre><code class='php'>class custom_template extends template {<br />
&nbsp;&nbsp;function afterParse() {<br />
&nbsp;&nbsp;[tab]$this-&gt;_output = str_replace("Welt", "&lt;i&gt;Welt&lt;/i&gt;", $this-&gt;_output);<br />
&nbsp;&nbsp;}&nbsp;&nbsp;<br />
}</code></pre>Die einzige Herausforderung besteht darin, die Variable <em>$this-&gt;_output</em> zu erkennen und zu bearbeiten. Für das Beispiel oben muss dann nur noch der Aufruf des Templates angepasst werden: <pre><code class='php'>$output = new custom_template("einfaches-template.php");</code></pre> Und schon ist jedes Auftreten von Welt kursiv!</p>
<p>Funktionen, die überschrieben werden wollen sind:<br />
<strong>function afterParse()</strong> - aufgerufen nach dem Parsen. Der geparste Inhalt steht in <em>$this-&gt;_output</em>.<br />
<strong>function beforeParse() </strong>- wird aufgerufen bevor das Parsen beginnt. Alle verfügbaren Variablen stehen in <em>$this-&gt;_data</em>.<br />
<strong>function out($value, $set)</strong> - wird aufgerufen wenn ein Platzhalter im Template ersetzt werden soll. In dieser Funktion definiert man, was bei nicht vorhandenen Inhalten ausgegeben werden soll (dann steht <em>$set</em> auf <em>false</em>). Die Standardfunktion sieht so aus: <pre><code class='php'>function out($value, $set) {<br />
&nbsp;&nbsp;if(!$set)<br />
&nbsp;&nbsp;[tab]return '{'.$value.'?}';<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;return $value;<br />
}</code></pre></p>
<h2>Einschränkungen</h2>
<p>Interne Variablen beginnen in der Klasse <strong>immer mit einem Unterstrich</strong>. Deshalb dürfen diese weder gesetzt, noch im Template abgefragt werden. Beides führt zu einer Fehlermeldung.</p>
<p>Ansonsten habe ich noch keine Einschränkungen entdeckt. Es sind viele interessante Dinge möglich, wie <strong>Schleifen</strong>, <strong>Abfragen</strong>, <strong>dynamische Reaktion</strong> auf Inhalte usw. Das verleitet natürlich zur Vermischung von Logik und Layout. <strong>Bitte immer doppelt nachdenken,</strong> wo eine Funktion hin gehört.</p>
<h2>Fazit</h2>
<p>Ich bin von meiner Lösung recht begeistert und empfinde die Arbeit mit dieser Klasse als <strong>sehr angenehm</strong>. Über Hinweise und Kommentare freue ich mich sehr! Die komplette Klasse kann man sich <a title="Pauls PHP Template" href="http://www.interaktionsdesigner.de/stuff/class.template.0.2.php.html" target="_blank">hier ansehen</a> oder <a title="Pauls PHP Template herunterladen" href="http://www.interaktionsdesigner.de/stuff/class.template.0.2.php.zip" target="_blank">als Zip Datei herunterladen</a>. Natürlich gebe ich keine Garantie für die korrekte Funktionsweise, wünsche aber viel Spaß beim Ausprobieren und Erweitern!</p>
<p>Wenn jemand Einsatzmöglichkeiten in seinem eigenen Projekt dafür sieht, dann ist die Vorraussetzung eine kurze Meldung bei <a title="Mail an Pauls Blog" href="mailto:info@interaktionsdesigner.de" target="_blank">mir</a>, vielen Dank!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2009/03/17/cooles-templatesystem-fur-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lustiger Donnerstag</title>
		<link>http://www.interaktionsdesigner.de/2008/11/27/lustiger-donnerstag/</link>
		<comments>http://www.interaktionsdesigner.de/2008/11/27/lustiger-donnerstag/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 12:11:58 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=126</guid>
		<description><![CDATA[Man frage nicht warum, aber aus irgendeinem Grund wimmelt heute der Feedreader vor lustigen Einträgen. Ein Grund also hier die besten zusammen zu fassen und lachend dem Wochenende entgegen zu winken! Viel Spaß.

Das beste Argument überhaupt
"Doch gerade das ist wenig wahrscheinlich, denn das Argument der Verteidigung war es, dass die 49 Jahre alte Frau die [...]]]></description>
			<content:encoded><![CDATA[<p>Man frage nicht warum, aber aus irgendeinem Grund wimmelt heute der Feedreader vor lustigen Einträgen. Ein Grund also hier die besten zusammen zu fassen und lachend dem Wochenende entgegen zu winken! Viel Spaß.<br />
<span id="more-126"></span><br />
<strong>Das beste Argument überhaupt</strong><br />
"Doch gerade das ist wenig wahrscheinlich, denn das Argument der Verteidigung war es, dass die 49 Jahre alte Frau die MySpace-Nutzungsbedingungen nicht gelesen hatte, und dass sie deshalb auch nicht gegen diese Bedingungen verstoßen haben kann."<br />
Im Artikel über die MySpace Klage auf <a href="http://www.intern.de/news/neue--meldungen/--200811274817.html">intern.de</a></p>
<p><strong>Kann Google in die Zukunft sehen...</strong><br />
...oder stecken sie noch in der Vergangenheit?<br />
<img class="alignnone size-full wp-image-127" title="Google eröffnet Ostdeutschland" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/11/3062246367_68af493b64.jpg" alt="" width="500" height="311" /><br />
via <a href="http://www.googlewatchblog.de/2008/11/27/peinlicher-fehler-bei-site-search-east-germany-in-der-laenderauswahl/">GoogleWatchBlog</a></p>
<p><strong>Enterprise vs. Star Wars</strong><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/v4ijDlbvAxw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/v4ijDlbvAxw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" allowfullscreen="true"></embed></object><br />
via <a href="http://blog.macadelic.de/enterprise-vs-sternenzerstoerer/">Macadelic</a></p>
<p><strong>Pulp Fiction mal anders</strong><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/mSvJwUFI_es&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/mSvJwUFI_es&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" allowfullscreen="true"></embed></object><br />
via Arbeitskollege (ein Hoch auf ein internes Blog)</p>
<p><strong>Michael Sholk Design</strong><br />
Das ist mal ein <a href="http://www.sholk.com/pd_05.html">entspanntes Poster</a>. Sehr gut. Auch die anderen Arbeiten von ihm lohnen einen Blick.</p>
<p><strong>Gewinnspiel im Designblog</strong><br />
Und wenn ich eh schon dabei bin lauter Links zu sammeln, dann kann ich auch gleich auf das coole Gewinnspiel im Designblog hinweisen, bei dem es einen tollen Kamin zu gewinnen gibt. Der würde sich in meinem Wohnzimmer gut machen. Also, <a href="http://www.designtagebuch.de/feuer-und-flamme-fuer-design-gewinnspiel/">Trackback</a>! Arbeite für mich. Und alle die den Blog noch nicht kennen, den sei ein Blick wärmstens empfohlen.</p>
<p>Zum Beispiel gibt es erhellende <a href="http://www.designtagebuch.de/der-feste-griff-der-regierung/">Artikel über das neue Logo</a> des Office of Government Commerce. Ich weiß es ist schon alt, lustig bleibt es aber trotzdem.</p>
<p><em>Neue Einträge im Feedreader: 0. Auf ein neues Morgen früh.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/11/27/lustiger-donnerstag/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Halloween mit jQuery</title>
		<link>http://www.interaktionsdesigner.de/2008/10/29/halloween-mit-jquery/</link>
		<comments>http://www.interaktionsdesigner.de/2008/10/29/halloween-mit-jquery/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 11:38:24 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=107</guid>
		<description><![CDATA[Ich bin kein Freund von Halloween und dessen Kommerzialisierung. Aber seit heute schlage ich die nächste Einladung zum Kürbisse schnitzen nicht mehr aus, denn ich habe einen gefunden, der einfach super ist!!!
Ohne viele Worte:

Gefunden im jQuery Blog
]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-108" title="kuerbis" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/10/kuerbis.jpg" alt="Ich schnitze einen Kürbis!" width="100" />Ich bin kein Freund von Halloween und dessen Kommerzialisierung. Aber seit heute schlage ich die nächste Einladung zum Kürbisse schnitzen nicht mehr aus, denn ich habe einen gefunden, der einfach super ist!!!<span id="more-107"></span></p>
<p>Ohne viele Worte:</p>
<p><img class="middle size-full wp-image-109" title="Der jQuery Kürbis!" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/10/2981496331_087fa810a4.jpg" alt="" width="375" height="500" /></p>
<p>Gefunden im <a href="http://jquery.com/blog/2008/10/28/jquery-pumpkin/" target="_blank">jQuery Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/10/29/halloween-mit-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Besser Programmieren beim Laufen</title>
		<link>http://www.interaktionsdesigner.de/2008/10/28/besser-programmieren-beim-laufen/</link>
		<comments>http://www.interaktionsdesigner.de/2008/10/28/besser-programmieren-beim-laufen/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 10:55:21 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=91</guid>
		<description><![CDATA[Mal ein paar Worte abseits der Webentwicklung und des Computers (fast): Das Laufen! Wer noch nicht damit angefangen hat oder immer noch gegen seinen inneren Schweinehund kämpft, der sollte seinen Kontostand überprüfen und sich das Nike+ iPod Sports Kit gönnen.
Dazu empfielt sich natürlich der passende iPod und für alle die zufälliger Weise keinen Nike Schuh [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-92" title="nikeplus" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/10/nikeplus.jpg" alt="Nike+iPod Erfahrungsbericht" width="137" height="177" />Mal ein paar Worte abseits der Webentwicklung und des Computers (fast): Das Laufen! Wer noch nicht damit angefangen hat oder immer noch gegen seinen inneren Schweinehund kämpft, der sollte seinen Kontostand überprüfen und sich das <a href="http://www.apple.com/de/ipod/nike/run.html">Nike+ iPod Sports Kit</a> gönnen.</p>
<p>Dazu empfielt sich natürlich der passende iPod und für alle die zufälliger Weise keinen Nike Schuh besitzen (so wie ich), eine <a href="http://www.amazon.de/SwitchEasy-RunAway-Sportschuh-Adapter-iPod-Sport/dp/B000ND92EY/ref=pd_sim_sg_3" target="_blank">universelle Halterung</a>. Die Installation ist kinderleicht (praktisch überhaupt nicht vorhanden - einfach ran und los) und der Sensor hält gut am Fuß.</p>
<p>Jetzt folgen ein paar Tipps die mir beim Einstieg geholfen haben.<span id="more-91"></span></p>
<h2>Aufwärmen und Dehnen</h2>
<p>Ich fange mit ca. 1,5km ehr schnellem laufen an bis ich im Park an einer schönen Stelle zum dehnen angekommen bin. Aus dem Sportunterricht erinnert man sich ja noch an einige Dehnübungen, die kann man erweitern und ausbauen, wichtig dabei ist vorallem den Rücken gerade zu lassen und nicht zu federn sondern die Muskeln zu strecken. Und vorsicht mit den Sehnen, die sind empfindlich - hat mir ein vorbeieilender Läufer zugerufen. Netter Tipp.<img class="middle size-full wp-image-106" title="Laufen auf dem Feld" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/10/unbenannt-4.jpg" alt="" width="700" height="200" /></p>
<h2>Lauf-ABC</h2>
<p>Diese Sammlung an Übungen lassen sich super in den Lauf einbauen und bringen Abwechslung und trainieren die Fußgelenke. Außerdem helfen sie länger durchzuhalten und machen Spaß!<br />
Ich empfehle immer eine Übung (beliebige Reihenfolge) durchzuführen und sobald man sich davon erholt hat die nächste. Es ist ratsam sich einen Fixpunkt zu suchen bis wohin man rennt und die Strecke nicht zu übertreiben.</p>
<h2>Ausdauer und Kraft</h2>
<p>Anschließend laufe ich ein paar Kilometer, je nach Stimmung und Wetterlage, einfach gerade aus bis es keinen Spaß mehr macht. Danach kann man etwa alle fünf Minuten Pausen einlegen für Liegestütz, Sittups und sonstigen Übungen die einem einfallen.</p>
<p>Man trainiert damit nicht nur die Beine und ich empfinde es als sehr entspannend nach, z.B. Liegestützen weiter zu laufen.<br />
<img class="middle size-full wp-image-104" title="Laufen neben den Schienen" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/10/unbenannt-2.jpg" alt="" width="700" height="200" /></p>
<h2>Endspurt</h2>
<p>Die letzten 100 Meter dann noch einen kurzen Sprint und nicht vergessen mit einem Siegessprung über die Ziellinie zu fliegen! Geschafft!</p>
<p>Das macht Spaß und gibt neue Kraft. Außerdem hat man kein schlechtes Gewissen weil man ja nicht den ganzen Tag vor dem Computer verbracht hat.</p>
<h2>Fazit und Regeneration</h2>
<p>Man sollte sich schon eine halbe Stunde entspannen, duschen, Feeds oder Zeitung lesen und dazu Obst essen und eine Magnesiumtablette trinken; gegen Krämpfe und Muskelschmerzen.</p>
<p>Beim Laufen sollte man auch die anderen Jogger anlächeln oder aufmunternd zunicken. Für mehr Kraft und eine große, zusammenhaltende Community!</p>
<p>Abschließend sei noch gesagt das ich kein Sportlehrer bin und jeder auf seinen eigenen Körper hören muss.<br />
<img class="middle size-full wp-image-105" title="Laufen im Wald" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/10/unbenannt-3.jpg" alt="" width="700" height="200" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/10/28/besser-programmieren-beim-laufen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offline validieren mit Validator S.A.C.</title>
		<link>http://www.interaktionsdesigner.de/2008/09/30/offline-validieren-mit-validator-sac/</link>
		<comments>http://www.interaktionsdesigner.de/2008/09/30/offline-validieren-mit-validator-sac/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 13:33:43 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=87</guid>
		<description><![CDATA[
Bei Pixelgraphix wurde ein W3C Stand Alone Validator vorgestellt. Das ist doch mal ein praktisches Tool. Einfach eine Datei oder einen Link aus dem bevorzugten Browser auf das Icon im Dock ziehen und die Validierung wird gestartet.
In den Kommentaren werden auch diverse Firefox Erweiterungen vorgeschlagen, aber ich habe das Gefühl der Fuchs hat schon schwer [...]]]></description>
			<content:encoded><![CDATA[<p><img class="align size-full wp-image-90" title="dock" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/09/dock.png" alt="" width="500" height="81" /></p>
<p>Bei <a href="http://www.pixelgraphix.de/weblog/artikel/stand-alone-w3c-html-validator-fuer-mac-os-x/" target="_blank">Pixelgraphix</a> wurde ein <a href="http://habilis.net/validator-sac/" target="_blank">W3C Stand Alone Validator</a> vorgestellt. Das ist doch mal ein praktisches Tool. Einfach eine Datei oder einen Link aus dem bevorzugten Browser auf das Icon im Dock ziehen und die Validierung wird gestartet.<span id="more-87"></span></p>
<p>In den Kommentaren werden auch diverse Firefox Erweiterungen vorgeschlagen, aber ich habe das Gefühl der Fuchs hat schon schwer zu ackern mit Firebug, Web Developer, Cache Status, Screengrab, Firecookie, Pencil, Rainbow for Firebug, Screengrab und TYPO3 Backend (das waren lauter Empfehlungen).</p>
<p>Praktisch ist auch das sich ein neues Fenster öffnet sobald eine weitere Datei zur Validierung gebracht wird. Es funktionieren Links vom lokalen Webserver genau so wie Dateien aus dem Dateisystem. Super cool.</p>
<p>Hier gehts zum <a href="http://habilis.net/validator-sac/" target="_blank">download</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/09/30/offline-validieren-mit-validator-sac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mit jQuery einen Schatten zaubern</title>
		<link>http://www.interaktionsdesigner.de/2008/09/19/mit-jquery-einen-schatten-zaubern/</link>
		<comments>http://www.interaktionsdesigner.de/2008/09/19/mit-jquery-einen-schatten-zaubern/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 09:32:23 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=82</guid>
		<description><![CDATA[Um eine Überschrift hervor zu heben, habe ich ein kleines Plugin geschrieben was das automatisiert erledigt. Ach, was heißt klein? Mini könnte man es nennen. Demos + Download in diesem Artikel.
Einbindung
Um in den Genuss dieses wahnsinnigen Effekts zu kommen, wird die aktuelle jQuery Version benötigt (oder das Dimension Plugin), dann die Datei jquery.shadow.js und jquery.shadow.css. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-68" title="jquery-logo" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/08/jquery-logo.gif" alt="jQuery Logo" width="168" height="146" />Um eine Überschrift hervor zu heben, habe ich ein kleines Plugin geschrieben was das automatisiert erledigt. Ach, was heißt klein? Mini könnte man es nennen. Demos + <a href="http://www.interaktionsdesigner.de/stuff/jquery.shadow.zip" title="Schatten mit jQuery Plugin download">Download</a> in diesem Artikel.<span id="more-82"></span></p>
<h3 class="shadow">Einbindung</h3>
<p>Um in den Genuss dieses wahnsinnigen Effekts zu kommen, wird die aktuelle jQuery Version benötigt (oder das Dimension Plugin), dann die Datei jquery.shadow.js und jquery.shadow.css. Anschließend den Überschriften zuweisen:</p>
<pre><code class="javascript">$(document).ready(function() {
  $("h3.shadow").shadow();
});</code></pre>
<h3 class="shadow">Optionen</h3>
<p>Es gibt zwei mögliche Optionen: Die Farbe des Schatten und die zugewiesene Klasse:</p>
<pre><code class="javascript">$(document).ready(function() {
  $("h3.shadow").shadow({
    class: "meinSchatten",
    color: "red"
  });
});</code></pre>
<h3 class="shadow">Arbeitsweise</h3>
<p>Das Plugin umschließt das gewählte Element mit einem Div Container (mit der Klasse <em>shadowWrap</em>) und weißt diesem die Höhe des gewählten Elements zu. Anschließend wird das Element kopiert (<em>clone()</em>) und per CSS in den Hintergrund gerückt.<br />
Damit der gewünschte Effekt entsteht müssen die Elemente innerhalb des Divs absolut positioniert sein. Das könnte bei verschiedenen Konstrukten zu unerwarteten Ergebnissen führen. Das sollte beachtet werden.</p>
<h3 class="shadow">Download</h3>
<p>Das Plugin und die CSS Datei gibt es als praktische <a href="http://www.interaktionsdesigner.de/stuff/jquery.shadow.zip" title="Schatten mit jQuery Plugin download">ZIP Datei</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/09/19/mit-jquery-einen-schatten-zaubern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iTunes 8 ohne Pfeile und dann spielen!</title>
		<link>http://www.interaktionsdesigner.de/2008/09/18/itunes-8-ohne-pfeile-und-dann-spielen/</link>
		<comments>http://www.interaktionsdesigner.de/2008/09/18/itunes-8-ohne-pfeile-und-dann-spielen/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 10:30:23 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=80</guid>
		<description><![CDATA[In der neuen iTunes Version lassen sich die Verlinkungen zum Shop nicht mehr ausschalten. Dabei bewegt die neue, und ganz nette Genius-Leiste mich schon ständig zum Geld ausgeben.
Bekanntermaßen ist bei Mac OS X über das Terminal ja alles möglich. Wer iTunes beendet und folgende Zeile in sein Terminal eingibt, ist die Pfeile los:
defaults write com.apple.iTunes [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-81" title="feist" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/09/feist.png" alt="" width="167" height="138" />In der neuen iTunes Version lassen sich die Verlinkungen zum Shop nicht mehr ausschalten. Dabei bewegt die neue, und ganz nette Genius-Leiste mich schon ständig zum Geld ausgeben.</p>
<p>Bekanntermaßen ist bei Mac OS X über das Terminal ja alles möglich. Wer iTunes beendet und folgende Zeile in sein Terminal eingibt, ist die Pfeile los:</p>
<pre><span>defaults write com.apple.iTunes show-store-arrow-links -bool FALSE</span></pre>
<p>Mit TRUE am Ende lassen sich die Pfeile wiederherstellen, der Tipp kommt von den <a href="http://www.macosxhints.ch/index.php?page=2&amp;hintid=2310" target="_blank">Mac OS X Hints</a>.</p>
<p>Und nach getaner Arbeit lohnt sich ein Blick auf <a href="http://gd08.ch/FEIST/" target="_blank">FEIST</a>. Ein kleiner, lustiger Ball der durch eine grafisch sehr gelungene Welt rennt. Könnte mal wieder ein Spiel sein das Spaß macht zu spielen. Neben <a href="http://x-moto.softonic.de/">X Moto</a> natürlich.</p>
<p>Via <a href="http://blog.tice.de/beitrag.php?file=2008_09_17_2338" target="_blank">blog.tice.de</a>.</p>
<p>Und <a href="http://blog.rene-weiss.de/2008/09/na-immerhin-113.html" target="_blank">René</a> hält einem dann auch noch vom weiterarbeiten ab: Sehr lustige Fragen und immerhin überlebe ich 3 Sekunden länger als er; bei seinem ersten Versuch.</p>
<p><a style=" background: #000 url(http://www.bunkbeds.net/velociraptor/img/badge.jpg) no-repeat 0 0; display: block; width: 322px; height: 157px; text-align: center; padding-top: 150px; text-decoration: none; font-family: Times New Roman, serif; font-size: 30px; color: #ff9900; " href="http://www.bunkbeds.net/velociraptor/"> <span style="display: none;">I could survive for</span> 1 minute, 16 seconds <span style="display: none;">chained to a bunk bed with a velociraptor</span> </a></p>
<p>Ich würde sagen <strong>das</strong> sind die Themen die die Branche interessieren!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/09/18/itunes-8-ohne-pfeile-und-dann-spielen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nichts geht mehr ohne Firebug</title>
		<link>http://www.interaktionsdesigner.de/2008/09/08/nichts-geht-mehr-ohne-firebug/</link>
		<comments>http://www.interaktionsdesigner.de/2008/09/08/nichts-geht-mehr-ohne-firebug/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 19:02:31 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=72</guid>
		<description><![CDATA[Wie in den Kommentaren bei Dr. Web schon angesprochen wurde: Ich kann mir nicht mehr vorstellen wie man ohne dieses unglaublich nützliche Tool gearbeitet hat.
Bei Dr. Web gibt es eine interessante Liste mit Erweiterungen für den nützlichen Käfer, die einen Blick definitiv wert ist. Im Moment probiere ich noch mit FirePHP rum - interessant, aber [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-73" title="firebug" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/09/firebug.jpg" alt="" width="162" height="162" />Wie in den Kommentaren bei Dr. Web schon angesprochen wurde: Ich kann mir nicht mehr vorstellen wie man ohne dieses unglaublich nützliche Tool gearbeitet hat.</p>
<p>Bei Dr. Web gibt es eine <a href="http://www.drweb.de/weblog/weblog/?p=1390" target="_blank">interessante Liste mit Erweiterungen</a> für den nützlichen Käfer, die einen Blick definitiv wert ist. Im Moment probiere ich noch mit FirePHP rum - interessant, aber der sträubt sich noch gegen meine Versuche informationen aus ihm rauszukriegen.</p>
<p>Bis dahin bleibt nur zu sagen: Guckt euch diese Liste an, und wenn ihr Firebug noch nicht kennt und/oder nutzt, <strong>dann ändert das</strong>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/09/08/nichts-geht-mehr-ohne-firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coda syntax highlighting für Typoscript</title>
		<link>http://www.interaktionsdesigner.de/2008/09/05/coda-syntax-highlighting-fur-typoscript/</link>
		<comments>http://www.interaktionsdesigner.de/2008/09/05/coda-syntax-highlighting-fur-typoscript/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 08:50:52 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.interaktionsdesigner.de/?p=70</guid>
		<description><![CDATA[Dank des unermüdlichen Einsatzes von Patrick Lischka gibt es die sehr angenehme Erweiterung für Coda ts4c in einer neuen Version.
Die Version 1.1.12 behebt einige Fehler und bietet eine ganze Liste Neuerungen. Da macht das Arbeiten mit Typoscript doch gleich wieder mehr Spaß.
Und einen wertvollen Tipp konnte er mir auch geben: Mit ein paar Zeilen Typoscript [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-71" title="typoscript" src="http://www.interaktionsdesigner.de/wp-content/uploads/2008/09/typoscript.png" alt="" width="373" height="170" />Dank des unermüdlichen Einsatzes von Patrick Lischka gibt es die sehr angenehme Erweiterung für Coda <a href="http://t3dev.graustich.com/" target="_blank">ts4c</a> in einer neuen Version.</p>
<p>Die Version 1.1.12 behebt einige Fehler und bietet eine ganze Liste Neuerungen. Da macht das Arbeiten mit Typoscript doch gleich wieder mehr Spaß.</p>
<p>Und einen wertvollen Tipp konnte er mir auch geben: Mit ein paar Zeilen Typoscript lässt sich das lästige Cache leeren nach jeder kleinen Änderung per FTP verhindern.<span id="more-70"></span></p>
<h2>Typoscript auslagern</h2>
<p>Mit der bekannten Zeile</p>
<pre><code class="typoscript">&lt;INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/#YourPath/#YourFile.ts"&gt;</code></pre>
<p>lagern wir die Konfiguration aus. Soweit so gut.</p>
<h2>Cache leeren verhindern</h2>
<p><em>Davor</em> fügen wir eine Bedingung ein, welche prüft ob ein Backend Benutzer angemeldet ist:</p>
<pre><code class="typoscript">[globalVar = TSFE : beUserLogin&gt; 0]
config.no_cache = 1
[global]</code></pre>
<p>Dazu gehört in das TSConfig Feld des Benutzers noch die folgende Zeile:</p>
<pre><code class="typoscript">admPanel.override.tsdebug.forceTemplateParsing = 1</code></pre>
<p>So einfach! Bleibt mir noch zu sagen: Vielen Dank für die netten Mails, die guten Tipps und diese herrliche Erweiterungen für das liebliche Coda. Ich bin gespannt auf die nächsten Versionen!</p>
<p>Mehr Informationen: <a href="http://t3dev.graustich.com/" target="_blank">Typoscript syntax highlighting für Coda</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.interaktionsdesigner.de/2008/09/05/coda-syntax-highlighting-fur-typoscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
