<?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>TYPO3 Blogger &#187; TypoScript</title>
	<atom:link href="http://typo3blogger.de/category/typoscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://typo3blogger.de</link>
	<description>TYPO3 News, Development &#38; Insider Infos</description>
	<lastBuildDate>Tue, 22 May 2012 19:04:05 +0000</lastBuildDate>
	<language>de-de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SEO: Canonical URLs für eindeutige Seitenmarkierung</title>
		<link>http://typo3blogger.de/seo-canonical-urls-fur-eindeutige-seitenmarkierung/</link>
		<comments>http://typo3blogger.de/seo-canonical-urls-fur-eindeutige-seitenmarkierung/#comments</comments>
		<pubDate>Wed, 09 May 2012 10:21:52 +0000</pubDate>
		<dc:creator>Thomas Löffler</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[duplicate content]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[tt_news]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[typoscript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=8057</guid>
		<description><![CDATA[Im TYPO3 gibt es verschiedene Wege, eine Seite mit Inhalten über die URL-Eingabe anzuzeigen. Zum Beispiel gibt uns die Seite http://www.domain.tld/index.php?id=39 die selben Inhalte wie http://www.domain.tld/ich-liebe-canonical-urls.html oder auch http://www.domain.tld/ich-liebe-canonical-urls/. Die Suchmaschine bekommt alle 3 Links und verwaltet diese als 3 verschiedene Seiten. Da die Seite aber die selben Inhalte haben, straft die Suchmaschine die Seite(n) [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Im TYPO3 gibt es verschiedene Wege, eine Seite mit Inhalten über die URL-Eingabe anzuzeigen.</p>
<p>Zum Beispiel gibt uns die Seite http://www.domain.tld/index.php?id=39 die selben Inhalte wie http://www.domain.tld/ich-liebe-canonical-urls.html oder auch http://www.domain.tld/ich-liebe-canonical-urls/.</p>
<p>Die Suchmaschine bekommt alle 3 Links und verwaltet diese als 3 verschiedene Seiten. Da die Seite aber die selben Inhalte haben, straft die Suchmaschine die Seite(n) wegen Duplicate Content ab.<span id="more-8057"></span></p>
<p>Hilfe bekommt man durch einen kleine Zeile im Header der Seite, dem Canonical Tag.<br />
Im TYPO3 gibt man an, welche URL nun die richtige ist und setzt sie in diesen Canonical Tag. Somit weiß die Suchmaschine auch beim Besuch der &#8220;anderen&#8221; zwei Seiten, dass die wirklich richtige Seite unter der URL im Canonical Tag erreichbar ist.</p>
<p>Schwierig wird dieses Unterfangen, wenn es weitere Parameter in der URL gibt, die z.B. tt_news und andere Extensions benötigen. Man braucht einige Parameter, aber beileibe nicht alle. Im Beispiel tt_news ist der Parameter backPid z.B. unnötig, da er die Inhalte nicht wesentlich beeinflußt.</p>
<p>Da die <a title="Extension canonical zur Vermeidung von Duplicate Content" href="http://typo3blogger.de/extension-canonical-zur-vermeidung-von-duplicate-content/">Extension &#8220;canonical&#8221;</a> unter der 4.6.8 nicht mehr funktioniert, habe ich mir ein TypoScript-Schnipsel aufgebaut, welches die meisten meiner Fälle abdeckt. Natürlich muss dieses Schnipsel je nach Anforderung angepasst werden, doch das meiste dürfte überall passen:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778 <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
<span style="color: #aaa; font-style: italic;"># Aktuelle Seite</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>parameter<span style="color: #339933; font-weight: bold;">.</span>data <span style="color: #339933; font-weight: bold;">=</span> TSFE<span style="color: #339933; font-weight: bold;">:</span>id
<span style="color: #aaa; font-style: italic;"># Gib nur die URL zurück</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>returnLast <span style="color: #339933; font-weight: bold;">=</span> url
<span style="color: #aaa; font-style: italic;"># Erstelle eine absolute URL</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>forceAbsoluteUrl <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
<span style="color: #aaa; font-style: italic;"># Fügt alle GET-Parameter hinzu, wie z.B. tt_news, L und auch cHash</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>addQueryString <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>addQueryString<span style="color: #339933; font-weight: bold;">.</span>method <span style="color: #339933; font-weight: bold;">=</span> GET
<span style="color: #aaa; font-style: italic;"># Schliesst bestimmte Parameter aus, z.B. cHash oder auch backPid von tt_news</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>addQueryString<span style="color: #339933; font-weight: bold;">.</span>exclude <span style="color: #339933; font-weight: bold;">=</span> cHash,backPid
<span style="color: #aaa; font-style: italic;"># Wrappen und mit dem richtigen Tag einbinden. </span>
<span style="color: #aaa; font-style: italic;"># Das Leerzeichen nach dem öffnenden Tag bitte entfernen</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">&lt;</span> link rel<span style="color: #339933; font-weight: bold;">=</span>&quot;canonical&quot; href<span style="color: #339933; font-weight: bold;">=</span>&quot;<span style="color: #339933; font-weight: bold;">|</span>&quot; <span style="color: #339933; font-weight: bold;">/&gt;</span></pre></div></div>

<p>Ich hoffe, einige können damit etwas anfangen.<br />
Das TypoScript ist natürlich nicht die eierlegende Wollmilchsau für jede Seite, sondern fordert besonders beim Parameter exclude noch Nacharbeit.<br />
Diese kann übrigens darunter einfach mit folgendem Snippet bearbeitet werden.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>headerData<span style="color: #339933; font-weight: bold;">.</span>778<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>addQueryString<span style="color: #339933; font-weight: bold;">.</span>exclude <span style="color: #339933; font-weight: bold;">:=</span> addToList<span style="color: #009900;">&#40;</span>extParam1, extParam2<span style="color: #009900;">&#41;</span></pre></div></div>

<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/seo-canonical-urls-fur-eindeutige-seitenmarkierung/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>TypoScript Unterstützung in PhpStorm</title>
		<link>http://typo3blogger.de/typoscript-unterstutzung-in-phpstorm/</link>
		<comments>http://typo3blogger.de/typoscript-unterstutzung-in-phpstorm/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 12:33:40 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=8020</guid>
		<description><![CDATA[PhpStorm ist eine Integrierte Entwicklungsumgebung (IDE) der Firma JetBrains für die Scriptsprache PHP und andere Webtechnologien und erfreut sich in der TYPO3 Community wachsender Beliebtheit. Neben den vielen Features von PhpStorm dürfte auch die Tatsache sein, dass der Hersteller an Open Source Entwickler eine kostenlose Open Source License vergibt, in deren Genuss viele TYPO3 Core [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3blogger.de/wp-content/uploads/2012/04/com.jetbrains.typoscript_13164.png"><img class="alignleft size-medium wp-image-8022" title="com.jetbrains.typoscript_13164" src="http://typo3blogger.de/wp-content/uploads/2012/04/com.jetbrains.typoscript_13164-300x216.png" alt="" width="300" height="216" /></a><a href="http://www.jetbrains.com/phpstorm/">PhpStorm</a> ist eine Integrierte Entwicklungsumgebung (IDE) der Firma <a href="http://www.jetbrains.com">JetBrains</a> für die Scriptsprache PHP und andere Webtechnologien und erfreut sich in der TYPO3 Community wachsender Beliebtheit. Neben den vielen Features von PhpStorm dürfte auch die Tatsache sein, dass der Hersteller an Open Source Entwickler eine kostenlose<a href="http://www.jetbrains.com/phpstorm/buy/buy.jsp#openSource"> Open Source License</a> vergibt, in deren Genuss viele TYPO3 Core Developer gekommen sind. Die IDE ist sowohl für Windows, Mac als auch Linux verfügbar.</p>
<p>Seit dem Wochenende gibt es jetzt ein Plugin für PhpStorm, dass <a href="http://plugins.jetbrains.com/plugin/?webide&amp;id=6965">TypoScript Unterstützung nachrüstet</a>. Für den Anfang sind das Syntax Highlighting, Code Folding und die Quick Navigation. Soweit ich das bisher testen konnte, funktioniert das Plugin nur mit dem heute erschienenen <a href="http://confluence.jetbrains.net/display/WI/Web+IDE+EAP">4.0.1 RC</a>, nicht aber mit Version 3.0.3 und älter.<span id="more-8020"></span></p>
<p>Die Installation geht in wenigen Schritten über File =&gt; Settings =&gt; Plugins =&gt;Browse Repositories und dann nach TypoScript suchen. Am Mac kommt man über PhpStorm =&gt; Preferences =&gt; Plugins =&gt; Browse Repositories zum selben Ergebnis.</p>
<p>Ein großes Dankeschön geht an Alexey Gopachenko und Elena Shaverdova von JetBrains, die diese erste Version entwickelt und kostenlos zur Verfügung gestellt haben. Für die Zukunft ist geplant, das Plugin unter eine Open Source Lizenz zu stellen oder durch die TYPO3 Community weiterentwickeln zu lassen.</p>
<p>Bitte testet das Plugin ausführlich und <a href="http://plugins.jetbrains.com/plugin/add_comment/?webide&amp;pid=6965">bewertet es bzw. gebt ein Rating ab</a>. Weiteres Feedback und Bugs können im <a href="http://youtrack.jetbrains.com/issue/WI-7249">Issue im JetBrains Bugtracker</a> eingetragen werden. Wenn die TYPO3 Community genügend Interesse an dem Plugin zeigt, wird JetBrains bestimmt gerne weitere Verbesserungen vornehmen!</p>
<p>Update: Danke an Kabarakh für den Hinweis: wenn man unter Settings =&gt; File Types =&gt; Recognized File Types =&gt; TypoScript  noch *.ts einfügt, funktiniert das Plugin auch mit alten Versionen von PhpStorm!</p>
<p>Update 2: Laut Jigal van Hemert kann man die Registered Patterns auch wie folgt erweitern:</p>
<pre>*.ts
setup.txt
constants.txt
ext_conf_template.txt
ext_typoscript_setup.txt
ext_typoscript_constants.txt</pre>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/typoscript-unterstutzung-in-phpstorm/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Templating 3.0 mit TYPO3 – backend_layout (Teil 2)</title>
		<link>http://typo3blogger.de/templating-3-0-mit-typo3-backend_layout-teil-2/</link>
		<comments>http://typo3blogger.de/templating-3-0-mit-typo3-backend_layout-teil-2/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 19:49:43 +0000</pubDate>
		<dc:creator>Thomas Löffler</dc:creator>
				<category><![CDATA[Templates]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[backend_layout]]></category>
		<category><![CDATA[fluidtemplate]]></category>
		<category><![CDATA[templating]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7866</guid>
		<description><![CDATA[Im ersten Teil bin ich auf die Einbindung des FLUIDTEMPLATEs eingegangen, heute will ich speziell den Content-Bereich eines Templates eingehen. Dabei kommt uns eine Extension zugute, die seit TYPO3 4.5 im Core ist. Diese heißt &#8220;backend_layout&#8221; und als neuer Datensatz heißt er &#8220;Backend Layout&#8221;: Ein neues Backend Layout können wir unsere eigene oder vom Kunden [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Im ersten Teil bin ich auf die <a title="Templating 3.0 mit TYPO3 – FLUIDTEMPLATE (Teil 1)" href="http://typo3blogger.de/templating-3-0-mit-typo3-fluidtemplate-teil-1/">Einbindung des FLUIDTEMPLATEs</a> eingegangen, heute will ich speziell den Content-Bereich eines Templates eingehen.</p>
<p>Dabei kommt uns eine Extension zugute, die seit TYPO3 4.5 im Core ist. Diese heißt &#8220;backend_layout&#8221; und als neuer Datensatz heißt er &#8220;Backend Layout&#8221;:<span id="more-7866"></span></p>
<div id="attachment_7868" class="wp-caption alignnone" style="width: 290px"><a href="http://typo3blogger.de/wp-content/uploads/2012/03/Bildschirmfoto-2012-03-20-um-19.47.52.png"><img class="size-full wp-image-7868" title="Backend Layout" src="http://typo3blogger.de/wp-content/uploads/2012/03/Bildschirmfoto-2012-03-20-um-19.47.52.png" alt="" width="280" height="167" /></a><p class="wp-caption-text">Backend Layout Datensatz</p></div>
<p>Ein neues Backend Layout können wir unsere eigene oder vom Kunden gewünschte Inhaltsstruktur mittels des Wizards erstellen. Wir erstellen heute ein Layout, welches in der oberen Hälfte aus zwei Spalten und in der unteren Hälfte aus einer Spalte über die gesamte Breite besteht:</p>
<div id="attachment_7870" class="wp-caption alignnone" style="width: 310px"><a href="http://typo3blogger.de/wp-content/uploads/2012/03/Bildschirmfoto-2012-03-20-um-19.59.38.png"><img class="size-medium wp-image-7870" title="Backend Layout Wizard" src="http://typo3blogger.de/wp-content/uploads/2012/03/Bildschirmfoto-2012-03-20-um-19.59.38-300x288.png" alt="Backend Layout Wizard" width="300" height="288" /></a><p class="wp-caption-text">Backend Layout Wizard</p></div>
<p>Hier sieht man schön die zukünftige Struktur. Man sieht auch, dass ich jeden Bereich mit einer Zahl fest definiert habe. Diese Zahlen müssen wir uns merken für das TypoScript später.</p>
<p>Nachdem wir das Backend Layout gespeichert haben, können wir uns sogleich mal an das TypoScript machen. Merken müssen wir uns noch die UID des Backend Layouts. Und so geht es los:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;"># Ein CASE Objekt schaut, welcher Fall eintritt und handelt dementsprechend.</span>
<span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>contentStructure <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">CASE</span>
<span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>contentStructure <span style="color: #009900;">&#123;</span>
  <span style="color: #aaa; font-style: italic;"># Durch den Key können wir festlegen, auf welches Feld er prüft, in diesem Fall das Feld</span>
  <span style="color: #aaa; font-style: italic;"># &quot;backend_layout&quot; im Seiten-Datensatz.</span>
  key<span style="color: #339933; font-weight: bold;">.</span>field <span style="color: #339933; font-weight: bold;">=</span> backend_layout
  <span style="color: #aaa; font-style: italic;"># Falls das Feld leer ist, schaut er rekursiv bis zur Root Page, ob irgendwo das Feld gesetzt ist.</span>
  key<span style="color: #339933; font-weight: bold;">.</span>ifEmpty<span style="color: #339933; font-weight: bold;">.</span>data <span style="color: #339933; font-weight: bold;">=</span> levelfield<span style="color: #339933; font-weight: bold;">:</span>-<span style="color: #cc0000;">2</span>, backend_layout_next_level, slide
&nbsp;
  <span style="color: #aaa; font-style: italic;"># Die UID des Backend Layout Datensatzes, in unserem Falle die 1</span>
  <span style="color: #cc0000;">1</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
  <span style="color: #cc0000;">1.10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
  <span style="color: #cc0000;">1.10</span><span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;maincolumns&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;div class=&quot;clear&quot;&gt;</span><span style="color: #3366CC;">&lt;/div&gt;</span><span style="color: #3366CC;">&lt;/div&gt;</span>
  <span style="color: #aaa; font-style: italic;"># Spalte oben links </span>
  1<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">styles</span><span style="color: #339933; font-weight: bold;">.</span>content<span style="color: #339933; font-weight: bold;">.</span>get 
  1<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">select</span><span style="color: #339933; font-weight: bold;">.</span>where <span style="color: #339933; font-weight: bold;">=</span> colPos <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span> 
  1<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;column first&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/div&gt;</span>
  <span style="color: #aaa; font-style: italic;"># Spalte oben rechts </span>
  1<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>20 <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">styles</span><span style="color: #339933; font-weight: bold;">.</span>content<span style="color: #339933; font-weight: bold;">.</span>get 
  1<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">select</span><span style="color: #339933; font-weight: bold;">.</span>where <span style="color: #339933; font-weight: bold;">=</span> colPos <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">2</span> 
  1<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;column second&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/div&gt;</span>
  <span style="color: #aaa; font-style: italic;"># Spalte unten </span>
  <span style="color: #cc0000;">1.20</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">styles</span><span style="color: #339933; font-weight: bold;">.</span>content<span style="color: #339933; font-weight: bold;">.</span>get 
  <span style="color: #cc0000;">1.20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">select</span><span style="color: #339933; font-weight: bold;">.</span>where <span style="color: #339933; font-weight: bold;">=</span> colPos <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">3</span> 
  <span style="color: #cc0000;">1.20</span><span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/div&gt;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #aaa; font-style: italic;"># Wir kopieren das Objekt in die Variable content </span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>variables<span style="color: #339933; font-weight: bold;">.</span>content <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>contentStructure</pre></div></div>

<p>Damit setzen wir für jede Spalte (colPos = vorher gesetzte Spaltennummer) auch direkt das HTML. Mit den verschiedenen Klassen können wir dann auch im Frontend per CSS die Struktur nachbauen, wie wir sie im Backend erstellt haben:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #6666ff;">.first</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
div<span style="color: #6666ff;">.second</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
div.<span style="color: #000000; font-weight: bold;">clear</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">clear</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">both</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Natürlich hat man Unmengen von Möglichkeiten, um sich mittels der Spalten verschiedene Backend Layouts zusammenzustellen.<br />
Ach, und die Auswahl erfolgt über den Seiten-Datensatz im Backend. Dort gibt es die Möglichkeit ein Backend Layout für die Seite, aber auch rekursiv für alle darunterliegenden Seiten zu setzen:</p>
<div id="attachment_7873" class="wp-caption alignnone" style="width: 310px"><a href="http://typo3blogger.de/wp-content/uploads/2012/03/Bildschirmfoto-2012-03-20-um-20.34.24.png"><img class="size-medium wp-image-7873" title="Backend Layout Auswahl" src="http://typo3blogger.de/wp-content/uploads/2012/03/Bildschirmfoto-2012-03-20-um-20.34.24-300x120.png" alt="Backend Layout Auswahl" width="300" height="120" /></a><p class="wp-caption-text">Backend Layout Auswahl</p></div>
<p>&nbsp;</p>
<p>Viel Spaß beim Probieren! <img src='http://typo3blogger.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/templating-3-0-mit-typo3-backend_layout-teil-2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Templating 3.0 mit TYPO3 &#8211; FLUIDTEMPLATE (Teil 1)</title>
		<link>http://typo3blogger.de/templating-3-0-mit-typo3-fluidtemplate-teil-1/</link>
		<comments>http://typo3blogger.de/templating-3-0-mit-typo3-fluidtemplate-teil-1/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 21:11:10 +0000</pubDate>
		<dc:creator>Thomas Löffler</dc:creator>
				<category><![CDATA[ExtBase/Fluid]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[fluid]]></category>
		<category><![CDATA[fluidtemplate]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7833</guid>
		<description><![CDATA[Nachdem ich auf dem TYPO3camp München 2011 und der T3AK12 (auch in München) schon Sessions bzw. Vorträge über das Thema gehalten habe, möchte ich eine kleine Reihe von Tutorials hier anbieten. Angefangen wird mit dem neuen TypoScript Objekt FLUIDTEMPLATE. Als Alternative zum Marker Based Templating (richtig Old School) und dem teils gehasstem, teils verehrtem TemplaVoilá [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich auf dem TYPO3camp München 2011 und der T3AK12 (auch in München) schon Sessions bzw. Vorträge über das Thema gehalten habe, möchte ich eine kleine Reihe von Tutorials hier anbieten.</p>
<p>Angefangen wird mit dem neuen TypoScript Objekt FLUIDTEMPLATE.<span id="more-7833"></span></p>
<p>Als Alternative zum Marker Based Templating (richtig Old School) und dem teils gehasstem, teils verehrtem TemplaVoilá gibt es nun seit TYPO3 4.5 das FLUIDTEMPLATE. Es ist keine Installation nötig, man kann es direkt per TypoScript initialisieren:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">page</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">PAGE</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #339933; font-weight: bold;">=</span> FLUIDTEMPLATE
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>file <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>template<span style="color: #339933; font-weight: bold;">/</span>my_template<span style="color: #339933; font-weight: bold;">.</span>html</pre></div></div>

<p>Hiermit haben wir dem System gesagt, dass das Template my_template.html genutzt werden soll.</p>
<p>Wie üblich, werden verschiedene Elemente des Templates im TypoScript zusammengebaut, wie z.B. verschiedene Menus. Diese speichern wir in temporären Objekten namens temp.mainMenu, temp.subMenu oder auch temp.footerMenu.</p>
<p>Ich gehe jetzt mal davon aus, dass jeder weiß, wie man ein Menu im TypoScript erstellt, daher kopieren wir das fertige Objekt direkt in das FLUIDTEMPLATE:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>variables <span style="color: #009900;">&#123;</span>
  mainMenu <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>mainMenu
  subMenu <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>subMenu
  footerMenu <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>footerMenu
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Wir kopieren unsere erstellen Menustrukturen in Variablen im FLUIDTEMPLATE, um sie dann im HTML direkt anzusprechen:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div id=&quot;mainMenu&quot;&gt;
  &lt;f:format.html&gt;{mainMenu}&lt;/f:format.html&gt;
&lt;/div&gt;</pre></div></div>

<p>Man sieht an dem <f:> Tag, dass ein Fluid Tag genutzt wird. &#8220;format.html&#8221; ist ein ViewHelper, der die Ausgabe in reinem HTML ausgibt. Die vorher definierte Variable wird mittels den geschweiften Klammern {variable} angesprochen, die wir ja vorher im TypoScript mit einem MENU Objekt gefüllt haben.</p>
<p>Das Gesamte kann jetzt natürlich mit allen möglichen TypoScript Objekten gefüllt werden. Auch Partials und Sections sind nutzbar, doch der Einfachheit halber soll dieses Beispiel ausreichen.</p>
<p>Natürlich kann man auch das HTML je nach TypoScript Objekt abhängig machen, indem man die Wenn-Abfrage von Fluid nutzt. So kann ich die HTML-Struktur abhängig von einem möglichen zweiten Menu machen und die Ebenen jeweils benennen:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;f:if condition=&quot;{submenu}&quot;&gt;
  &lt;f:then&gt;
    &lt;div id=&quot;content_wrap&quot;&gt;
      &lt;div id=&quot;submenu&quot;&gt;
        &lt;f:format.html&gt;{subMenu}&lt;/f:format.html&gt;
      &lt;/div&gt;
      &lt;div id=&quot;content&quot;&gt;
        &lt;f:format.html&gt;{content}&lt;/f:format.html&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/f:then&gt;
  &lt;f:else&gt;
    &lt;div id=&quot;content_wide&quot;&gt;
      &lt;f:format.html&gt;{content}&lt;/f:format.html&gt;
    &lt;/div&gt;
  &lt;/f:else&gt;
&lt;/f:if&gt;</pre></div></div>

<p>Im zweiten Teil erkläre ich, wie man die backend_layouts nutzen kann, um den Content Bereich gemütlich mit verschiedenen Layouts zu füttern.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/templating-3-0-mit-typo3-fluidtemplate-teil-1/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Newsletterabmeldung mit Formhandler</title>
		<link>http://typo3blogger.de/newsletterabmeldung-mit-formhandler/</link>
		<comments>http://typo3blogger.de/newsletterabmeldung-mit-formhandler/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 22:13:03 +0000</pubDate>
		<dc:creator>Alois Rainbacher</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7824</guid>
		<description><![CDATA[Für ein Projekt habe ich die Newsletteranmeldung mit Formhandler, wie im Türchen 14 Tutorial beschrieben, verwendet. Natürlich war auch eine Newsletterabmeldung notwendig, die ich auch, basierend auf Formhandler, umgesetzt habe. Ablauf der Abmeldung Im Formular ist nur die E-Mail Adresse anzugeben, die aus dem Newsletterverteiler entfernt werden soll. Nach dem Absenden wird die eingetragenen E-Mail [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Für ein Projekt habe ich die Newsletteranmeldung mit Formhandler, wie im <a href="http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/" title="Newsletteranmeldung mit Formhandler – Türchen 14" target="_blank">Türchen 14</a> Tutorial beschrieben, verwendet. Natürlich war auch eine Newsletterabmeldung notwendig, die ich auch, basierend auf Formhandler, umgesetzt habe.<span id="more-7824"></span></p>
<p><strong>Ablauf der Abmeldung</strong><br />
Im Formular ist nur die E-Mail Adresse anzugeben, die aus dem Newsletterverteiler entfernt werden soll. Nach dem Absenden wird die eingetragenen E-Mail Adresse zunächst validiert (Tx_Formhandler_Validator_Default (gültige E-Mail Adresse und ob sie in der Tabelle tt_address existiert)) und bei Erfolg wird in der Tabelle tt_address für den existierenden Datensatz, basierend auf der angegebenen E-Mail Adresse, das Feld hidden auf 1 gesetzt (Finisher_DB).</p>
<p>Alle weiteren Schritte, wie versenden von E-Mails an User und Admin, habe ich in diesem Tutorial weggelassen, da sie genau wie im <a href="http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/" title="Newsletteranmeldung mit Formhandler – Türchen 14" target="_blank">Tutorial Newsletteranmeldung</a>, umgesetzt werden können.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>Tx_Formhandler<span style="color: #339933; font-weight: bold;">.</span>settings<span style="color: #339933; font-weight: bold;">.</span>predef<span style="color: #339933; font-weight: bold;">.</span>newsletter <span style="color: #009900;">&#123;</span>
	<span style="color: #aaa; font-style: italic;"># Common configuration</span>
	name <span style="color: #339933; font-weight: bold;">=</span> Newsletterabmeldung
	addErrorAnchors <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
	templateFile <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>formhandler<span style="color: #339933; font-weight: bold;">/</span>newsletter_unsubscribe<span style="color: #339933; font-weight: bold;">.</span>html
	langFile<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>formhandler<span style="color: #339933; font-weight: bold;">/</span>newsletter_unsubscribe<span style="color: #339933; font-weight: bold;">.</span>xml
	cssFile<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>css<span style="color: #339933; font-weight: bold;">/</span>my<span style="color: #339933; font-weight: bold;">.</span>css
	formValuesPrefix <span style="color: #339933; font-weight: bold;">=</span> formhandler
&nbsp;
	requiredSign <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
	requiredSign<span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">*</span>
	requiredSign<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;span style=&quot;color: <span style="color: #3366CC;">#DF9707</span>;&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/span&gt;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;">#isErrorMarker.default = class=&quot;errorField&quot;</span>
	isErrorMarker<span style="color: #339933; font-weight: bold;">.</span>default <span style="color: #339933; font-weight: bold;">=</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;"># HTML wrapping by validation error</span>
	errorListTemplate <span style="color: #009900;">&#123;</span>
		totalWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;error&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/div&gt;</span>
		singleWrap <span style="color: #339933; font-weight: bold;">=</span> &amp;nbsp;<span style="color: #339933; font-weight: bold;">|</span>&amp;nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;">#PreProcessors</span>
	preProcessors <span style="color: #009900;">&#123;</span>
		<span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> PreProcessor_LoadGetPost
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;"># Validators configuration</span>
	validators <span style="color: #009900;">&#123;</span>
		<span style="color: #cc0000;">1</span> <span style="color: #009900;">&#123;</span>
			class <span style="color: #339933; font-weight: bold;">=</span> Tx_Formhandler_Validator_Default
			<span style="color: #000066; font-weight: bold;">config</span> <span style="color: #009900;">&#123;</span>
				fieldConf <span style="color: #009900;">&#123;</span>
					emailunsubscribe <span style="color: #009900;">&#123;</span>
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> required
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>2 <span style="color: #339933; font-weight: bold;">=</span> email
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>3 <span style="color: #339933; font-weight: bold;">=</span> isInDBTable
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>3 <span style="color: #009900;">&#123;</span>
							table <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">tt_address</span>
							<span style="color: #000066; font-weight: bold;">field</span> <span style="color: #339933; font-weight: bold;">=</span> email
							fields <span style="color: #009900;">&#123;</span>
								email<span style="color: #339933; font-weight: bold;">.</span>mapping <span style="color: #339933; font-weight: bold;">=</span> emailunsubscribe
							<span style="color: #009900;">&#125;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;"># Finishers configuration</span>
	finishers <span style="color: #009900;">&#123;</span>
		<span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> Finisher_DB
		<span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
		  debug <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
			table <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">tt_address</span>
			updateInsteadOfInsert <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
			key <span style="color: #339933; font-weight: bold;">=</span> email
			key_value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
			key_value<span style="color: #339933; font-weight: bold;">.</span>data <span style="color: #339933; font-weight: bold;">=</span> GPvar<span style="color: #339933; font-weight: bold;">:</span>formhandler<span style="color: #339933; font-weight: bold;">|</span>emailunsubscribe
			fields <span style="color: #009900;">&#123;</span>
				hidden<span style="color: #339933; font-weight: bold;">.</span>ifIsEmpty <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
				email<span style="color: #339933; font-weight: bold;">.</span>mapping <span style="color: #339933; font-weight: bold;">=</span> emailunsubscribe
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> Finisher_Redirect
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
			redirectPage <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">97</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- ###TEMPLATE_FORM1### begin --&gt;
&lt;div id=&quot;formhandler_newsletter_unsubscribe_form&quot;&gt;
	&lt;form method=&quot;post&quot; action=&quot;###REL_URL###&quot;&gt;
	&lt;table&gt;
		&lt;tr&gt;
			&lt;td&gt;###LLL:newsletter_intro_unsubscribe###&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;
				&lt;table&gt;
					&lt;tr&gt;
						&lt;td class=&quot;newsletterlabel&quot;&gt;###LLL:emailunsubscribe### ###required_emailunsubscribe###&lt;/td&gt;
						&lt;td&gt;&lt;input type=&quot;text&quot; ###is_error_emailunsubscribe### name=&quot;formhandler[emailunsubscribe]&quot; id=&quot;emailunsubscribe&quot; value=&quot;###value_emailunsubscribe###&quot; size=&quot;30&quot; class=&quot;newsletterinput&quot;/&gt;&lt;/td&gt;
					&lt;/tr&gt;
			  &lt;/table&gt;
			&lt;/td&gt;
		&lt;tr&gt;
			&lt;td class=&quot;newslettertext&quot;&gt;###LLL:required_fields###&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td class=&quot;newslettertext&quot;&gt;###LLL:newsletter_text_1###&lt;/td&gt;
		&lt;/tr&gt;
    &lt;tr&gt;
    	&lt;td&gt;&amp;nbsp;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    	&lt;td&gt;&lt;input type=&quot;submit&quot; value=&quot;###LLL:submit###&quot; ###submit_nextStep###/&gt;&lt;/td&gt;
	  &lt;/tr&gt;
    &lt;tr&gt;
    	&lt;td&gt;###ERROR###&lt;/td&gt;
	  &lt;/tr&gt;
	&lt;/table&gt;
	&lt;/form&gt;
&lt;/div&gt;
&lt;!-- ###TEMPLATE_FORM1### end --&gt;
&nbsp;
&lt;!-- ###TEMPLATE_SUBMITTEDOK### begin --&gt;
&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;###LLL:emailunsubscribe###&lt;/td&gt;
    &lt;td&gt;###value_emailunsubsrcibe###&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;!-- ###TEMPLATE_SUBMITTEDOK### end --&gt;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;yes&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;T3locallang<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;array&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;languageKey</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;default&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;array&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;emailunsubscribe&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>E-Mail<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;required_fields&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>* Pflichtfelder<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;newsletter_text_1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Die Daten werden nicht an Dritte weitergegeben.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;submit&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Formular senden<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_emailunsubscribe_required&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Gültige E-Mail Adresse bitte eingeben.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_emailunsubscribe_email&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Gültige E-Mail Adresse bitte eingeben.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_emailunsubscribe_isInDBTable&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Diese E-Mail Adresse ist nicht registriert.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/languageKey<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/T3locallang<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><em>Dies ist ein Gast-Beitrag von Alois Rainbacher. Vielen Dank dafür.</em></p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/newsletterabmeldung-mit-formhandler/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mit Grids und jQuery schöne Effekte basteln</title>
		<link>http://typo3blogger.de/mit-grids-und-jquery-schoene-effekte-basteln/</link>
		<comments>http://typo3blogger.de/mit-grids-und-jquery-schoene-effekte-basteln/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 19:25:07 +0000</pubDate>
		<dc:creator>Thomas Löffler</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[Accordion]]></category>
		<category><![CDATA[gridelements]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[typoscript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7779</guid>
		<description><![CDATA[Jeder von euch kennt die Extensions wie z.B. &#8220;jfmulticontent&#8220;, die für Redakteure schöne Tab-Navigationen oder Accordions bieten, um Inhaltselemente aufgeräumt und strukturiert anzeigen zu lassen. Heute möchte ich eine für den Integrator einfache und für den Redakteur übersichtliche Methode zeigen, um solche Effekte ohne Extension und ohne die teils nervigen Updates nachzubauen. Einzige Bedingung hierfür [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Jeder von euch kennt die Extensions wie z.B. &#8220;<a title="Extension &quot;jfmulticontent&quot;" href="https://typo3.org/extensions/repository/view/jfmulticontent/current/" target="_blank">jfmulticontent</a>&#8220;, die für Redakteure schöne Tab-Navigationen oder Accordions bieten, um Inhaltselemente aufgeräumt und strukturiert anzeigen zu lassen.</p>
<p>Heute möchte ich eine für den Integrator einfache und für den Redakteur übersichtliche Methode zeigen, um solche Effekte ohne Extension und ohne die teils nervigen Updates nachzubauen.<span id="more-7779"></span></p>
<p>Einzige Bedingung hierfür ist die TYPO3 Version &gt;= 4.6 und die Extension &#8220;<a title="Extension &quot;gridelements&quot;" href="https://typo3.org/extensions/repository/view/gridelements/current/" target="_blank">gridelements</a>&#8220;.<br />
Einfach über den Extension Manager installieren und &#8211; nicht vergessen &#8211; die statischen Templates einbinden.</p>
<p>Als Beispiel habe ich mir heute den Effekt &#8220;<a title="Accordion Effekt Demo" href="http://jqueryui.com/demos/accordion/" target="_blank">Accordion</a>&#8221; ausgesucht.</p>
<p>Wir beginnen damit, ein Grid Element anzulegen mit dem redakteursunterstützenden Namen <strong>Accordion</strong>. Im Wizard für die Elemente sind wir schnell fertig, da wir nur diesen einen Kasten benötigen. Wir geben der &#8220;Spalte&#8221; auch den Namen Accordion und die Spaltennummer ist die &#8220;1&#8243;.</p>
<p>Nachdem wir das Grid Element gespeichert haben, müssen wir nur noch das TypoScript einfügen:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>gridelements_pi1<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span>10<span style="color: #339933; font-weight: bold;">.</span>setup <span style="color: #009900;">&#123;</span>
  <span style="color: #aaa; font-style: italic;"># ID of gridelement</span>
  <span style="color: #cc0000;">1</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>gridelements<span style="color: #339933; font-weight: bold;">.</span>defaultGridSetup
  <span style="color: #cc0000;">1</span> <span style="color: #009900;">&#123;</span>
    columns <span style="color: #009900;">&#123;</span>
      <span style="color: #aaa; font-style: italic;"># colPos ID</span>
      <span style="color: #cc0000;">1</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #339933; font-weight: bold;">.</span>default
      <span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;accordion&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/div&gt;</span>;
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die HTML-Grundstruktur haben wir jetzt. Nun brauchen wir das nötige JavaScript. Das finden wir unter <a title="jQuery UI" href="http://jqueryui.com" target="_blank">http://jqueryui.com</a>. Dort können wir für das Accordion <a title="Zusammenstellen der JS Bibliotheken" href="http://jqueryui.com/download" target="_blank">nötige JS</a> zusammenstellen lassen. Dieses müssen wir herunterladen, entpacken und in unsere TYPO3 Instanz hochladen.<br />
Dann die nötigen TypoScript-Befehle:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;"># CSS von Accordion / Theme ui-lightness</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>includeCSS<span style="color: #339933; font-weight: bold;">.</span>accordion <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>res<span style="color: #339933; font-weight: bold;">/</span>css<span style="color: #339933; font-weight: bold;">/</span>ui-lightness<span style="color: #339933; font-weight: bold;">/</span>jquery-ui-1<span style="color: #339933; font-weight: bold;">.</span>8<span style="color: #339933; font-weight: bold;">.</span>18<span style="color: #339933; font-weight: bold;">.</span>custom<span style="color: #339933; font-weight: bold;">.</span>css
<span style="color: #aaa; font-style: italic;"># jQuery Source</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>includeJSFooterlibs<span style="color: #339933; font-weight: bold;">.</span>jquery <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>res<span style="color: #339933; font-weight: bold;">/</span>js<span style="color: #339933; font-weight: bold;">/</span>jquery-1<span style="color: #339933; font-weight: bold;">.</span>7<span style="color: #339933; font-weight: bold;">.</span>1<span style="color: #339933; font-weight: bold;">.</span>min<span style="color: #339933; font-weight: bold;">.</span>js
<span style="color: #aaa; font-style: italic;"># jQuery UI Accordion Source</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>includeJSFooter<span style="color: #339933; font-weight: bold;">.</span>accordion <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>res<span style="color: #339933; font-weight: bold;">/</span>js<span style="color: #339933; font-weight: bold;">/</span>jquery-ui-1<span style="color: #339933; font-weight: bold;">.</span>8<span style="color: #339933; font-weight: bold;">.</span>18<span style="color: #339933; font-weight: bold;">.</span>custom<span style="color: #339933; font-weight: bold;">.</span>min<span style="color: #339933; font-weight: bold;">.</span>js
<span style="color: #aaa; font-style: italic;"># jQuery UI Accordion Init</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>includeJSFooter<span style="color: #339933; font-weight: bold;">.</span>accordion_init <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>res<span style="color: #339933; font-weight: bold;">/</span>jquery-accordion<span style="color: #339933; font-weight: bold;">.</span>js</pre></div></div>

<p>Die letzte Datei jquery-accordion.js müssen wir selbst erstellen und den initialisierenden Code hineinschreiben:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;.accordion&quot;</span> <span style="color: #009900;">&#41;</span>.<span style="color: #660066;">accordion</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Da laut Dokumentation der Standard-Header ein &lt;h3&gt; ist, wir in unserem Beispiel aber die css-styled-content Erweiterungen nutzen, müssen wir den Code anpassen:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;.accordion&quot;</span> <span style="color: #009900;">&#41;</span>.<span style="color: #660066;">accordion</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> header<span style="color: #339933;">:</span> <span style="color: #3366CC;">'div.csc-header'</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Weitere Anpassungen von Accordion kann man <a title="Accordion Einstellungen" href="http://jqueryui.com/demos/accordion/#default" target="_blank">auf der Seite von jQuery UI einsehen</a>.</p>
<p>Somit müssten wir jetzt ein schönes Resultat finden, wenn wir Inhaltselement in das Grid Element hineinziehen (Drag&#8217;n'Drop möglich):</p>

<a href='http://typo3blogger.de/mit-grids-und-jquery-schoene-effekte-basteln/grid_be/' title='Accordion im Backend'><img width="150" height="150" src="http://typo3blogger.de/wp-content/uploads/2012/03/grid_be-150x150.png" class="attachment-thumbnail" alt="Accordion im Backend" title="Accordion im Backend" /></a>
<a href='http://typo3blogger.de/mit-grids-und-jquery-schoene-effekte-basteln/grid_fe/' title='Accordion im Frontend'><img width="150" height="150" src="http://typo3blogger.de/wp-content/uploads/2012/03/grid_fe-150x150.png" class="attachment-thumbnail" alt="Accordion im Frontend" title="Accordion im Frontend" /></a>

<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/mit-grids-und-jquery-schoene-effekte-basteln/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Fundstücke: individuelles cObject Caching</title>
		<link>http://typo3blogger.de/fundstucke-individuelles-cobject-caching/</link>
		<comments>http://typo3blogger.de/fundstucke-individuelles-cobject-caching/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 14:45:35 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7647</guid>
		<description><![CDATA[Fabrizio Branca stellt in seinem Blog die neue Extension cObj Cache vor, die ein individuelles Caching von cObjects ermöglicht. Inspiriert wurde die Extension, die das TYPO3 Caching Framework nutzt, durch das Block Caching in Magento. Dabei wird die TypoScript Funktion stdWrap um weitere Konfigurationsmöglichkeiten erweitert. Die Extension funktioniert ab TYPO3 4.5 und ist aktuell nur [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Fabrizio Branca stellt in <a href="http://www.fabrizio-branca.de/typo3-individual-cobject-caching.html">seinem Blog</a> die neue Extension <a href="http://forge.typo3.org/projects/extension-cobjcache">cObj Cache</a> vor, die ein individuelles Caching von cObjects ermöglicht. Inspiriert wurde die Extension, die das TYPO3 Caching Framework nutzt, durch das Block Caching in Magento. Dabei wird die TypoScript Funktion stdWrap um weitere Konfigurationsmöglichkeiten erweitert. Die Extension funktioniert ab TYPO3 4.5 und ist aktuell nur auf <a href="http://forge.typo3.org/projects/extension-cobjcache/repository">Forge</a> zu haben. Der Autor der Extension freut sich über jedes Feedback.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/fundstucke-individuelles-cobject-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fundstücke: Fehler in der TypoScript Syntax finden</title>
		<link>http://typo3blogger.de/fundstucke-fehler-in-der-typoscript-syntax-finden/</link>
		<comments>http://typo3blogger.de/fundstucke-fehler-in-der-typoscript-syntax-finden/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 15:30:13 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7634</guid>
		<description><![CDATA[In einem Blog Beitrag erklärt Tolleiv Nietsch, wie man Fehler in der TypoScript Syntax finden kann, auch wenn das TypoScript auf mehrere Seiten, Templates oder Dateien verteilt ist. Eigentlich ganz simpel, aber man muss die Funktion halt kennen. ------------------------------------------------------Dies ist ein Post vom TYPO3 Blog typo3blogger.de!<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>In einem <a href="http://blog.tolleiv.de/2012/02/finding-typoscript-errors/">Blog Beitrag erklärt Tolleiv Nietsch</a>, wie man Fehler in der TypoScript Syntax finden kann, auch wenn das TypoScript auf mehrere Seiten, Templates oder Dateien verteilt ist. Eigentlich ganz simpel, aber man muss die Funktion halt kennen.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/fundstucke-fehler-in-der-typoscript-syntax-finden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TYPO3-Webdevelopment mit Netbeans 7.1</title>
		<link>http://typo3blogger.de/typo3-webdevelopment-mit-netbeans-7-1/</link>
		<comments>http://typo3blogger.de/typo3-webdevelopment-mit-netbeans-7-1/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 20:29:38 +0000</pubDate>
		<dc:creator>Eckhard M. Jäger</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7503</guid>
		<description><![CDATA[Wer seinen normalen Editor mag, aber eigentlich eine IDE braucht, sich mit Eclipse-basierten Lösungen nicht anfreunden kann, und auch viel TypoScript-/ Frontend-Entwicklung macht, kann sich jetzt zweimal freuen. Zum einen ist Anfang des Jahres Netbeans 7.1 erschienen, welches in der PHP-Version Verbesserungen für die Entwicklung mit sich bringt und aktuelle Standards wie CSS3 und HTML5 [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Wer seinen normalen Editor mag, aber eigentlich eine IDE braucht, sich mit Eclipse-basierten Lösungen nicht anfreunden kann, und auch viel TypoScript-/ Frontend-Entwicklung macht, kann sich jetzt zweimal freuen.</p>
<p>Zum einen ist Anfang des Jahres Netbeans 7.1 erschienen, welches in der PHP-Version Verbesserungen für die Entwicklung mit sich bringt und aktuelle Standards wie CSS3 und HTML5 unterstützt: <a href="http://netbeans.org/kb/docs/ide/overview-screencast.html " target="_blank">Screencast</a></p>
<p>Zum anderen hat Daniel Franek seit Ende des letzten Jahres ein Netbeans-Plugin zur Verfügung gestellt mit dem Netbeans auch TypoScript versteht.<br />
Unterstützt werden in der aktuellen Version Syntax-Highleighting, Autocomplete, Code- und Datei-Templates. Mit von der Partie sind sind die Macher von „SweeTS“ &#8211; die Agentur <a href="http://www.familie-redlich.de/" target="_blank">familie redlich :systeme</a>. Aktueller Stand auf <a href="https://github.com/dfranek/NetBeans-TypoScript/downloads " target="_blank">GitHub</a>.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/typo3-webdevelopment-mit-netbeans-7-1/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>TYPO3 Filelist konfigurieren &#8211; Türchen 23</title>
		<link>http://typo3blogger.de/typo3-filelist-konfigurieren/</link>
		<comments>http://typo3blogger.de/typo3-filelist-konfigurieren/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 23:01:10 +0000</pubDate>
		<dc:creator>Bernhard Berger</dc:creator>
				<category><![CDATA[Templates]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[Dateiliste]]></category>
		<category><![CDATA[Filelist]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[tt_content]]></category>
		<category><![CDATA[tt_content.uploads]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[typoscript]]></category>
		<category><![CDATA[Uploads]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7285</guid>
		<description><![CDATA[Viele von euch kennen sicherlich das Problem: man möchte ohne großen Aufwand ein paar Dateien zum Download auf der Website anbieten und beschließt dazu das TYPO3-Content Element &#8220;Filelist&#8221; zu verwenden. Nach dem ersten Blick ins Frontend kommt dann das böse Erwachen &#8211; das ganze Teil ist ziemlich eigenartig gestaltet, die Vorschaubilder sind riesig, die Dateigrößen [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Viele von euch kennen sicherlich das Problem: man möchte ohne großen Aufwand ein paar Dateien zum Download auf der Website anbieten und beschließt dazu das TYPO3-Content Element &#8220;Filelist&#8221; zu verwenden. Nach dem ersten Blick ins Frontend kommt dann das böse Erwachen &#8211; das ganze Teil ist ziemlich eigenartig gestaltet, die Vorschaubilder sind riesig, die Dateigrößen werden in &#8220;M&#8221;, &#8220;K&#8221;, etc. angegeben anstelle von &#8220;MB&#8221; und &#8220;KB&#8221; &#8211; und das schlimmste daran &#8211; im Web findet man entweder nur veraltete Snippets welche nicht mehr funktionieren oder eben auch garnichts..</p>
<p>Hier möchte ich euch gerne mit den häufigst gebrauchten Snippets Abhilfe verschaffen.</p>
<p><span id="more-7285"></span></p>
<p>Das wichtigste zuerst: sämtliche Konfigurationen der Dateiliste sind per TypoScript im Setup-Teil des Templates vorzunehmen und finden im <strong>tt_content.uploads.20</strong> Bereich statt. Dank des mittlerweile standardmäßig vorhandenen TypoScript Editor im Backend sind zwar schon viele Einstellungen per &#8220;Suggest Drop-Down&#8221; zu erahnen, aber halt doch nicht immer so durchsichtig.</p>
<h3>Sinnvolle Dateigrößen-Bezeichnungen einpflegen:</h3>

<div class="wp_syntax"><div class="code"><pre class="typoscipt" style="font-family:monospace;">tt_content.uploads.20.itemRendering.30.bytes.labels = Byte | KB | MB | GB</pre></div></div>

<h3>Dateiendung (*.pdf, *.doc, etc.) verstecken:</h3>

<div class="wp_syntax"><div class="code"><pre class="typoscipt" style="font-family:monospace;">tt_content.uploads.20.stripFileExtensionFromLinkText = 1</pre></div></div>

<h3>Thumbnail-Generierung beeinflussen:</h3>

<div class="wp_syntax"><div class="code"><pre class="typoscipt" style="font-family:monospace;">tt_content.uploads.20.linkProc.iconCObject.file.maxH = 100 #maximale Höhe der Thumbnails
tt_content.uploads.20.linkProc.iconCObject.file.maxW = 100 # maximale Breite der Thumbnails
# etc.</pre></div></div>

<h3>Bestimmen welches Frame eines GIFs bzw. welche Seite eines PDFs angezeigt werden soll:</h3>

<div class="wp_syntax"><div class="code"><pre class="typoscipt" style="font-family:monospace;">tt_content.uploads.20.linkProc.iconCObject.file.maxH = 100 #maximale Höhe der Thumbnails
tt_content.uploads.20.linkProc.iconCObject.file.frame = 2 # zweite Seite eines PDFs als Thumbnail generieren</pre></div></div>

<p>Viel Spaß beim Experimentieren!</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/typo3-filelist-konfigurieren/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Responsive Design mit TYPO3 &#8211; Türchen 22</title>
		<link>http://typo3blogger.de/responsive-design-mit-typo3/</link>
		<comments>http://typo3blogger.de/responsive-design-mit-typo3/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 07:00:39 +0000</pubDate>
		<dc:creator>Sven Wolfermann</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[csc]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[css_styled_content]]></category>
		<category><![CDATA[responsive]]></category>
		<category><![CDATA[responsive webdesign]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6873</guid>
		<description><![CDATA[Eines dieser Buzzwords 2011 ist definitiv &#8220;Responsive Design&#8221;. Ausschlaggebend war der A List Apart Artikel von Ethan Marcotte im letzten Jahr und ist in diesem Jahr zum “Trend” geworden. Immer mehr und mehr internetfähige Endgeräte gelangen auf dem Markt und werden mehr und mehr auch zum Surfen im Internet genutzt. Aktuell werden täglich 700.000 Smartphones [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Eines dieser Buzzwords 2011 ist definitiv &#8220;Responsive Design&#8221;. Ausschlaggebend war der <a href="http://www.alistapart.com/articles/responsive-web-design/" title="Responsive Web Design">A List Apart Artikel</a> von Ethan Marcotte im letzten Jahr und ist in diesem Jahr zum “Trend” geworden.</p>
<p>Immer mehr und mehr internetfähige Endgeräte gelangen auf dem Markt und werden mehr und mehr auch zum Surfen im Internet genutzt. Aktuell werden <a href="http://www.businessinsider.com/chart-of-the-day-android-2011-12">täglich 700.000 Smartphones mit Android aktiviert</a> wie Andy Rubin gestern auf <a href="https://twitter.com/Arubin/statuses/149329329237667844">Twitter</a> verkündete. Und auch Peter-Paul Koch schrieb in seinem Blogbeitrag “<a href="http://www.quirksmode.org/blog/archives/2011/12/ie_market_share.html" title="IE Market Share">IE market share</a>”, dass jetzt schon weltweit mehr Websites über mobile Endgeräte angesurft werden, als über IE6 und IE7 zusammen.<br />
<span id="more-6873"></span><br />
Aber Responsive Webdesign ist nicht einfach nur das Anpassen der Styles für mobile Endgeräte, Responsive Webdesign ist eher eine Konzept, eine Herangehensweise an die Gestaltung für den Nutzer – dem Nutzer in jeder Situation das beste Erlebnis mit der Website geben. Auf die Grundlagen zu Responsive Webdesign möchte ich an dieser Stelle auch nicht weiter eingehen, das haben andere Kollegen bereits <a href="http://liechtenecker.at/responsive-webdesign-die-basics/" title="Responsive Webdesign - Die Basics">gut zusammengefasst</a>. </p>
<p>Zugrunde liegt eine Technik die mit CSS3 in modernen Browser implementiert ist, die @media Query-Regeln. Die @media-Regeln sind ja bereits mit CSS2 eingeführt worden und wurden bisher zum Unterscheiden von Ausgabegeräten benutzt, z.B. <code>&lt;link rel="stylesheet" href="css/screen.css" media="screen"></code> für Bildschirme und z.B. <code>&lt;link rel="stylesheet" href="css/print.css" media="print"></code> für die Druckausgabe. In CSS3 können nun mit @media-Queries die Endgerät-Eigenschaften abgefragt werden, z.B. Bildschirmgröße oder Auflösung. Auch hier möchte ich nicht zu sehr ins Detail gehen, das hat Michael Jendrischyk in seinen <a href="http://www.slideshare.net/jendryschik/css-media-queries" title="CSS3 Media Queries">Slides</a> zu Media Queries bereits excellent gemacht. Aktuell nutze ich folgende @media Query-Regeln für meine Projekte:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Smaller than standard 960 (devices and browsers) */</span>
<span style="color: #a1a100;">@media only screen and (max-width: 959px) {}</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Tablet Portrait size to standard 960 (devices and browsers) */</span>
<span style="color: #a1a100;">@media only screen and (min-width: 768px) and (max-width: 959px) {}</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* All Mobile Sizes (devices and browser) */</span>
<span style="color: #a1a100;">@media only screen and (max-width: 767px) {}</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */</span>
<span style="color: #a1a100;">@media only screen and (min-width: 480px) and (max-width: 767px) {}</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */</span>
<span style="color: #a1a100;">@media only screen and (max-width: 479px) {}</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* highres devices */</span>
<span style="color: #a1a100;">@media screen and (-moz-min-device-pixel-ratio:1.5),</span>
	screen and <span style="color: #00AA00;">&#40;</span>-o-min-device-pixel-ratio<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">3</span>/<span style="color: #cc66cc;">2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span>
	screen and <span style="color: #00AA00;">&#40;</span>-webkit-min-device-pixel-ratio<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span>
	screen and <span style="color: #00AA00;">&#40;</span>min-device-pixel-ratio<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<h2>Responsive TYPO3</h2>
<p>Um Responsive Layouts (Flexible Layouts) nun in TYPO3 zu verwenden bedarf es einigen Anpassungen an der Ausgabe von CSS-Styled-Content. Für die kommende TYPO3 Version 4.7 wurden ja bereits <a href="http://forge.typo3.org/projects/typo3v4-accessibility/wiki" title="TYPO3 4.7 a11y project">umfängliche Änderungen an der Frontend-Ausgabe</a> angekündigt, die zudem der <a href="http://typo3blogger.de/barrierefrei-und-typo3/" title="Barrierefrei und TYPO3 – Türchen 18">Barrierefreiheit</a> dienen. Hier wurden auch die &#8220;Problemfälle&#8221; eliminiert, die mit der Ausgabe von Bildern im Responsive Layout zu meistern sind. So müssen u.A. die festen Breiten, die über das style-Attribut in den Wrappern eingebunden sind entfernt werden. Das Layout sollte optimalerweise flexibel angelegt sein, also keine Pixelwerte. Folgende Typoscript-Snippets müssen ins Typoscript-Setup Template eingetragen werden:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>image<span style="color: #339933; font-weight: bold;">.</span>20 <span style="color: #009900;">&#123;</span>
  imageStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagewrap&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
  imageColumnStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagecolumn&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Auch beim Rendering selbst muss das style-Attribut entfernt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>image<span style="color: #339933; font-weight: bold;">.</span>20 <span style="color: #009900;">&#123;</span>
  rendering <span style="color: #009900;">&#123;</span>
    dl <span style="color: #009900;">&#123;</span>
      imageRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      imageLastRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow csc-textpic-imagerow-last&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      oneImageStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;dl class=&quot;csc-textpic-image<span style="color: #009900;">###CLASSES###</span>&quot; &gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/dl&gt;</span>
    <span style="color: #009900;">&#125;</span>
    ul <span style="color: #009900;">&#123;</span>
      imageRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow&quot;&gt;</span><span style="color: #3366CC;">&lt;ul&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/ul&gt;</span><span style="color: #3366CC;">&lt;/div&gt;</span>
      imageLastRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow csc-textpic-imagerow-last&quot;&gt;</span><span style="color: #3366CC;">&lt;ul&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/ul&gt;</span><span style="color: #3366CC;">&lt;/div&gt;</span>
      oneImageStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;li class=&quot;csc-textpic-image<span style="color: #009900;">###CLASSES###</span>&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/li&gt;</span>
    <span style="color: #009900;">&#125;</span>
    div <span style="color: #009900;">&#123;</span>
      imageRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      imageLastRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow csc-textpic-imagerow-last&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      oneImageStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-image<span style="color: #009900;">###CLASSES###</span>&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
    <span style="color: #009900;">&#125;</span>
    simple <span style="color: #009900;">&#123;</span>
      imageStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagewrap csc-textpic-single-image&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Optional kann man auf das HTML5 Markup für Bilder mit Bildunterschrift umstellen.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>image<span style="color: #339933; font-weight: bold;">.</span>20 <span style="color: #009900;">&#123;</span>
  renderMethod <span style="color: #339933; font-weight: bold;">=</span> figure
  rendering <span style="color: #009900;">&#123;</span>
    figure <span style="color: #009900;">&#123;</span>
      imageRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      imageLastRowStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;csc-textpic-imagerow csc-textpic-imagerow-last&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      noRowsStdWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> 
      oneImageStdWrap<span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;figure class=&quot;csc-textpic-image&quot;&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/figure&gt;</span>
      imgTagStdWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span>   <span style="color: #339933; font-weight: bold;">|</span>  
      editIconsStdWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/div&gt;</span>
      caption<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;figcaption&gt;</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #3366CC;">&lt;/figcaption&gt;</span>
      caption<span style="color: #339933; font-weight: bold;">.</span>required <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Das wichtigste ist allerdings, dass zusätzlich Anpassungen am CSS getätigt werden. Für flexible Bilder muss folgende Regel zugewiesen werden:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">img<span style="color: #00AA00;">,</span> <span style="color: #993333;">embed</span><span style="color: #00AA00;">,</span> object<span style="color: #00AA00;">,</span> video <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">max-width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Die Anweisung legt fest, dass Bilder (sowie embed-, object, und video-Tags) eine max. Breite von 100% haben, also so groß wie die CSC-Konstante <strong style="font-family:Courier,monospace; font-size: 13px">styles.content.imgtext.maxW</strong> her gibt. Zudem müssen die Höhe und Breite auf <strong style="font-family:Courier,monospace; font-size: 13px">auto</strong> gesetzt werden.<br />
Desweiteren müssen einige CSS-Styles von <strong style="font-family:Courier,monospace; font-size: 13px">css_styled_content</strong> mit dem eigenen Stylesheet überschrieben werden:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">DIV.csc-textpic-<span style="color: #993333;">above</span> DIV.csc-textpic-imagewrap<span style="color: #00AA00;">,</span>
DIV.csc-textpic-<span style="color: #993333;">below</span> DIV.csc-textpic-imagewrap<span style="color: #00AA00;">,</span>
DIV<span style="color: #6666ff;">.csc-textpic</span> DIV<span style="color: #6666ff;">.csc-textpic-imagewrap</span> UL LI<span style="color: #00AA00;">,</span>
DIV<span style="color: #6666ff;">.csc-textpic</span> DIV<span style="color: #6666ff;">.csc-textpic-imagewrap</span> DL<span style="color: #6666ff;">.csc-textpic-image</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<h3>Cross-Browser-Kompatibilität</h3>
<p>Da es sich um eine Technik für die modernen Webentwicklung handelt, wird es nicht verwundern, dass @media-Queries nicht im IE8 oder IE7 funktionieren. Meiner Meinung nach, ist es zudem fraglich, ob sie das sollten. Wer diese Browser trotzdem mit @media Queries unterstützen muss, dem hilft <a href="https://github.com/scottjehl/Respond" title="@media Queries für IE7 und IE8">respond.js</a>. Die Library ist mittlerweile auch in <a href="http://www.modernizr.com/" title="Modernizr">modernizr</a> integriert.</p>
<h3>Links</h3>
<p><a href="http://maddesigns.de/css3-responsive-web-mmt28-1205.html" title="CSS3 &#038; Responsive Web">CSS3 &#038; Responsive Web</a> &#8211; mein Vortrag beim MMT28 (Slides &#038; Video)<br />
<a href="http://mediaqueri.es/" title="Media Queries Gallery">mediaqueri.es</a> &#8211; tolle @media Queries Galerie<br />
<a href="http://webstandard.kulando.de/post/2011/09/21/responsive-webdesign-verschiedene-devices-simulieren-und-testen" title="Responsive Webdesign testen">Responsive Webdesign Testing</a></p>
<p>Die aufgeführten Änderungen für die Frontend-Ausgabe mit CSS Styled Content sind nur ein paar Grundlagen und hat keine Anspruch auf Vollständigkeit. Wenn ihr Ergänzungen habt, schreibt gern eure Meinung in den Kommentaren dazu. </p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/responsive-design-mit-typo3/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>TYPO3-Templates mit Backend-Layouts und FLUIDTEMPLATE – Türchen 19</title>
		<link>http://typo3blogger.de/typo3-templates-mit-backend-layouts-und-fluidtemplate-turchen-19/</link>
		<comments>http://typo3blogger.de/typo3-templates-mit-backend-layouts-und-fluidtemplate-turchen-19/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 07:00:17 +0000</pubDate>
		<dc:creator>Tobias Liegl</dc:creator>
				<category><![CDATA[Templates]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7337</guid>
		<description><![CDATA[Ich habe die letzten Jahre fast immer Templavoila für die Template-Integration in TYPO3 benutzt. Seit den Backend Layouts und der Möglichkeit Fluid in den Templates zu benutzen, hat sich das Blatt aber gewendet und ich benutze Templavoila immer weniger. Daher hier ein kurzer Schnelleinstieg in die Backend Layouts für Wechselwillige. 1. Backend-Layout anlegen Als erstes [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Ich habe die letzten Jahre fast immer Templavoila für die Template-Integration in TYPO3 benutzt. Seit den Backend Layouts und der Möglichkeit Fluid in den Templates zu benutzen, hat sich das Blatt aber gewendet und ich benutze Templavoila immer weniger. Daher hier ein kurzer Schnelleinstieg in die Backend Layouts für Wechselwillige.</p>
<p><span id="more-7337"></span></p>
<h3>1. Backend-Layout anlegen</h3>
<p>Als erstes im System-Ordner, den man bei &#8220;Allgemeine Datensatzsammlung&#8221; der Root-Seite angegeben hat, einen neuen Datensatz vom Typ &#8220;Backend-Layout&#8221; anlegen. Man vergibt einen Titel (z. B. Startseite oder Unterseite) und  öffnet über &#8220;Konfiguration&#8221; den sog. &#8220;Grid wizard&#8221;. Dort lässt sich dann ein Backend-Layout zusammen klicken, das in meinem Fall auch die Ausgabe im Frontend widerspiegelt.</p>
<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/grid-wizard.png"><img class="alignnone size-full wp-image-7342" title="grid-wizard" src="http://typo3blogger.de/wp-content/uploads/2011/12/grid-wizard.png" alt="" width="489" height="342" /></a></p>
<p>Die einzelnen Bereiche lassen sich noch benennen und mit Spaltennummern (colPos) versehen.</p>
<h3>2. Backend-Layout auswählen</h3>
<p>Nach dem Speichern, kann dieses Backend-Layout bereits in den Seiteneigenschaften einer Seite ausgewählt werden. Dazu einfach den Reiter &#8220;Erscheinungsbild&#8221; anklicken.</p>
<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/backend-layout-auswahl.png"><img class="alignnone size-full wp-image-7345" title="backend-layout-auswahl" src="http://typo3blogger.de/wp-content/uploads/2011/12/backend-layout-auswahl.png" alt="" width="442" height="206" /></a></p>
<p>Man kann das Backend-Layout für die aktuelle Seite und für deren Unterseiten einstellen. Nach der Auswahl zeigt das Backend direkt die vorher getroffene Konfiguration an &#8211; und zwar in korrekter Spalten- und Zeilen-Aufteilung.</p>
<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/backend-layout-seite.png"><img class="alignnone size-full wp-image-7346" title="backend-layout-seite" src="http://typo3blogger.de/wp-content/uploads/2011/12/backend-layout-seite.png" alt="" width="484" height="136" /></a></p>
<p>Somit wäre das Backend schon mal fertig konfiguriert. Bei Bedarf kann man sich natürlich noch weitere Backend-Layouts bzw. Seiten-Templates anlegen.</p>
<h3>3. Die Verknüpfung mit dem Frontend</h3>
<p>Um die angelegten Backend-Layouts mit der Ausgabe zu verknüpfen, benötigt man nur folgendes Typoscript Setup:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">page</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">PAGE</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #339933; font-weight: bold;">=</span> FLUIDTEMPLATE
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">CASE</span>
	<span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
		<span style="color: #aaa; font-style: italic;"># slide the template</span>
		key<span style="color: #339933; font-weight: bold;">.</span>data <span style="color: #339933; font-weight: bold;">=</span> levelfield<span style="color: #339933; font-weight: bold;">:</span>-<span style="color: #cc0000;">1</span>, backend_layout_next_level, slide
		key<span style="color: #339933; font-weight: bold;">.</span>override<span style="color: #339933; font-weight: bold;">.</span>field <span style="color: #339933; font-weight: bold;">=</span> backend_layout
		<span style="color: #aaa; font-style: italic;"># default template file</span>
		default <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
		default<span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>index<span style="color: #339933; font-weight: bold;">.</span>html
		<span style="color: #aaa; font-style: italic;"># template file for backend-layout with ID 2</span>
		<span style="color: #cc0000;">2</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>subpage<span style="color: #339933; font-weight: bold;">.</span>html
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Im obigen Beispiel wird abhängig vom gewählten Backend-Layout, eine entsprechendes Template-Datei verwendet. Ich habe ein Standard-Template (default) angegeben und ein Template für das Backend-Layout mit der ID 2. Bei weiteren vorhanden Backend-Layouts, kann diese Liste natürlich erweitert werden. Dazu nur die korrekte ID benutzen.</p>
<h3>4. Inhalte für die Ausgabe im Template bereitstellen</h3>
<p>Wer von Templavoila kommt, dürfte z. B. die Navigation immer per &#8220;TypoScript Object Path&#8221; eingebunden haben. Die gute Nachricht: diese können beibehalten und direkt im Template aufgerufen werden. Aber wie kommt man an die Inhaltsbereiche? Mit Templavoila wurden diese als &#8220;Content Elements&#8221; gemapped. Jetzt benötigt man hier ein wenig Typoscript. (Ich gehe davon aus, dass CSS Styled Content benutzt wird.)</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>field_content <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">styles</span><span style="color: #339933; font-weight: bold;">.</span>content<span style="color: #339933; font-weight: bold;">.</span>get
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>field_content<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">select</span><span style="color: #339933; font-weight: bold;">.</span>where <span style="color: #339933; font-weight: bold;">=</span> colPos <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">2</span></pre></div></div>

<p>Hier auf die korrekte Angabe der colPos achten. Je nach Anzahl der Inhaltsbereiche, muss diese Anweisung natürlich &#8220;vervielfältigt&#8221; werden.</p>
<h3>5. Die Template-Datei</h3>
<p>Die Template-Datei, die im &#8220;fileadmin&#8221; liegt, beinhaltet dann vom Prinzip nur noch den Inhalt des &lt;body&gt; Bereichs. Den Rest baut TYPO3 ja automatisch drum herum. Das HTML-Template könnte dann z. B. so aussehen:</p>
<p>&lt;div id=&#8221;header&#8221;&gt;<br />
&lt;f:cObject typoscriptObjectPath=&#8221;lib.field_navmain&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;content&#8221;&gt;<br />
&lt;f:cObject typoscriptObjectPath=&#8221;lib.field_content&#8221; /&gt;<br />
&lt;/div&gt;</p>
<p>In diesem Beispiel benutze ich nur den &lt;f:cObject&gt; View-Helper von Fluid, um direkt auf die im Typoscript angelegten Content-Objekte zuzugreifen. Fluid aber auch Fluidtemplate bieten natürlich noch viele weitere Möglichkeiten, mit denen man sein Template anreichern kann.</p>
<p>Und hier sind wir schon am Ende. Mehr ist nicht nötig.</p>
<h3>Fazit</h3>
<p>Im Vergleich zu Templavoila bin ich mit dieser Template-Methode um einiges schneller, da das aufwändige Mapping wegfällt. Und das Anlegen der extra Backend-Layouts für Templavoila-Templates spart man sich dadurch auch.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/typo3-templates-mit-backend-layouts-und-fluidtemplate-turchen-19/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Newsletteranmeldung mit Formhandler &#8211; Türchen 14</title>
		<link>http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/</link>
		<comments>http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 07:00:31 +0000</pubDate>
		<dc:creator>Stefan Frömken</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7035</guid>
		<description><![CDATA[Am 24.11.2011 ist die neue und vor allem stabile Version 1.0.0 von formhandler rausgekommen. Geil finde ich, dass formhandler nun eine eigene Webseite erhalten hat inkl. Doku, News und vielen Beispielen. Ich habe mir diese Extension mal unter den Nagel gerissen und ein Projekt gesucht, das ich damit umsetzen kann. Ein Kontaktformular wäre zu Standard [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Am 24.11.2011 ist die neue und vor allem stabile Version 1.0.0 von formhandler rausgekommen. Geil finde ich, dass formhandler nun eine eigene <a title="Webseite Formhandler" href="http://www.typo3-formhandler.com/" target="_blank">Webseite</a> erhalten hat inkl. Doku, News und vielen Beispielen. Ich habe mir diese Extension mal unter den Nagel gerissen und ein Projekt gesucht, das ich damit umsetzen kann. Ein Kontaktformular wäre zu Standard außerdem gibt es dafür bessere Lösungen wie powermail und/oder vielleicht auch die neue Formextension innerhalb von TYPO3 4.6. Nein&#8230;ich habe mich für eine Newsletteranmeldung entschieden, da die meisten Newsletteranmelde-Extensions aus 2006 sind, oder viel zu große andere Extensions parallel benötigen.</p>
<p>Im folgenden Tutorial werden wir kaum Angaben im Plugin vom Formhandler machen. Alles was wir benötigen sind 4 Dateien und eine Zeile TypoScript. Vor- und zugleich Nachteil von Formhandler ist, dass jegliche Konfiguration in Dateien ausgelagert werden muss/sollte, was dann aber wiederum den Vorteil hat, dass diese Konfiguration sehr schnell auf ein anderes System portieren kann. Nach der Einbindung der TypoScriptzeile erscheint im Plugin ein neuer Eintrag in der Selectbox für &#8220;Vordefinierte Formulare&#8221;. Einfach auswählen. Fertig.<span id="more-7035"></span></p>
<p>Ich werde hier nicht auf jede einzelne Option von Formhandler eingehen, das würde den Rahmen sprengen. Wenn es Euch interessiert, dann könnt Ihr die <a title="Webseite Formhandler" href="http://www.typo3-formhandler.com/" target="_blank">Webseite von Formhandler</a> oder auch mein erstes Tutorial lesen, dass ich auf meiner Webseite präsentiere: <a title="Stefans TYPO3-Seite" href="http://typo3.sfroemken.de/typo3-tutorials/extensions/formhandler.html" target="_blank">Stefans TYPO3-Seite</a>.</p>
<h3>Ablauf der Anmeldung</h3>
<p>Wir erstellen eine Seite mit einem Formular auf dem sich die beiden Felder name und email befinden. Nach dem Absenden werden die eingetragenen Daten zunächst validiert (Tx_Formhandler_Validator_Default) und bei Erfolg in die Tabelle tt_address abgespeichert (Finisher_DB). Hier setze ich die Spalte hidden per default auf 1, damit der User nicht sofort aktiv ist. Natürlich wäre auch eine Speicherung in fe_users möglich, aber dann müssten wir dem Datensatz noch eine Gruppe, einen Benutzernamen und ein Passwort zuordnen. Zu viel für meinen Geschmack. Nach der Speicherung wird aus den gesammelten Daten ein AuthCode erstellt (Finisher_GenerateAuthCode) und per Mail an der User und als Info auch an den Admin geschickt (Tx_Formhandler_Finisher_Mail). Klickt der User den Link mit dem enthaltenen AuthCode an, wird der PreProcessor aktiv (PreProcessor_LoadGetPost) und läd sich die benötigten Daten aus der URL in den Speicher. An Hand dieser Daten kann der AuthCode-Validator aktiv werden (PreProcessor_ValidateAuthCode). Dieser überprüft, ob der AuthCode gültig ist und setzt den Datensatz bei einer erfolgreichen Überprüfung automatisch auf visible (hidden=0). Außerdem können hier je nach Gültigkeit Page-UIDs angegeben werden auf die weitergeleitet wird.</p>
<h5>newsletter.ts</h5>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>Tx_Formhandler<span style="color: #339933; font-weight: bold;">.</span>settings<span style="color: #339933; font-weight: bold;">.</span>predef<span style="color: #339933; font-weight: bold;">.</span>newsletter <span style="color: #009900;">&#123;</span>
	<span style="color: #aaa; font-style: italic;"># Common configuration</span>
	name <span style="color: #339933; font-weight: bold;">=</span> Newsletterregistrierung
	addErrorAnchors <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
	templateFile <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>formhandler<span style="color: #339933; font-weight: bold;">/</span>newsletter<span style="color: #339933; font-weight: bold;">.</span>html
	langFile<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>formhandler<span style="color: #339933; font-weight: bold;">/</span>newsletter<span style="color: #339933; font-weight: bold;">.</span>xml
	cssFile<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>formhandler<span style="color: #339933; font-weight: bold;">/</span>newsletter<span style="color: #339933; font-weight: bold;">.</span>css
	formValuesPrefix <span style="color: #339933; font-weight: bold;">=</span> formhandler
&nbsp;
	requiredSign <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
	requiredSign<span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">*</span>
	requiredSign<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;span style=&quot;color: <span style="color: #3366CC;">#DF9707</span>;&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/span&gt;</span>
&nbsp;
	isErrorMarker<span style="color: #339933; font-weight: bold;">.</span>default <span style="color: #339933; font-weight: bold;">=</span> class<span style="color: #339933; font-weight: bold;">=</span>&quot;errorField&quot;
&nbsp;
	<span style="color: #aaa; font-style: italic;"># HTML wrapping by validation error</span>
	errorListTemplate <span style="color: #009900;">&#123;</span>
		totalWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;div class=&quot;error&quot;&gt;</span><span style="color: #3366CC;">&lt;ul&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/ul&gt;</span><span style="color: #3366CC;">&lt;/div&gt;</span>
		singleWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;li&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/li&gt;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;">#PreProcessors</span>
	preProcessors <span style="color: #009900;">&#123;</span>
		<span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> PreProcessor_LoadGetPost
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> PreProcessor_ValidateAuthCode
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
			redirectPage <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">234</span>
			errorRedirectPage <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">235</span>
			hiddenField <span style="color: #339933; font-weight: bold;">=</span> hidden
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;"># Validators configuration</span>
	validators <span style="color: #009900;">&#123;</span>
		<span style="color: #cc0000;">1</span> <span style="color: #009900;">&#123;</span>
			class <span style="color: #339933; font-weight: bold;">=</span> Tx_Formhandler_Validator_Default
			<span style="color: #000066; font-weight: bold;">config</span> <span style="color: #009900;">&#123;</span>
				fieldConf <span style="color: #009900;">&#123;</span>
					name <span style="color: #009900;">&#123;</span>
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> required
					<span style="color: #009900;">&#125;</span>
					email <span style="color: #009900;">&#123;</span>
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>1 <span style="color: #339933; font-weight: bold;">=</span> required
						errorCheck<span style="color: #339933; font-weight: bold;">.</span>2 <span style="color: #339933; font-weight: bold;">=</span> email
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #aaa; font-style: italic;"># Finishers configuration</span>
	finishers <span style="color: #009900;">&#123;</span>
		<span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> Finisher_DB
		<span style="color: #cc0000;">1</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
			table <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">tt_address</span>
			key <span style="color: #339933; font-weight: bold;">=</span> uid
			fields <span style="color: #009900;">&#123;</span>
				email<span style="color: #339933; font-weight: bold;">.</span>mapping <span style="color: #339933; font-weight: bold;">=</span> email
				name<span style="color: #339933; font-weight: bold;">.</span>mapping <span style="color: #339933; font-weight: bold;">=</span> name
				pid<span style="color: #339933; font-weight: bold;">.</span>ifIsEmpty <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">57</span>
				hidden<span style="color: #339933; font-weight: bold;">.</span>ifIsEmpty <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
				module_sys_dmail_html<span style="color: #339933; font-weight: bold;">.</span>ifIsEmpty <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> Finisher_GenerateAuthCode
		<span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
			table <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">tt_address</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #cc0000;">3</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> Tx_Formhandler_Finisher_Mail
		<span style="color: #cc0000;">3</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
			limitMailsToUser <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">5</span>
			admin <span style="color: #009900;">&#123;</span>
				to_email <span style="color: #339933; font-weight: bold;">=</span> AdminEmailAdresse
				to_name <span style="color: #339933; font-weight: bold;">=</span> DeinNamw
				subject <span style="color: #339933; font-weight: bold;">=</span> Neue Newsletterregistrierung auf <span style="color: #009900;">&#91;</span>webseite<span style="color: #009900;">&#93;</span>
				sender_email <span style="color: #339933; font-weight: bold;">=</span> webmaster@xxx
				sender_name <span style="color: #339933; font-weight: bold;">=</span> Webmaster
				htmlEmailAsAttachment <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
			<span style="color: #009900;">&#125;</span>
			user <span style="color: #009900;">&#123;</span>
				to_email <span style="color: #339933; font-weight: bold;">=</span> email
				to_name <span style="color: #339933; font-weight: bold;">=</span> name
				subject <span style="color: #339933; font-weight: bold;">=</span> Dein Anliegen von <span style="color: #009900;">&#91;</span>webseite<span style="color: #009900;">&#93;</span>
				sender_email <span style="color: #339933; font-weight: bold;">=</span> webmaster@xxx
				sender_name <span style="color: #339933; font-weight: bold;">=</span> Webmaster
				replyto_email <span style="color: #339933; font-weight: bold;">=</span> DeineEmailAdresse
				replyto_name <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
				replyto_name<span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> Deine Name
				htmlEmailAsAttachment <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
		 	<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #cc0000;">4</span><span style="color: #339933; font-weight: bold;">.</span>class <span style="color: #339933; font-weight: bold;">=</span> Finisher_Redirect
		<span style="color: #cc0000;">4</span><span style="color: #339933; font-weight: bold;">.</span>config <span style="color: #009900;">&#123;</span>
			redirectPage <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">233</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h5>newsletter.xml</h5>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;yes&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;T3locallang<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;array&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;languageKey</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;default&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;array&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Name<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>E-Mail<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;submit&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Send<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;is_error&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>One or more errors occoured while filling the form!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_name_required&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Enter your name!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_email_required&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Enter your E-mail address!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_email_email&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>E-mail address must be valid syntax!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;required_fields&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Fields marked with * are required!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/languageKey<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;languageKey</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;de&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;array&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Name<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;email&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>E-Mail<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;submit&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Absenden<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;is_error&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Beim Absenden des Formulars sind ein paar Fehler aufgetreten:!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_name_required&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Bitte gib Deinen Namen an!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_email_required&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Bitte gib Deine E-Mail-Adresse an!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;error_email_email&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Die eingetragene E-Mail-Adresse ist ungültig!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;required_fields&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Felder mit * sind Pflichtfelder!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/languageKey<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/T3locallang<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h5>newsletter.html</h5>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- ###TEMPLATE_FORM1### begin --&gt;
&lt;div id=&quot;formhandler_newsletter_form&quot;&gt;
	###ERROR###
	&lt;form method=&quot;post&quot; action=&quot;###REL_URL###&quot;&gt;
		&lt;p&gt;###LLL:required_fields###&lt;/p&gt;
		&lt;input type=&quot;hidden&quot; name=&quot;formhandler[submitted]&quot; value=&quot;1&quot; /&gt;
		&lt;dl&gt;
			&lt;dt&gt;&lt;label for=&quot;name&quot;&gt;###LLL:name### ###required_name###&lt;/label&gt;&lt;/dt&gt;
			&lt;dd&gt;&lt;input type=&quot;text&quot; ###is_error_name### name=&quot;formhandler[name]&quot; id=&quot;name&quot; value=&quot;###value_name###&quot;/&gt;&lt;/dd&gt;
		&lt;/dl&gt;
		&lt;dl&gt;
			&lt;dt&gt;&lt;label for=&quot;email&quot;&gt;###LLL:email### ###required_email###&lt;/label&gt;&lt;/dt&gt;
			&lt;dd&gt;&lt;input type=&quot;text&quot; ###is_error_email### name=&quot;formhandler[email]&quot; id=&quot;email&quot; value=&quot;###value_email###&quot;/&gt;&lt;/dd&gt;
		&lt;/dl&gt;
		&lt;dl&gt;
			&lt;dd&gt;&lt;input type=&quot;submit&quot; value=&quot;###LLL:submit###&quot; ###submit_nextStep###/&gt;&lt;/dd&gt;
		&lt;/dl&gt;
	&lt;/form&gt;
&lt;/div&gt;
&lt;!-- ###TEMPLATE_FORM1### end --&gt;
&nbsp;
&lt;!-- ###TEMPLATE_EMAIL_USER_PLAIN### begin --&gt;
Hallo ###value_name###,
&nbsp;
Du hast Dich soeben für meinen Newsletter auf [webseite] angemeldet.
Bitte klicke auf den folgenden Link, um die Registrierung abzuschließen:
&nbsp;
###value_authCodeUrl###
&lt;!-- ###TEMPLATE_EMAIL_USER_PLAIN### end --&gt;
&nbsp;
&lt;!-- ###TEMPLATE_EMAIL_USER_HTML### begin --&gt;
&lt;p&gt;Hallo ###value_name###&lt;/p&gt;
&lt;p&gt;Du hast Dich soeben für meinen Newsletter auf [webseite] angemeldet.&lt;br /&gt;
Bitte klicke auf den folgenden Link, um die Registrierung abzuschließen:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;###value_authCodeUrl###&quot; target=&quot;_blank&quot;&gt;Newsletteranmeldung bestätigen&lt;/a&gt;&lt;/p&gt;
&lt;!-- ###TEMPLATE_EMAIL_USER_HTML### end --&gt;
&nbsp;
&lt;!-- ###TEMPLATE_EMAIL_ADMIN_PLAIN### begin --&gt;
Hallo Admin,
&nbsp;
Soeben hat sich ###value_name### (###value_email###) für den Newsletter auf [webseite] angemeldet.
&nbsp;
Dein Server
&lt;!-- ###TEMPLATE_EMAIL_ADMIN_PLAIN### end --&gt;
&nbsp;
&lt;!-- ###TEMPLATE_EMAIL_ADMIN_HTML### begin --&gt;
&lt;p&gt;Hallo Admin,&lt;/p&gt;
&lt;p&gt;Soeben hat sich ###value_name### (###value_email###) für den Newsletter auf [webseite] angemeldet&lt;/p&gt;
&lt;p&gt;Dein Server&lt;/p&gt;
&lt;!-- ###TEMPLATE_EMAIL_ADMIN_HTML### end --&gt;
&nbsp;
&lt;!-- ###TEMPLATE_SUBMITTEDOK### begin --&gt;
&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;###LLL:name###&lt;/td&gt;
    &lt;td&gt;###value_name###&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;###LLL:email###&lt;/td&gt;
    &lt;td&gt;###value_email###&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;!-- ###TEMPLATE_SUBMITTEDOK### end --&gt;</pre></div></div>

<p><f5>newsletter.css</f5></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#formhandler_newsletter_form</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#formhandler_newsletter_form</span> <span style="color: #6666ff;">.error</span> ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.errorField</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FF0000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<h5>Die eine Zeile TypoScript</h5>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #3366CC;">&lt;INCLUDE_TYPOSCRIPT: source=&quot;FILE:fileadmin/templates/formhandler/newsletter.ts&quot;&gt;</span></pre></div></div>

<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Eigene Datei Icons im Inhaltselement &#8220;Dateiliste&#8221; &#8211; Türchen 13</title>
		<link>http://typo3blogger.de/eigene-datei-icons-im-inhaltselement-dateiliste-turchen-13/</link>
		<comments>http://typo3blogger.de/eigene-datei-icons-im-inhaltselement-dateiliste-turchen-13/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 07:13:38 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6837</guid>
		<description><![CDATA[Inspiriert durch Tim&#8217;s Artikel zur tt_news Icon Alternative (Türchen 11) fiel mir ein, dass ich letztlich vor dem Problem stand, die Icons im Inhaltselement &#8220;Dateiliste&#8221; ersetzen zu wollen. Standardmäßig werden die Icons aus typo3/sysext/cms/tslib/media/fileicons/ verwendet und TYPO3 sieht keine Konfigurationsmöglichkeit vor um den Pfad zu ändern. Das wird sich erst mit TYPO3 4.7 ändern. Der [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/Dateiliste_vorher.png"><img class="alignright size-full wp-image-7204" title="Dateiliste_vorher" src="http://typo3blogger.de/wp-content/uploads/2011/12/Dateiliste_vorher.png" alt="" width="207" height="189" /></a>Inspiriert durch Tim&#8217;s Artikel zur <a title="tt_news Icon Alternative für Datei Ressourcen – Türchen 11" href="http://typo3blogger.de/tt_news-icon-alternative-fur-datei-ressourcen/" target="_blank">tt_news Icon Alternative (Türchen 11)</a> fiel mir ein, dass ich letztlich vor dem Problem stand, die Icons im Inhaltselement &#8220;Dateiliste&#8221; ersetzen zu wollen. Standardmäßig werden die Icons aus typo3/sysext/cms/tslib/media/fileicons/ verwendet und TYPO3 sieht keine Konfigurationsmöglichkeit vor um den Pfad zu ändern. Das wird sich erst mit TYPO3 4.7 ändern. Der erste Screenshot zeigt, wie hübsch die Standard Icons aktuell aussehen.</p>
<p>Also habe ich nach einer Möglichkeit gesucht, die Icons zu verändern, ohne den TYPO3 Core dafür ändern zu müssen, um so die Updatefähigkeit von TYPO3 zu erhalten. Per TypoScript lässt sich das Ziel erreichen.</p>
<p><span id="more-6837"></span></p>
<p>Zunächst habe ich in fileadmin einen eigenen Ordner &#8220;fileadmin/filelist/icons&#8221; erstellt und dort meine eigenen Icons abgelegt. Alle Dateien haben als Dateinamen die entsprechende Dateiendung, also z.B. pdf.png, xls.png, xlsx.png, mov.png und so weiter.</p>
<h2>TYPO3 4.6</h2>
<p>Für TYPO3 4.6 gibt es eine recht einfache Möglichkeit, das Problem zu lösen: Für stdWrap wurde die neue Eigenschaft &#8220;replacement&#8221; eingeführt. Dadurch lassen sich Zeichenketten leicht ersetzen. Auch Reguläre Ausdrücke (RegEx) sind möglich.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>uploads<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span>itemRendering<span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #009900;">&#123;</span>
	<span style="font-weight: bold;">stdWrap</span> <span style="color: #009900;">&#123;</span>
		replacement <span style="color: #009900;">&#123;</span>
			<span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>search <span style="color: #339933; font-weight: bold;">=</span> typo3<span style="color: #339933; font-weight: bold;">/</span>sysext<span style="color: #339933; font-weight: bold;">/</span>cms<span style="color: #339933; font-weight: bold;">/</span>tslib<span style="color: #339933; font-weight: bold;">/</span>media<span style="color: #339933; font-weight: bold;">/</span>fileicons
			<span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>replace <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>filelist<span style="color: #339933; font-weight: bold;">/</span>icons
&nbsp;
			<span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>search <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">.</span>gif
			<span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>replace <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">.</span>png
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="font-weight: bold;">HTMLparser</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
		<span style="font-weight: bold;">HTMLparser</span> <span style="color: #009900;">&#123;</span>
			allowTags <span style="color: #339933; font-weight: bold;">=</span> a,img
			<span style="font-weight: bold;">tags</span><span style="color: #339933; font-weight: bold;">.</span>img<span style="color: #339933; font-weight: bold;">.</span>fixAttrib<span style="color: #339933; font-weight: bold;">.</span>width<span style="color: #339933; font-weight: bold;">.</span>set <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">32</span>
			<span style="font-weight: bold;">tags</span><span style="color: #339933; font-weight: bold;">.</span>img<span style="color: #339933; font-weight: bold;">.</span>fixAttrib<span style="color: #339933; font-weight: bold;">.</span>height<span style="color: #339933; font-weight: bold;">.</span>set <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">32</span>		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/Dateiliste_nachher.png"><img class="alignright size-full wp-image-7205" title="Dateiliste_nachher" src="http://typo3blogger.de/wp-content/uploads/2011/12/Dateiliste_nachher.png" alt="" width="251" height="221" /></a>In meinem Codebeispiel wird zum einen der Pfad, der von der von CSS Styled Content mitgelieferten UserFunc stammt, durch meinen eigenen Pfad ersetzt, zum anderen ändere ich die Dateiendung von .gif auf .png ab. Über den HTML Parser ändere ich die ursprünglich generierten Größenangaben auf 32 Pixel. Um das Code Beispiel auf eigene Projekte anzuwenden, muss also nur der Pfad, die Dateiendung und die Größe der Icons angepasst werden. Der zweite Screenshot zeigt die Veränderung.</p>
<h2>TYPO3 4.5 und älter</h2>
<p>In TPYO3 4.5 und älteren Versionen ist die Änderung wesentlich komplizierter, da hier nicht auf stdWrap.replacement zurückgegriffen werden kann. Aber auch hier gibt es eine Lösung:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>uploads<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span>itemRendering<span style="color: #339933; font-weight: bold;">.</span>10 &amp;gt;
<span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>uploads<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span>itemRendering<span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">IMAGE</span>
<span style="color: #000066; font-weight: bold;">tt_content</span><span style="color: #339933; font-weight: bold;">.</span>uploads<span style="color: #339933; font-weight: bold;">.</span>20<span style="color: #339933; font-weight: bold;">.</span>itemRendering<span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">file</span> <span style="color: #009900;">&#123;</span>
		import <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>filelist<span style="color: #339933; font-weight: bold;">/</span>icons<span style="color: #339933; font-weight: bold;">/</span>
		import <span style="color: #009900;">&#123;</span>
			data <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">register</span><span style="color: #339933; font-weight: bold;">:</span>fileExtension
			wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|.</span>png
		<span style="color: #009900;">&#125;</span>
&nbsp;
		width <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">32</span>
		height <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">32</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>ifEmpty<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">IMAGE</span>
	<span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>ifEmpty<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">file</span> <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>filelist<span style="color: #339933; font-weight: bold;">/</span>icons<span style="color: #339933; font-weight: bold;">/</span>default<span style="color: #339933; font-weight: bold;">.</span>png
		<span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>width <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">32</span>
		<span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>height <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">32</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="font-weight: bold;">stdWrap</span> <span style="color: #009900;">&#123;</span>
		<span style="font-weight: bold;">typolink</span> <span style="color: #009900;">&#123;</span>
			parameter<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span> <span style="color: #009900;">&#123;</span>
				wrap <span style="color: #339933; font-weight: bold;">=</span> uploads<span style="color: #339933; font-weight: bold;">/</span>media<span style="color: #339933; font-weight: bold;">/</span>
				data <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">register</span><span style="color: #339933; font-weight: bold;">:</span>linkedLabel
				<span style="font-weight: bold;">HTMLparser</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
				<span style="font-weight: bold;">HTMLparser</span><span style="color: #339933; font-weight: bold;">.</span>allowTags <span style="color: #339933; font-weight: bold;">=</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#91;</span>td class<span style="color: #339933; font-weight: bold;">=</span>&quot;csc-uploads-icon&quot;<span style="color: #009900;">&#93;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #009900;">&#91;</span><span style="color: #339933; font-weight: bold;">/</span>td<span style="color: #009900;">&#93;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isPositive<span style="color: #339933; font-weight: bold;">.</span>field <span style="color: #339933; font-weight: bold;">=</span> layout
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Als erstes muss die ursprüngliche Programmierung von CSS Styled Content zurückgesetzt werden. Danach wird das Icon komplett neu aufgebaut. Über file.import wird das passende Icon zur Dateiendung gerendert. Falls es für die gewünschte Dateiendung kein Icon im angegebenen Ordner geben sollte, wird mit stdWrap.ifEmpty.cObject ein Default Icon gerendert. Als letztes wird das Icon noch auf die eigentliche Datei verlinkt. Über den HTML Parser wird etwas getrickst und der eigentlich komplette HTML Code aus der UserFunc, bestehend aus a Tag und img Tag gelöscht, so dass nur der eigentliche Dateiname übrig bleibt. Der td Wrap am Schluss gehört natürlich in spitze Klammern. Der Code wird hier im Blog aber leider nicht korrekt angezeigt.</p>
<p>Beide TypoScript Schnipsel können in einer Text Datei <a href="http://typo3blogger.de/wp-content/uploads/2011/12/Eigene-Icons-fuer-Dateiliste-TypoScript.txt">runtergeladen</a> werden.</p>
<h2>Fazit</h2>
<p>Mit TypoScript lässt sich mal wieder viel erreichen, ohne den TYPO3 Core dafür anfassen oder auch nur eine Zeile PHP Code schreiben zu müssen.</p>
<p>Es gibt bestimmt noch andere, elegantere Wege, die Datei Icons in Dateilisten zu ersetzen. Ich bin auf eure Kommentare gespannt.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/eigene-datei-icons-im-inhaltselement-dateiliste-turchen-13/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Eigenes Wetter mit der Google-Weather API in TYPO3 einbinden &#8211; Türchen 12</title>
		<link>http://typo3blogger.de/wettereinbindung-in-typo3/</link>
		<comments>http://typo3blogger.de/wettereinbindung-in-typo3/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 07:00:11 +0000</pubDate>
		<dc:creator>Sven Wolfermann</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[typoscript]]></category>
		<category><![CDATA[userfunc]]></category>
		<category><![CDATA[wetter]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6871</guid>
		<description><![CDATA[Eine Wetter-Vorhersage in der eigenen Website bietet einen nützlichen Mehrwert, wenn z.B. das Thema der Website etwas mit Outdoor-Aktivitäten zu tun hat. Einige Online-Services, die sogenannte Wetter-Widgets anbieten, könnte man dazu verwenden. Diese lassen sich zumeist aber nicht an das Design der Website anpassen und haben vorbestimmte Abmaße. Möchte man das aktuelle Wetter eines Ortes [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://typo3blogger.de/wp-content/uploads/2011/11/mostly-sunny.png" alt="sonne icon" title="mostly-sunny" width="172" height="117" class="alignleft size-full wp-image-7173" />Eine Wetter-Vorhersage in der eigenen Website bietet einen nützlichen Mehrwert, wenn z.B. das Thema der Website etwas mit Outdoor-Aktivitäten zu tun hat. Einige Online-Services, die sogenannte Wetter-Widgets anbieten, könnte man dazu verwenden. Diese lassen sich zumeist aber nicht an das Design der Website anpassen und haben vorbestimmte Abmaße. Möchte man das aktuelle Wetter eines Ortes anzeigen und die Ausgabe mit HTML/CSS verändern, eignet sich die <a href="http://developer.yahoo.com/weather/" title="Yahoo Weather API" target="_blank">Yahoo-Weather API</a> recht gut und bietet zudem <a href="http://l.yimg.com/a/lib/ywc/img/wicons.png">ansehnliche Wetter-Icons</a>. <span id="more-6871"></span></p>
<p>Die Google Wetter API ist leider nicht dokumentiert, ist eigentlich auch nur für die Weather-Widgets in iGoogle gedacht. Die Standard-API liefert zudem nicht unbedingt hübsche Icons. Vorteil ist allerdings, dass Sie eine Wetter-Vorhersage über mehrere Tage liefert. Glücklicherweise ist es nicht so schwer die Wetter-Vorhersage auf der eigenen TYPO3-Website anzuzeigen und dazu eigene Symbole zu verwenden.</p>
<p>Man kann natürlich extra eine kleine TYPO3-Extension schreiben, ist aber unnötig, da ja keine Daten (in der Datenbank) gespeichert werden müssen. Es genügt, wenn man eine sogenannte <strong>User-Function</strong> schreibt und diese per Marker in die Website einfügt. Unsere User-Function ist auch schon so vorbereitet, dass man eigene Wetter-Icon verwenden und die Location einfach im TYPOscript editieren kann, aber dazu später mehr.</p>
<h3>Schritt 1: Marker in HTML-Template einfügen</h3>
<p>An die Stelle wo später das Wetter-Modul ausgegeben werden soll, wird ein Marker im Template angelegt, z.B.:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div&gt;###WETTER###&lt;/div&gt;</pre></div></div>

<h3>Schritt 2: Marker im TYPOscript enbinden</h3>
<p>In dem Tutorial verwenden wir ein klassisches TYPO3 Marker-Template und fügen den Marker im page-Objekt hinzu, in meinem Fall:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEMPLATE</span>
<span style="color: #000066; font-weight: bold;">page</span><span style="color: #339933; font-weight: bold;">.</span>10 <span style="color: #009900;">&#123;</span>
  <span style="color: #339933; font-weight: bold;">...</span>
  marks <span style="color: #009900;">&#123;</span>
    WETTER <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>weather
    <span style="color: #339933; font-weight: bold;">...</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Schritt 3: Die PHP User-Funktion für die Google-Wetter API Abfrage</h3>
<p>Zwingend notwendig für das Einbinden einer eigenen PHP-Datei über eine User-Function in TYPO3 sind folgende 3 Punkte:</p>
<p>•    Dateiname beginnt mit &#8220;user_&#8221;<br />
•    Die PHP-Datei enthält eine Klasse die mit &#8220;user_&#8221; beginnt<br />
•    die PHP-Funktion übergibt mit &#8220;return&#8221; die Inhalte an TYPO3</p>
<h3>Schritt 4: User-Function in TYPO3 einbinden</h3>
<p>Die User-Function wird jetzt in TYPO3 eingebunden und über die Variablen konfiguriert</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;">/**
* lib.weather
* @description:    wetter ausgabe in html
*/</span>
<span style="color: #000066; font-weight: bold;">includeLibs</span><span style="color: #339933; font-weight: bold;">.</span>weather <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span>scripts<span style="color: #339933; font-weight: bold;">/</span><span style="color: #000066; font-weight: bold;">user_weather</span><span style="color: #339933; font-weight: bold;">.</span>php
&nbsp;
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>weather <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">USER</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>weather <span style="color: #009900;">&#123;</span>
  <span style="color: #ed7d14;">userFunc</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">user_weather</span>-<span style="color: #339933; font-weight: bold;">&gt;</span>get
  poi <span style="color: #339933; font-weight: bold;">=</span> Hamburg
  path <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">/</span>fileadmin<span style="color: #339933; font-weight: bold;">/</span>templates<span style="color: #339933; font-weight: bold;">/</span>img<span style="color: #339933; font-weight: bold;">/</span>wetter-icons<span style="color: #339933; font-weight: bold;">/</span>
  png <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Im cObject USER können wie schon erwähnt Variablen definiert werden. Für die Location, für den das Wetter über die Weather-API abgerufen werden soll, füllt man die Variable &#8220;poi&#8221; mit dem Ort, in unserem Fall &#8220;Hamburg&#8221;. Zudem kann man in &#8220;path&#8221; den Pfad zu den eigenen Wetter-Symbolen angeben. Ist die Variable nicht gefüllt, werden die Standard Wetter-Symbole von Google verwendet.</p>
<p>Folgende Wetter-Zustände kennt die Google Wetter API (Quelle: <a href="http://www.web-spirit.de/webdesign-tutorial/9/Wetter-auf-eigener-Website-mit-Google-Weather-API">www.web-spirit.de</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">chance_of_rain
sunny
mostly_sunny
partly_cloudy
mostly_cloudy
chance_of_storm
showers
rain
chance_of_snow
cloudy
mist
storm
thunderstorm
chance_of_tstorm
sleet
snow
icy
dust
fog
smoke
haze
flurries</pre></div></div>

<p>Wir haben unsere eigenen Wetter-Icons als PNG-Grafiken mit Alpha-Transparenz abgespeichert. In diesem Fall muss die Variable &#8220;png&#8221; auf 1 gesetzt werden, weil dann die Wetter-Dateiendungen von GIF auf PNG in der user_weather.php umgeschrieben wird.</p>
<p>Ein schönes Wetter-Icon Set findet man bei <a href="http://graphicriver.net/item/35-weather-forecast-icons/909404?ref=maddesigns" title="Weather Forecast Icons" target="_blank">graphicriver.net</a>.</p>
<p><a href="http://graphicriver.net/item/35-weather-forecast-icons/909404?ref=maddesigns"><img src="http://typo3blogger.de/wp-content/uploads/2011/11/wetter-icons.jpg" alt="" title="wetter-icons" width="500" height="307" class="alignnone size-full wp-image-7166" /></a></p>
<h2>Demo-Screenshot</h2>
<p>Nachdem das fertige Wetter-Modul mit CSS gestaltet wurde, sieht es so aus:<br />
<img src="http://typo3blogger.de/wp-content/uploads/2011/11/demo-screen.png" alt="" title="demo-screen" width="319" height="45" class="aligncenter size-full wp-image-7167" /></p>
<h2>Download</h2>
<p>PHP-Datei als TXT-Version zum Download: <a href='http://typo3blogger.de/wp-content/uploads/2011/11/user_weather.php_.txt'>user_weather.php.txt</a> </p>
<h3>Hinweis</h3>
<p>Da es keine offizielle Google API ist, ist es nicht sicher wie lange die API noch zur Verfügung steht und ob die Verwendung für die eigene Website erlaubt ist. Bisher sind im Web dazu weder positive noch negative Meinungen zu finden. Wer dazu mehr weiß, kann gerne einen Kommentar posten. Habt ihr die Google Weather API schon in Projekten eingesetzt? Wer Verbesserungsvorschläge für die PHP-Userfunc hat, bitte kommentieren! Ich hatte dabei Unterstützung von Anja, danke dafür!</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/wettereinbindung-in-typo3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

