<?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>Fri, 03 Feb 2012 14:48:56 +0000</lastBuildDate>
	<language>de-de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<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>25</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>5</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>17</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>6</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>
		<item>
		<title>tt_news Icon Alternative für Datei Ressourcen &#8211; Türchen 11</title>
		<link>http://typo3blogger.de/tt_news-icon-alternative-fur-datei-ressourcen/</link>
		<comments>http://typo3blogger.de/tt_news-icon-alternative-fur-datei-ressourcen/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 07:00:35 +0000</pubDate>
		<dc:creator>Tim Lochmüller</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7105</guid>
		<description><![CDATA[Die Tage stand ich vor dem Problem, dass die Icons in der Datei-Resourcen-Liste (tt_news-Detail-Ansicht) geändert werden sollten. Nach langem Suchen und vergeblichen Versuchen über &#8220;icon_image_ext_list&#8221; und &#8220;iconCObject&#8221; habe ich eine andere Lösung gefunden. Für das Beispiel unten, müsst ihr die Icons aus dem Ordner &#8220;typo3/sysext/cms/tslib/media/fileicons/&#8221; in euren eigenen Ordner kopieren (Im Beispiel: &#8220;fileadmin/images/icons/&#8221;). Das TypoScript [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Die Tage stand ich vor dem Problem, dass die Icons in der Datei-Resourcen-Liste (tt_news-Detail-Ansicht) geändert werden sollten. Nach langem Suchen und vergeblichen Versuchen über &#8220;icon_image_ext_list&#8221; und &#8220;iconCObject&#8221; habe ich eine andere Lösung gefunden. Für das Beispiel unten, müsst ihr die Icons aus dem Ordner &#8220;typo3/sysext/cms/tslib/media/fileicons/&#8221; in euren eigenen Ordner kopieren (Im Beispiel: &#8220;fileadmin/images/icons/&#8221;).</p>
<p>Das TypoScript trennt dann mit dem &#8220;substring&#8221; den alten Pfad ab und setzt mit dem &#8220;innerWrap&#8221; einen neuen Pfad vor das Bild. Mit dem HTMLParser werden dann die &#8220;height&#8221; und &#8220;width&#8221; Attribute gelöscht, sodass die Größe durch die Datei selbst bestimmt wird. Auch wenn das Auseinanderschneiden des HTML nicht sauber ist, war es die einzig funktionierende Möglichkeiten eigene Icons für verschiedene Datei-Typen bereitzustellen (nur für tt_news).</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>tt_news<span style="color: #339933; font-weight: bold;">.</span>newsFiles <span style="color: #009900;">&#123;</span>
  target <span style="color: #339933; font-weight: bold;">=</span> _blank
  size<span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;span&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/span&gt;</span>
  <span style="font-weight: bold;">stdWrap</span> <span style="color: #009900;">&#123;</span>
    substring <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">49</span>
    innerWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">&lt;</span>img src<span style="color: #339933; font-weight: bold;">=</span>&quot;fileadmin<span style="color: #339933; font-weight: bold;">/</span>images<span style="color: #339933; font-weight: bold;">/</span>icons<span style="color: #339933; font-weight: bold;">/</span> <span style="color: #339933; font-weight: bold;">|</span>
    <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
      <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>unset <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</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>unset <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>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/tt_news-icon-alternative-fur-datei-ressourcen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TypoScript externe Bilder cachen &#8211; Türchen 10</title>
		<link>http://typo3blogger.de/typoscript-externe-bilder-cachen-turchen-10/</link>
		<comments>http://typo3blogger.de/typoscript-externe-bilder-cachen-turchen-10/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 07:00:23 +0000</pubDate>
		<dc:creator>Hendrik Reimers</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6852</guid>
		<description><![CDATA[Dies ist ein Gastbeitrag von Hendrik Reimes. Auch hier gilt wieder Tutorial != Beispiel. Das Beispiel zeigt, wie mit einer User Funktion und ein wenig TypoScript externe Bilder für eine gewisse Zeit gecacht werden können. Die UserFunction kümmert sich um das Caching selbst und das TypoScript gibt das eigentliche Bild aus. Für das Beispiel wird [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Dies ist ein Gastbeitrag von Hendrik Reimes. Auch hier gilt wieder Tutorial != Beispiel. Das Beispiel zeigt, wie mit einer User Funktion und ein wenig TypoScript externe Bilder für eine gewisse Zeit gecacht werden können. Die UserFunction kümmert sich um das Caching selbst und das TypoScript gibt das eigentliche Bild aus. Für das Beispiel wird zudem die <a href="http://typo3.org/extensions/repository/view/ts_select/current/" target="_blank">ts_select</a>-Extension benötigt. Fragen könnt ihr wie immer in den Kommentaren stellen.<span id="more-6852"></span></p>
<p>UserFunction:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> user_getextimage <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">function</span> main<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">,</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'filename'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$targetFile</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'targetPath'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #990000;">hash</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'adler32'</span><span style="color: #339933;">,</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fileExt'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #000088;">$targetFile</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'targetPath'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'filename'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fileExt'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Wenn Datei noch nicht zu alt ist gleich zurückliefern anstatt neu laden
</span>    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$targetFile</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$lastModified</span> <span style="color: #339933;">=</span> <span style="color: #990000;">filemtime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$targetFile</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$currentTime</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$lastModified</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cacheTimeout'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$currentTime</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #000088;">$targetFile</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;">// Anfrage ausfuehren und ausgeben</span>
    <span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$targetFile</span><span style="color: #339933;">,</span>t3lib_div<span style="color: #339933;">::</span><span style="color: #004000;">getUrl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// PFad liefern</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$targetFile</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Setup:</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_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>imageTest<span style="color: #339933; font-weight: bold;">.</span>title <span style="color: #339933; font-weight: bold;">=</span> Image Test
<span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>imageTest<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="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>imageTest<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>import<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;">USER</span>
  <span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>import<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: #000066; font-weight: bold;">includeLibs</span> <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span><span style="color: #000066; font-weight: bold;">user_getextimage</span><span style="color: #339933; font-weight: bold;">/</span><span style="color: #000066; font-weight: bold;">user_getextimage</span><span style="color: #339933; font-weight: bold;">.</span>class<span style="color: #339933; font-weight: bold;">.</span>php
    <span style="color: #ed7d14;">userFunc</span>   <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">user_getExtImage</span>-<span style="color: #339933; font-weight: bold;">&gt;</span>main
&nbsp;
    url          <span style="color: #339933; font-weight: bold;">=</span> http<span style="color: #339933; font-weight: bold;">:</span><span style="color: #aaa; font-style: italic;">//lorempixel.com/450/350/</span>
&nbsp;
    targetPath   <span style="color: #339933; font-weight: bold;">=</span> fileadmin<span style="color: #339933; font-weight: bold;">/</span><span style="color: #000066; font-weight: bold;">user_getextimage</span><span style="color: #339933; font-weight: bold;">/</span>
    fileExt      <span style="color: #339933; font-weight: bold;">=</span> jpg
    filename     <span style="color: #339933; font-weight: bold;">=</span> extImage
    cacheTimeout <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">300</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>maxW <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">150</span>
  <span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>maxH <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">150</span>
&nbsp;
  <span style="font-weight: bold;">imageLinkWrap</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
  <span style="font-weight: bold;">imageLinkWrap</span><span style="color: #339933; font-weight: bold;">.</span>enable <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
  <span style="font-weight: bold;">imageLinkWrap</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span> <span style="color: #009900;">&#123;</span>
    parameter<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>imageTest<span style="color: #339933; font-weight: bold;">.</span>cObject<span style="color: #339933; font-weight: bold;">.</span>file<span style="color: #339933; font-weight: bold;">.</span>import<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>cObject
    ATagParams <span style="color: #339933; font-weight: bold;">=</span> class<span style="color: #339933; font-weight: bold;">=</span>&quot;lightbox&quot; rel<span style="color: #339933; font-weight: bold;">=</span>&quot;lightbox<span style="color: #009900;">&#91;</span>galerie<span style="color: #009900;">&#93;</span>&quot;
  <span style="color: #009900;">&#125;</span>
&nbsp;
  wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;br /&gt;</span>Source from<span style="color: #339933; font-weight: bold;">:</span> http<span style="color: #339933; font-weight: bold;">:</span><span style="color: #aaa; font-style: italic;">//lorempixel.com/</span>
<span style="color: #009900;">&#125;</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/typoscript-externe-bilder-cachen-turchen-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SASS / SCSS &amp; sassify Extension &#8211; Türchen 3</title>
		<link>http://typo3blogger.de/sass-scss-sassify-extension/</link>
		<comments>http://typo3blogger.de/sass-scss-sassify-extension/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 07:00:09 +0000</pubDate>
		<dc:creator>Sandra Tyrchan</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=6935</guid>
		<description><![CDATA[Sass (Syntactically Awesome Stylesheets) ist eine Stylesheet-Sprache, welche in gut formatierte standard CSS umgewandelt wird. Mit dieser ist es möglich Variables, Nesting, Mixings und Selector Inheritance und vieles mehr zu verwenden. Die Dateiendung ist &#8220;.scss&#8221;. Anbei einige Beispiele&#8230; Variablen Man definiert einen Wert, welcher dann an entsprechender Stelle im Code immer wieder eingefügt werden kann. [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Sass (Syntactically Awesome Stylesheets) ist eine Stylesheet-Sprache, welche in gut formatierte standard CSS umgewandelt wird.<br />
Mit dieser ist es möglich Variables, Nesting, Mixings und Selector Inheritance und vieles mehr zu verwenden. Die Dateiendung ist &#8220;.scss&#8221;. Anbei einige Beispiele&#8230;<span id="more-6935"></span></p>
<h2>Variablen</h2>
<p>Man definiert einen Wert, welcher dann an entsprechender Stelle im Code immer wieder eingefügt werden kann.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">$black<span style="color: #00AA00;">:</span>       <span style="color: #cc00cc;">#222222</span><span style="color: #00AA00;">;</span>
$blue<span style="color: #00AA00;">:</span>        <span style="color: #cc00cc;">#083672</span><span style="color: #00AA00;">;</span>
$white<span style="color: #00AA00;">:</span>       <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
$arrow_white<span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'../img/arrow_white.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
$arrow_blue<span style="color: #00AA00;">:</span>  <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'../img/arrow_blue.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
body <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> Arial<span style="color: #00AA00;">,</span> Verdana<span style="color: #00AA00;">,</span> <span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span>   <span style="color: #933;">0.8em</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span>       $black<span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span>  <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span>  $white<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
a <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> $blue $arrow_white <span style="color: #993333;">no-repeat</span> <span style="color: #933;">205px</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<h2>Nesting</h2>
<p>Mit dieser Methode kann man sich super viel Schreibarbeit ersparen. Es werden einfach die Elemente ineinander verschachtelt.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">nav <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span>  <span style="color: #cc66cc;">0</span> <span style="color: #933;">240px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">710px</span><span style="color: #00AA00;">;</span>
&nbsp;
  li <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inline</span><span style="color: #00AA00;">;</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>
&nbsp;
    a <span style="color: #00AA00;">&#123;</span>
     <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</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;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
     <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0.85em</span><span style="color: #00AA00;">;</span>
     <span style="color: #00AA00;">&#125;</span>
&nbsp;
   <span style="color: #00AA00;">&#125;</span> <span style="color: #808080; font-style: italic;">/* li */</span>
&nbsp;
 <span style="color: #00AA00;">&#125;</span> <span style="color: #808080; font-style: italic;">/* nav */</span></pre></div></div>

<h2>Mixins</h2>
<p>Mit dieser Methode ist es möglich mehrere CSS-Definitionen einzufügen. Sehr hilfreich z.B. bei den CSS3 Definitionen, die für jeden Browser speziell definiert werden müssen.<br />
<strong>Definition Mixin</strong></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@mixin verlaufZweiFarben($hauptfarbe, $farbe1) { </span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> $hauptfarbe<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Old browsers */</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> $hauptfarbe <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span> $farbe1 <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* FF3.6+ */</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0%</span><span style="color: #00AA00;">,</span>$hauptfarbe<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span><span style="color: #00AA00;">,</span>$farbe1<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome,Safari4+ */</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> $hauptfarbe <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span>$farbe1 <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome10+,Safari5.1+ */</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -o-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> $hauptfarbe <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span>$farbe1 <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera11.10+ */</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -ms-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> $hauptfarbe <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span>$farbe1 <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE10+ */</span>
  filter<span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;progid:DXImageTransform.Microsoft.gradient( startColorstr='$hauptfarbe', endColorstr='$farbe1',GradientType=0 )&quot;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE6-9 */</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> $hauptfarbe <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span>$farbe1 <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p><strong>Integration Mixin</strong></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">article <span style="color: #00AA00;">&#123;</span> 
  <span style="color: #a1a100;">@include verlaufZweiFarben;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<h2>Selector Inheritance</h2>
<p>Mit dieser Methode ist es möglich Stile zu kopieren, ohne die CSS Eigenschaften zu duplizieren.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.infobox</span> <span style="color: #00AA00;">&#123;</span> 
  <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#dddddd</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Hier werden jetzt alle Styles, die bereits in “.infobox” definiert wurden integriert.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.teaser</span> <span style="color: #00AA00;">&#123;</span> 
  <span style="color: #a1a100;">@extend .infobox;</span>
  <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<h2>Funktionen</h2>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">$color<span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#777777</span><span style="color: #00AA00;">;</span>
<span style="color: #cc00cc;">#content</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span>-<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> darken<span style="color: #00AA00;">&#40;</span>$color<span style="color: #00AA00;">,</span><span style="color: #933;">20%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> lighten<span style="color: #00AA00;">&#40;</span>$color<span style="color: #00AA00;">,</span><span style="color: #933;">50%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
Definition als CSS
<span style="color: #cc00cc;">#content</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;">#444444</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#f6f6f6</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Weitere Informationen sind auf der offiziellen SASS Homepage zu finden unter <a href="http://sass-lang.com" target="_blank">sass-lang.com</a>. Für alle, die die Firebug Extension für den Firefox nutzen, gibt es zudem die Erweiterung <a href="https://addons.mozilla.org/en-US/firefox/addon/firesass-for-firebug/" target="_blank">FireSass</a>.</p>
<h2>SASS in TYPO3</h2>
<p>Die Extension <a href="http://typo3.org/extensions/repository/?tx_terfe_pi1%5Bview%5D=search&#038;no_cache=1&#038;tx_terfe_pi1%5Bsword%5D=sassify" target="_blank">sassify</a> unterstützt die Integration von SASS in TYPO3. Einfach herunter laden, installieren, Include static Template einbinden und Ts Code definieren. z.B.:</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_sassify_plugin <span style="color: #009900;">&#123;</span>  
  debugInfo <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
  showExceptions <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
  cache <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
  stylesheets <span style="color: #009900;">&#123;</span>    
    <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> reset<span style="color: #339933; font-weight: bold;">.</span>scss
    <span style="color: #cc0000;">10</span> <span style="color: #009900;">&#123;</span>
      filenameWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <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>scss<span style="color: #339933; font-weight: bold;">/|</span>    
      media <span style="color: #339933; font-weight: bold;">=</span> screen    
    <span style="color: #009900;">&#125;</span>
    <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> screen<span style="color: #339933; font-weight: bold;">.</span>scss
    <span style="color: #cc0000;">20</span> <span style="color: #009900;">&#123;</span>
      filenameWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <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>scss<span style="color: #339933; font-weight: bold;">/|</span>    
      media <span style="color: #339933; font-weight: bold;">=</span> screen    
    <span style="color: #009900;">&#125;</span>
    <span style="color: #cc0000;">50</span> <span style="color: #339933; font-weight: bold;">=</span> print<span style="color: #339933; font-weight: bold;">.</span>scss
    <span style="color: #cc0000;">50</span> <span style="color: #009900;">&#123;</span>
      filenameWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <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>scss<span style="color: #339933; font-weight: bold;">/|</span>    
      media <span style="color: #339933; font-weight: bold;">=</span> print    
    <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Seitenspezifische CSS können einfach mittels Conditions definiert werden</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #009900;">&#91;</span><span style="color: #ed7d14;">PIDinRootline</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">2</span><span style="color: #009900;">&#93;</span>
  <span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_sassify_plugin<span style="color: #339933; font-weight: bold;">.</span>stylesheets<span style="color: #339933; font-weight: bold;">.</span>21 <span style="color: #339933; font-weight: bold;">=</span> home<span style="color: #339933; font-weight: bold;">.</span>scss
  <span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_sassify_plugin<span style="color: #339933; font-weight: bold;">.</span>stylesheets<span style="color: #339933; font-weight: bold;">.</span>21<span style="color: #339933; font-weight: bold;">.</span>filenameWrap<span style="color: #339933; font-weight: bold;">.</span>wrap <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>scss<span style="color: #339933; font-weight: bold;">/|</span>
<span style="color: #009900;">&#91;</span><span style="color: #ed7d14;">end</span><span style="color: #009900;">&#93;</span></pre></div></div>

<p>Wer von euch auf den Geschmack gekommen ist und SASS ausprobieren möchte, kann auch ganz einfach seine bisherigen css Dateien umbenennen in .scss und die neuen Sachen Stück für Stück integrieren. Man kann klein anfangen – z.B. erst einmal nur die Farben als Variablen definieren und sich dann allmählich weiter entwickeln. Ich habe mich super schnell dran gewöhnt und mag SASS absolut nicht mehr missen.</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/sass-scss-sassify-extension/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TypoScript PageBrowser &#8211; Türchen 2</title>
		<link>http://typo3blogger.de/typoscript-pagebrowser-turchen-2/</link>
		<comments>http://typo3blogger.de/typoscript-pagebrowser-turchen-2/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 07:00:54 +0000</pubDate>
		<dc:creator>Hendrik Reimers</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6848</guid>
		<description><![CDATA[Weniger ein Tutorial (weil keine umfangreiche Beschreibung), sondern mehr ein TypoScript Beispiel. Ich möchte euch einen umfangreichen PageBrowser vorstellen, welcher durch TypoScript generiert wird. Interessant für alle TypoScript Freaks Fragen könnt ihr in den Kommentaren stellen. Achtung: Aufgrund der Benutzung von &#8220;expandList&#8221; wird TYPO3 4.6 für dieses Beispiel benötigt. Konstanten: # Konfiguration tsContentBrowser.maxPerPage = 2 [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Weniger ein Tutorial (weil keine umfangreiche Beschreibung), sondern mehr ein TypoScript Beispiel. Ich möchte euch einen umfangreichen PageBrowser vorstellen, welcher durch TypoScript generiert wird. Interessant für alle TypoScript Freaks <img src='http://typo3blogger.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Fragen könnt ihr in den Kommentaren stellen.</p>
<p>Achtung: Aufgrund der Benutzung von &#8220;expandList&#8221; wird TYPO3 4.6 für dieses Beispiel benötigt.<span id="more-6848"></span></p>
<p>Konstanten:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;"># Konfiguration</span>
tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>maxPerPage    <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">2</span>
tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>pidInList     <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">42</span>
tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>table         <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #000066; font-weight: bold;">tt_content</span>
tsContentBrowser<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;">0</span>
tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>languageField <span style="color: #339933; font-weight: bold;">=</span> sys_language_uid
tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>prePages      <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">3</span></pre></div></div>

<p>Setup:</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;"># In Extension ts_select bekannt machen als Content Element (Dropdown)</span>
<span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>title   <span style="color: #339933; font-weight: bold;">=</span> Content Browser
<span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA_INT</span>
<span style="color: #990000; font-weight: bold;">plugin</span><span style="color: #339933; font-weight: bold;">.</span>tx_tsselect_pi1<span style="color: #339933; font-weight: bold;">.</span>objList<span style="color: #339933; font-weight: bold;">.</span>tsContentBrowser<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #aaa; font-style: italic;"># Werte berechnen und merken im Register</span>
  <span style="color: #cc0000;">5</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">LOAD_REGISTER</span>
  <span style="color: #cc0000;">5</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #aaa; font-style: italic;"># EintrÃ€ge insgesamt zÃ€hlen</span>
    counter<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">CONTENT</span>
    counter<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      table <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.table</span><span style="color: #009900;">&#125;</span>
      wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span>
&nbsp;
      <span style="font-weight: bold;">select</span> <span style="color: #009900;">&#123;</span>
        languageField <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.languageField</span><span style="color: #009900;">&#125;</span>
        pidInList     <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.pidInList</span><span style="color: #009900;">&#125;</span>
        where         <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.where</span><span style="color: #009900;">&#125;</span>
        selectFields  <span style="color: #339933; font-weight: bold;">=</span> COUNT<span style="color: #009900;">&#40;</span><span style="color: #339933; font-weight: bold;">*</span><span style="color: #009900;">&#41;</span> AS counter
      <span style="color: #009900;">&#125;</span>
&nbsp;
      renderObj       <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      renderObj<span style="color: #339933; font-weight: bold;">.</span>field <span style="color: #339933; font-weight: bold;">=</span> counter
      renderObj<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>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Aktuelle Position</span>
    curPage<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    curPage<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      data <span style="color: #339933; font-weight: bold;">=</span> GP<span style="color: #339933; font-weight: bold;">:</span>page
      wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span>
&nbsp;
      override <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
      override<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
      override<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<span style="color: #339933; font-weight: bold;">.</span>data <span style="color: #339933; font-weight: bold;">=</span> GP<span style="color: #339933; font-weight: bold;">:</span>page
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Max Seitenzahlen</span>
    maxPages<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    maxPages<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>counter<span style="color: #009900;">&#125;</span><span style="color: #339933; font-weight: bold;">/</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.maxPerPage</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">0.5</span>
      prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Vorherige Seite</span>
    prePage<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
    prePage<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      <span style="color: #aaa; font-style: italic;"># Nur anzeigen wenn größer als 1</span>
      <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span>-<span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span>-<span style="color: #cc0000;">1</span>
        prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Nur anzeigen wenn kleiner als 1</span>
      <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span>-<span style="color: #cc0000;">1</span>
        prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># NÃ€chste Seite</span>
    nxtPage<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
    nxtPage<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      <span style="color: #aaa; font-style: italic;"># Nur anzeigen wenn kleiner als maxPages</span>
      <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>maxPages<span style="color: #009900;">&#125;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<span style="color: #339933; font-weight: bold;">.</span>prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">1</span>
        prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Nur anzeigen wenn kleiner als maxPages</span>
      <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">20</span><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>maxPages
      <span style="color: #cc0000;">20</span><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>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<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>maxPages
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">1</span>
        prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Aktuelle Position errechnen</span>
    curPos<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    curPos<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span>-<span style="color: #cc0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933; font-weight: bold;">*</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.maxPerPage</span><span style="color: #009900;">&#125;</span>
      prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
    <span style="color: #009900;">&#125;</span>
&nbsp;
    forwPos<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    forwPos<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.prePages</span><span style="color: #009900;">&#125;</span>
      prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
    <span style="color: #009900;">&#125;</span>
&nbsp;
    backPos<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    backPos<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
      <span style="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span>-<span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.prePages</span><span style="color: #009900;">&#125;</span>
      prioriCalc <span style="color: #339933; font-weight: bold;">=</span> intval
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #aaa; font-style: italic;"># END Register</span>
&nbsp;
&nbsp;
&nbsp;
  <span style="color: #aaa; font-style: italic;"># EintrÃ€ge gesamt anzeigen</span>
  <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
  <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> Eintr&amp;auml;ge gesamt<span style="color: #339933; font-weight: bold;">.</span>
  <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>counter<span style="color: #009900;">&#125;</span>&amp;nbsp;<span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;br /&gt;</span>
&nbsp;
  <span style="color: #aaa; font-style: italic;"># Pagebrowser</span>
  <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
  <span style="color: #cc0000;">20</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #aaa; font-style: italic;"># Erste Seite</span>
    <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    <span style="color: #cc0000;">10</span> <span style="color: #009900;">&#123;</span>
      value <span style="color: #339933; font-weight: bold;">=</span> First
      innerWrap <span style="color: #339933; font-weight: bold;">=</span> &amp;lt;&amp;lt;&amp;nbsp;<span style="color: #339933; font-weight: bold;">|</span>
&nbsp;
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>parameter <span style="color: #009900;">&#123;</span>
        data <span style="color: #339933; font-weight: bold;">=</span> TSFE<span style="color: #339933; font-weight: bold;">:</span>id
&nbsp;
        <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
        <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<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>curPage
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams <span style="color: #339933; font-weight: bold;">=</span> &amp;page<span style="color: #339933; font-weight: bold;">=</span><span style="color: #cc0000;">1</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Platzhalter</span>
    <span style="color: #cc0000;">15</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    <span style="color: #cc0000;">15</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> &amp;nbsp;
&nbsp;
    <span style="color: #aaa; font-style: italic;"># ZurÃŒck link machen</span>
    <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    <span style="color: #cc0000;">20</span> <span style="color: #009900;">&#123;</span>
      value <span style="color: #339933; font-weight: bold;">=</span> Prev
      innerWrap <span style="color: #339933; font-weight: bold;">=</span> &amp;lt;&amp;nbsp;<span style="color: #339933; font-weight: bold;">|</span>
&nbsp;
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>parameter <span style="color: #009900;">&#123;</span>
        data <span style="color: #339933; font-weight: bold;">=</span> TSFE<span style="color: #339933; font-weight: bold;">:</span>id
&nbsp;
        <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
        <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<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>curPage
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
        <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> &amp;page<span style="color: #339933; font-weight: bold;">=</span>
&nbsp;
        <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
        <span style="color: #cc0000;">20</span><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>prePage
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Platzhalter</span>
    <span style="color: #cc0000;">25</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    <span style="color: #cc0000;">25</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> &amp;nbsp;  
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Seitenlinks machen</span>
    <span style="color: #cc0000;">30</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
    <span style="color: #cc0000;">30</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">10</span><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>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>noTrimWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">||</span> <span style="color: #339933; font-weight: bold;">|</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<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>backPos
&nbsp;
      <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">20</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;">TEXT</span>
      <span style="color: #cc0000;">20</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="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;">COA</span>
      <span style="color: #cc0000;">20</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="font-weight: bold;">stdWrap</span><span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
        <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>insertData <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
        <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>backPos<span style="color: #009900;">&#125;</span>-
        <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>override <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>-
        <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>override<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
        <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>override<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<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>backPos
&nbsp;
        <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
        <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>insertData <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
        <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>forwPos<span style="color: #009900;">&#125;</span>
        <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>override<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>maxPages
        <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>override<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<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>maxPages
        <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>override<span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isGreaterThan<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>forwPos
      <span style="color: #009900;">&#125;</span>
      <span style="color: #cc0000;">20</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>expandList <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
      <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">split</span> <span style="color: #009900;">&#123;</span>
        token <span style="color: #339933; font-weight: bold;">=</span> ,
        cObjNum <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
        <span style="color: #cc0000;">1</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
          <span style="color: #cc0000;">10</span> <span style="color: #009900;">&#123;</span>
            current <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
            noTrimWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">||</span> <span style="color: #339933; font-weight: bold;">|</span>
&nbsp;
            <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>parameter <span style="color: #009900;">&#123;</span>
              data <span style="color: #339933; font-weight: bold;">=</span> TSFE<span style="color: #339933; font-weight: bold;">:</span>id
&nbsp;
              <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<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>curPage
              <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>equals<span style="color: #339933; font-weight: bold;">.</span>current <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
              <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>negate <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">COA</span>
            <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
              <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
              <span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> &amp;page<span style="color: #339933; font-weight: bold;">=</span>
&nbsp;
              <span style="color: #cc0000;">20</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
              <span style="color: #cc0000;">20</span><span style="color: #339933; font-weight: bold;">.</span>current <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
              <span style="color: #cc0000;">20</span><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>
            <span style="color: #009900;">&#125;</span>
          <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #cc0000;">2</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #339933; font-weight: bold;">.</span>1
        <span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>noTrimWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #339933; font-weight: bold;">|</span> <span style="color: #339933; font-weight: bold;">|</span>
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #cc0000;">30</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="color: #cc0000;">30</span><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>
      <span style="color: #cc0000;">30</span><span style="color: #339933; font-weight: bold;">.</span>noTrimWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">||</span> <span style="color: #339933; font-weight: bold;">|</span>
      <span style="color: #cc0000;">30</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<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>maxPages
      <span style="color: #cc0000;">30</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<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>forwPos
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Weiter Link</span>
    <span style="color: #cc0000;">40</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #339933; font-weight: bold;">.</span>20
    <span style="color: #cc0000;">40</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> Next
    <span style="color: #cc0000;">40</span><span style="color: #339933; font-weight: bold;">.</span>innerWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span>&amp;nbsp;&amp;gt;
    <span style="color: #cc0000;">40</span><span style="color: #339933; font-weight: bold;">.</span><span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject<span style="color: #339933; font-weight: bold;">.</span>20<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>nxtPage
    <span style="color: #cc0000;">40</span><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><span style="font-weight: bold;">if</span> <span style="color: #339933; font-weight: bold;">&gt;</span>
    <span style="color: #cc0000;">40</span><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><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<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>maxPages
    <span style="color: #cc0000;">40</span><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><span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<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>curPage
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Platzhalter</span>
    <span style="color: #cc0000;">45</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #339933; font-weight: bold;">.</span>15
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Letzte Seite</span>
    <span style="color: #cc0000;">50</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    <span style="color: #cc0000;">50</span> <span style="color: #009900;">&#123;</span>
      value <span style="color: #339933; font-weight: bold;">=</span> Last
      innerWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span>&amp;nbsp;&amp;gt;&amp;gt;
&nbsp;
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>parameter <span style="color: #009900;">&#123;</span>
        data <span style="color: #339933; font-weight: bold;">=</span> TSFE<span style="color: #339933; font-weight: bold;">:</span>id
&nbsp;
        <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>value<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>maxPages
        <span style="font-weight: bold;">if</span><span style="color: #339933; font-weight: bold;">.</span>isLessThan<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>curPage
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
      <span style="font-weight: bold;">typolink</span><span style="color: #339933; font-weight: bold;">.</span>additionalParams<span style="color: #339933; font-weight: bold;">.</span>cObject <span style="color: #009900;">&#123;</span>
        value <span style="color: #339933; font-weight: bold;">=</span> &amp;page<span style="color: #339933; font-weight: bold;">=</span>
        dataWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span><span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>maxPages<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;"># Platzhalter</span>
  <span style="color: #cc0000;">25</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
  <span style="color: #cc0000;">25</span><span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;p&gt;</span>Seite <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>curPage<span style="color: #009900;">&#125;</span> von <span style="color: #009900;">&#123;</span>register<span style="color: #339933; font-weight: bold;">:</span>maxPages<span style="color: #009900;">&#125;</span><span style="color: #3366CC;">&lt;/p&gt;</span>
  <span style="color: #cc0000;">25</span><span style="color: #339933; font-weight: bold;">.</span>insertData <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>  
&nbsp;
&nbsp;
&nbsp;
  <span style="color: #aaa; font-style: italic;"># Ausgabe des Inhalts</span>
  <span style="color: #cc0000;">30</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">CONTENT</span>
  <span style="color: #cc0000;">30</span> <span style="color: #009900;">&#123;</span>
    table <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.table</span><span style="color: #009900;">&#125;</span>
    wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #339933; font-weight: bold;">|</span>
&nbsp;
    <span style="font-weight: bold;">select</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #aaa; font-style: italic;"># SpracheinschrÃ€nkung auswÃ€hlen ÃŒber</span>
      languageField <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.languageField</span><span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Aus welcher Seite, sonst current</span>
      pidInList <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.pidInList</span><span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Die beiden haben leider kein stdWrap (lÃ¶sung: siehe markers)</span>
      <span style="font-weight: bold;">begin</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">###beginCount###</span>
      max <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.maxPerPage</span><span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Where und andWhere halt</span>
      where <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>tsContentBrowser.where</span><span style="color: #009900;">&#125;</span>
      <span style="color: #aaa; font-style: italic;">#andWhere =</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Nur folgende Felder auswÃ€hlen</span>
      <span style="color: #aaa; font-style: italic;">#selectFields = header</span>
&nbsp;
      <span style="color: #aaa; font-style: italic;"># SQL fÃŒr die Sortierung</span>
      <span style="color: #aaa; font-style: italic;">#orderBy = RAND()</span>
      orderBy <span style="color: #339933; font-weight: bold;">=</span> sorting
&nbsp;
      <span style="color: #aaa; font-style: italic;"># Aber ÃŒber Marker kann man die sortierung beeinflussen</span>
      markers <span style="color: #009900;">&#123;</span>
        beginCount<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>curPos
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #aaa; font-style: italic;"># Das rendern jedes einzelnen (in diesem fall standard typo3 config ÃŒbernehmen)</span>
    renderObj <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #000066; font-weight: bold;">tt_content</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
  <span style="color: #aaa; font-style: italic;"># ZurÃŒcksetzen des Registers</span>
  <span style="color: #cc0000;">35</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">RESTORE_REGISTER</span>
<span style="color: #009900;">&#125;</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/typoscript-pagebrowser-turchen-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FLUIDTEMPLATE vs. Subparts</title>
		<link>http://typo3blogger.de/fluidtemplate-vs-subparts/</link>
		<comments>http://typo3blogger.de/fluidtemplate-vs-subparts/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 09:00:57 +0000</pubDate>
		<dc:creator>Alex Kellner</dc:creator>
				<category><![CDATA[ExtBase/Fluid]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[cObj Viewhelper]]></category>
		<category><![CDATA[extbase]]></category>
		<category><![CDATA[fluid]]></category>
		<category><![CDATA[fluidtemplate]]></category>
		<category><![CDATA[marker]]></category>
		<category><![CDATA[subparts]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6434</guid>
		<description><![CDATA[1. Einleitung Dass Fluid die neue Template-Engine für TYPO3 ist und wie es dazu kam, brauche ich nicht nochmal detailliert zu erklären. Mit FLUIDTEMPLATE hält jedoch ein neues Content-Object Einzug ins TypoScript um Fluid neben der Verwendung in Extensions auch für die TYPO3-Integration nutzen zu können. Nach anfänglichen Herumprobieren (danke an Marco für seine ausführliche [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><strong>1. Einleitung</strong><br />
<img src="http://easycaptures.com/fs/uploaded/533/6411099628.jpg" align="right" title="TYPO3 Template Engine Fluid" alt="TYPO3 Template Engine Fluid" />Dass Fluid die neue Template-Engine für TYPO3 ist und wie es dazu kam, brauche ich nicht nochmal detailliert zu erklären. Mit <a href="http://typo3.org/documentation/document-library/references/doc_core_tsref/4.5.0/view/1/7/#id2642042">FLUIDTEMPLATE</a> hält jedoch ein neues Content-Object Einzug ins TypoScript um Fluid neben der Verwendung in Extensions auch für die TYPO3-Integration nutzen zu können.<br />
Nach anfänglichen Herumprobieren (danke an Marco für seine ausführliche <a href="http://www.marcoseiler.de/typo3/typo3-inhalte-ausgeben/fluidtemplate-typoscript.html" target="_blank">Erklärung</a>) wurde ich jedoch in meiner Euphorie etwas gebremst. Ein Pendant zu den herkömmlichen Subparts scheint es nicht mehr geben&#8230;<br />
<span id="more-6434"></span></p>
<p><strong>2. Warum Subparts besser als Marker sind</strong><br />
Wer in der Vergangenheit vor der Wahl stand, Marker oder Subparts zu verwenden, hat sich zu Beginn den Einsatz von Subparts nicht recht vorstellen können. Mit Markern kann man schließlich auch wunderbar Inhalte an einer Stelle im HTML-Template einfügen.<br />
Wer jedoch das HTML-Template möglichst nicht abändern möchte, wird davor zurückschrecken, eingesetzte Dummy-Texte, die einen Inhaltsbereich simulieren sollen, herauszulöschen und durch einen Marker zu ersetzen. Eventuell soll das Template später noch in anderen Systemen Verwendung finden oder man soll es direkt mit dem Browser öffnen können und so eine Vorstellung vom fertigen Layout erhalten. Der Einsatz von Markern eignet sich also nicht für zerstörungsfreies Templating.</p>
<p><strong>3. Blick ins FLUIDTEMPLATE</strong><br />
Was früher die Marker waren, sind in der Zeit von FLUIDTEMPLATE schlicht Variablen. Während man früher einen Marker an den typischen Rauten-Zeichen erkannt hat, zeigt sich eine Variable in Fluid an den geschweiften Klammern.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- Alte Schreibweise --&gt;
&lt;div id=&quot;content&quot;&gt;
	###CONTENT###
&lt;/div&gt;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- Neue Schreibweise --&gt;
&lt;div id=&quot;content&quot;&gt;
	{CONTENT}
&lt;/div&gt;</pre></div></div>

<p>Ähnlich wie in der Oldschool-Methode lassen sich diese (unter der Verwendung von css_styled_content) über TypoScript zuweisen:</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> 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> fileadmin<span style="color: #339933; font-weight: bold;">/</span>template<span style="color: #339933; font-weight: bold;">.</span>html
&nbsp;
	variables<span style="color: #339933; font-weight: bold;">.</span><span style="color: #990000; font-weight: bold;">CONTENT</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: #009900;">&#125;</span></pre></div></div>

<p><strong>Hinweis:</strong> Um die Verwendung von htmlspecialchars() zu verhindern, kann man einen HTML-ViewHelper einsetzen:</p>

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

<p><strong>Hinweis2:</strong> Auf die Verwendung von Templates, Layouts und Partials in Fluid geht <a href="http://www.marcoseiler.de/typo3/typo3-inhalte-ausgeben/fluidtemplate-typoscript.html" target="_blank">Marco</a> ausführlich ein.</p>
<p><strong>4. Subparts in Fluid?</strong><br />
Subparts gibt es in Fluid nicht und so wie es aussieht, wird es leider auch nie welche geben. Dennoch wäre es schön, wenn man den gesetzten Dummy Text nicht entfernen müsste.<br />
Mit einem Trick und unter Verwendung eines cObject-ViewHelpers ist es dennoch möglich, Dummy Texte weiterhin zu erhalten. Man muss den ViewHelper lediglich mit einem öffnenden und einem schließenden Tag schreiben. Der Text dazwischen wird durch das jeweilige TypoScript-Objekt ersetzt.</p>
<p><strong>Verwendung von Subparts beim herkömmlichen Templating:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- Alte Schreibweise --&gt;
&lt;div id=&quot;content&quot;&gt;
	&lt;!-- ###CONTENT### --&gt;
	&lt;h1&gt;Dalmatiner&lt;/h1&gt;
	&lt;p&gt;Der Dalmatiner ist ein mittelgroßer 
	bis großer gut proportionierter, 
	getupfter, kräftiger, lebhafter, 
	sehr auffälliger Hund. Sein ausgeglichener, 
	schlanker Körper besitzt einen starken Rücken 
	mit einer gleichmäßigen geraden Rückenlinie.&lt;/p&gt;
	&lt;!-- ###CONTENT### --&gt;
&lt;/div&gt;</pre></div></div>


<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>
	template <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">FILE</span>
	template<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>html
&nbsp;
	subparts<span style="color: #339933; font-weight: bold;">.</span><span style="color: #990000; font-weight: bold;">CONTENT</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: #009900;">&#125;</span></pre></div></div>

<p><strong>Erhaltung der Dummytexte in Fluid:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!-- Neue Schreibweise --&gt;
&lt;div id=&quot;content&quot;&gt;
	&lt;f:cObject typoscriptObjectPath=&quot;lib.content&quot;&gt;
	&lt;h1&gt;Dalmatiner&lt;/h1&gt;
	&lt;p&gt;Der Dalmatiner ist ein mittelgroßer 
	bis großer gut proportionierter, 
	getupfter, kräftiger, lebhafter, 
	sehr auffälliger Hund. Sein ausgeglichener, 
	schlanker Körper besitzt einen starken Rücken 
	mit einer gleichmäßigen geraden Rückenlinie.&lt;/p&gt;
	&lt;/f:cObject&gt;
&lt;/div&gt;</pre></div></div>


<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>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</pre></div></div>

<p><strong>Hinweis:</strong> Der direkte Aufruf &lt;f:cObject typoscriptObjectPath=&#8221;styles.content.get&#8221; /&gt; war mir leider nicht möglich.</p>
<p><strong>5. Links zu Fluid und FLUIDTEMPLATE</strong></p>
<ul>
<li><a href="http://typo3.org/development/articles/the-fluidtemplate-cobject/" target="_blank">Die offizielle Erklärung des FLUIDTEMPLATE auf typo3.org</a></li>
<li><a href="http://www.marcoseiler.de/typo3/typo3-inhalte-ausgeben/fluidtemplate-typoscript.html" target="_blank">FLUIDTEMPLATE einbinden &#8211; gut erklärt von Marco</a></li>
<li><a href="http://www.sgtypo3.de/blog/fluid-template-engine-teil1-grundlagen/" target="_blank">Sebastian zeigt auch noch einmal die Verwendung von FLUIDTEMPLATE</a></li>
</ul>
<p>Wie immer freue ich mich über jeden Kommentar.</p>
<p>Gruß aus Rosenheim,<br />
Alex Kellner</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/fluidtemplate-vs-subparts/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Neues in 4-6: Übersetzungen in Listenansicht ausblenden</title>
		<link>http://typo3blogger.de/neues-in-4-6-ubersetzungen-in-listenansicht-ausblenden/</link>
		<comments>http://typo3blogger.de/neues-in-4-6-ubersetzungen-in-listenansicht-ausblenden/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 15:54:41 +0000</pubDate>
		<dc:creator>Georg Ringer</dc:creator>
				<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6385</guid>
		<description><![CDATA[Mit einer TsConfig-Einstellung lassen sich Übersetzungen in der Listenansicht ausblenden. Mit der Einstellung mod.web_list.hideTranslation kann man Übersetzungen ausblenden, sofern man die Checkbox &#8220;Localization view&#8221; nicht aktiviert hat. In dieser werden die Übersetzungen weiterhin angezeigt. Als Wert ist entweder &#8216;*&#8217; oder eine kommaseparierte Liste der Tabellennamen gültig. Forge-Ticket: http://forge.typo3.org/issues/23198 ------------------------------------------------------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>Mit einer TsConfig-Einstellung lassen sich Übersetzungen in der Listenansicht ausblenden.</p>
<p><span id="more-6385"></span>Mit der Einstellung mod.web_list.hideTranslation kann man Übersetzungen ausblenden, sofern man die Checkbox &#8220;Localization view&#8221; nicht aktiviert hat. In dieser werden die Übersetzungen weiterhin angezeigt. Als Wert ist entweder &#8216;*&#8217; oder eine kommaseparierte Liste der Tabellennamen gültig.</p>
<p>Forge-Ticket: <a href="http://forge.typo3.org/issues/23198">http://forge.typo3.org/issues/23198</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/neues-in-4-6-ubersetzungen-in-listenansicht-ausblenden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unbekannte Gifbuilder Eigenschaften: breakWidth und breakSpace</title>
		<link>http://typo3blogger.de/unbekannte-gifbuilder-eigenschaften-breakwidth-und-breakspace/</link>
		<comments>http://typo3blogger.de/unbekannte-gifbuilder-eigenschaften-breakwidth-und-breakspace/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 13:17:36 +0000</pubDate>
		<dc:creator>Björn Jacob</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6339</guid>
		<description><![CDATA[In einem TYPO3 Projekt bestand die Anforderung, eine individuelle Schriftart, die keine Systemschrift ist, für jegliche Überschriften zu verwenden. Ganz klar: das ist eine unproblematische Aufgabe für den GifBuilder.  Jedoch wurde  für die tt_news Beiträge ein etwas anderes Layout gefordert. Die Überschrift sollte sich nicht über die ganze Seite, sondern nur über einen Teil der [...]<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 TYPO3 Projekt bestand die Anforderung, eine individuelle Schriftart, die keine Systemschrift ist, für jegliche Überschriften zu verwenden. Ganz klar: das ist eine unproblematische Aufgabe für den GifBuilder.  Jedoch wurde  für die tt_news Beiträge ein etwas anderes Layout gefordert. Die Überschrift sollte sich nicht über die ganze Seite, sondern nur über einen Teil der Seite erstrecken und automatisch umbrechen. Mein erster Lösungsansatz bestand darin, dass der Redakteur ein bestimmtes Sonderzeichen verwendet, um manuell den Zeilenumbruch zu kennzeichnen. Per TypoScript hätte man dann per stdWrap Funktion split eine Trennung herbeigeführt. Diese Lösung ist für den Redakteur umständlich und verwirrend. Das zu verwendende TypoScript ist relativ statisch.<span id="more-6339"></span></p>
<p>Bei einer Recherche nach einer eleganteren Lösung stößt man irgendwann unweigerlich auf den <a href="http://bugs.typo3.org/view.php?id=10666" target="_blank">TYPO3 Bugtracker</a> bzw. den <a href="http://forge.typo3.org/issues/20164" target="_blank">Forge Eintrag</a> „Integrate automatic line breaks in GIFBUILDER“. Dort wird ersichtlich, dass seit TYPO3 4.3.0 u.a. zwei neue Eigenschaften für das TEXT Objekt des GifBuilders zur Verfügung stehen. Die beiden Eigenschaften werden genauer in der <a href="http://typo3.org/documentation/document-library/references/doc_core_tsref/4.5.0/view/1/8/" target="_blank">TSRef</a> beschrieben.</p>
<p>Die Eigenschaft breakWidth ist vom Typ Integer. Sie definiert die maximale Länge des TEXT Objekts. Überstehende Elemente erzeugen einen automatischen Umbruch. Die Eigenschaft breakSpace ist vom Typ Float. Sie ist ein Wert, der mit der Zeilenhöhe des aktuellen Elements multipliziert wird. Diese Eigenschaft kann man sich bspw. als Zeilenabstand vorstellen, wie man es aus Schreibprogrammen kennt (z.B.  1,5facher Zeilenabstand). breakSpace ist mit dem Wert 1.0 vorbelegt.</p>
<p>Ein Minimalbeispiel sähe wie folgt aus.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>renderHeadline <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">IMAGE</span>
<span style="color: #000066; font-weight: bold;">temp</span><span style="color: #339933; font-weight: bold;">.</span>renderHeadline <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="color: #990000; font-weight: bold;">GIFBUILDER</span>
 <span style="color: #000066; font-weight: bold;">file</span> <span style="color: #009900;">&#123;</span>
  XY <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>w<span style="color: #009900;">&#93;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">10</span>, <span style="color: #009900;">&#91;</span><span style="color: #cc0000;">10</span><span style="color: #339933; font-weight: bold;">.</span>h<span style="color: #009900;">&#93;</span><span style="color: #339933; font-weight: bold;">+</span><span style="color: #cc0000;">20</span>
  <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
  <span style="color: #cc0000;">10</span> <span style="color: #009900;">&#123;</span>
   text <span style="color: #339933; font-weight: bold;">=</span> Das ist ein ganz langer Text, der ganz sicher umbricht<span style="color: #339933; font-weight: bold;">.</span>
   backColor <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">#ffffff</span>
   fontSize <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">15</span>
   fontColor <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">#999999</span>
   offset <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">5</span>, <span style="color: #cc0000;">15</span>
   breakWidth <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">100</span>
   breakSpace <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1.5</span>
  <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ein Beispiel für die Funktionsweise findet ihr auf der Seite <a href="http://www.partisan-vodka.de/partisan-universe/" target="_blank">Partisan Vodka</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/unbekannte-gifbuilder-eigenschaften-breakwidth-und-breakspace/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Generische TypoScript Bibliothek</title>
		<link>http://typo3blogger.de/generische-typoscript-bibliothek/</link>
		<comments>http://typo3blogger.de/generische-typoscript-bibliothek/#comments</comments>
		<pubDate>Sat, 07 May 2011 11:25:19 +0000</pubDate>
		<dc:creator>Björn Jacob</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=5923</guid>
		<description><![CDATA[Wenn man des Öfteren an verschiedenen TYPO3 Projekten arbeitet &#8211; bspw. als TYPO3 Integrator in einer Agentur &#8211; bietet es sich an, eine Extension zu entwickeln, die als zentrale TypoScript Bibliothek dient. Darüber hinaus können mit der Extension bestimmte Backend Einstellungen für den Redakteur (User TSconfig) und global für die Installation (Page TSconfig) eingebunden werden. [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Wenn man des Öfteren an verschiedenen TYPO3 Projekten arbeitet &#8211; bspw. als TYPO3 Integrator in einer Agentur &#8211; bietet es sich an, eine Extension zu entwickeln, die als zentrale TypoScript Bibliothek dient. Darüber hinaus können mit der Extension bestimmte Backend Einstellungen für den Redakteur (User TSconfig) und global für die Installation (Page TSconfig) eingebunden werden. Ziel dieses Beitrags ist es, eine solche Extension zu erstellen und Potentiale zur Effizienzsteigerung aufzuzeigen. Vorausgesetzt werden fortgeschrittene TYPO3 Kenntnisse und erste Erfahrungen im Umgang mit dem Extension Kickstarter sowie eine frische TYPO3 Installation.<span id="more-5923"></span></p>
<p><strong>Schritt 1: Extension anlegen</strong><br />
Mit Hilfe des Extension Kickstarters erstellt man eine neue Extension. Als Extension Key wählt man bspw. <u>generic_lib</u> und füllt alle notwendigen Felder im Bereich „General info“. Hierzu gehören ein Titel (z.B. Generic Library) und eine kurze Beschreibung. Außerdem kann man eine Kategorie angeben (z.B. Miscellaneous), einen Status wählen (z.B. Beta) sowie seinen Namen und eine E-Mail Adresse angeben. Nachdem alle Daten eingetragen und der Button „Update“ geklickt wurde, wechselt man zum Bereich „Static TypoScript code“.<br />
Hier vergibt man für das statische Extension Template bspw. den Titel „Generic Lib“ und fügt den ersten TypoScript Code in die vorgesehen Textfelder einfügen.</p>
<p><strong>Constants</strong><br />
In den Constants werden Pfade definiert, die uid der Root Seite festgelegt und ein Standard Logo sowie der Titel der TYPO3 Website vergeben.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;">generic_lib <span style="color: #009900;">&#123;</span>
  pathRoot <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>
  <span style="color: #aaa; font-style: italic;">#relative to pathRoot</span>
  pathImages <span style="color: #339933; font-weight: bold;">=</span> images<span style="color: #339933; font-weight: bold;">/</span>
  pathCss <span style="color: #339933; font-weight: bold;">=</span> css<span style="color: #339933; font-weight: bold;">/</span>
  websiteRootUid <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
  websiteLogo <span style="color: #339933; font-weight: bold;">=</span> logo<span style="color: #339933; font-weight: bold;">.</span>png
  websiteTitle <span style="color: #339933; font-weight: bold;">=</span> Hello World Website
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Setup</strong><br />
Im Setup erzeugt man eine Bibliothek, die das Logo der Website ausgibt. Das Logo ist verlinkt zur Startseite. Der Link ist absolut, um valides HTML auch bei Verwendung von RealURL zu erzeugen. Ohne die Angabe wäre das href Attribut leer.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;">#get website logo and wrap it with link to homepage</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>getLogo <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">IMAGE</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>getLogo <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="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.pathRoot</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.pathImages</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.websiteLogo</span><span style="color: #009900;">&#125;</span>
  altText <span style="color: #339933; font-weight: bold;">=</span> Go to homepage of <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.websiteTitle</span><span style="color: #009900;">&#125;</span>
  altText<span style="color: #339933; font-weight: bold;">.</span>lang<span style="color: #339933; font-weight: bold;">.</span>de <span style="color: #339933; font-weight: bold;">=</span> Zur Startseite von <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.websiteTitle</span><span style="color: #009900;">&#125;</span>
  <span style="font-weight: bold;">stdWrap</span><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> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.websiteRootUid</span><span style="color: #009900;">&#125;</span>
  <span style="font-weight: bold;">stdWrap</span><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: #009900;">&#125;</span></pre></div></div>

<p>Nun klickt man auf den Button „View result“ und prüft, welche Dateien erzeugt werden. Die aktuellen Einstellungen sollen genügen und so klickt man auf den Button „Write“, um die Extension im Verzeichnis /typo3conf/ext zu generieren.</p>
<p>Nachdem die Extension erzeugt wurde, kann man sie installieren und den Cache leeren. Um zu prüfen, ob alles geklappt hat, erzeugt man das TypoScript Root Template. Danach wechselt man auf den Reiter „Enthält“. Dort sollte man im Select „Verfügbare Objekte“ einen neuen Eintrag „Generic Lib (generic_lib)“ sehen können. Falls dies so ist, hat man alles richtig gemacht. Man fügt als erstes CSS Styled Content und danach die Generic Lib ein.</p>
<p><strong>Schritt 2: Erster Einsatz</strong><br />
Für einen ersten Test soll die Bibliothek „lib.getLogo“ eingebunden werden. Im Setup des TypoScript Root Templates setzt man folgende Konfiguration.</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: #009900;">&#123;</span>
  typeNum <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
  <span style="color: #cc0000;">10</span> <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>getLogo
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Sobald das Logo im Pfad /fileadmin/templates/images/logo.png vorliegt, wird es auf der Website angezeigt.</p>
<p><strong>Schritt 3: Optimierung und Erweiterung der Bibliothek</strong><br />
IMHO hat der Kickstarter eine überflüssige Verzeichnisebene “generic_lib“ im Verzeichnis „static“ angelegt. Als erstes verschiebt man die beiden Dateien constants.txt und setup.txt von /static/generic_lib/ nach /static. Danach generiert man folgende zusätzliche Verzeichnisse und Dateien.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #339933; font-weight: bold;">/</span>static<span style="color: #339933; font-weight: bold;">/</span><span style="color: #ed7d14;">language</span><span style="color: #339933; font-weight: bold;">/</span><span style="color: #ed7d14;">language</span><span style="color: #339933; font-weight: bold;">.</span>ts
<span style="color: #339933; font-weight: bold;">/</span>static<span style="color: #339933; font-weight: bold;">/</span>navigation<span style="color: #339933; font-weight: bold;">/</span>navigation<span style="color: #339933; font-weight: bold;">.</span>ts
<span style="color: #339933; font-weight: bold;">/</span>static<span style="color: #339933; font-weight: bold;">/</span>libs<span style="color: #339933; font-weight: bold;">/</span>libs<span style="color: #339933; font-weight: bold;">.</span>ts</pre></div></div>

<p>Die Datei /ext_tables.php ist anzupassen, um die geänderte Verzeichnisstruktur TYPO3 bekannt zu geben. Durch die Änderung ist leider auch das statische Template erneut dem TypoScript Root Template im Backend zuzuordnen.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;">t3lib_extMgm<span style="color: #339933; font-weight: bold;">::</span>addStaticFile<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">$</span>_EXTKEY,'static<span style="color: #339933; font-weight: bold;">/</span>', 'Generic Lib'<span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Es bietet sich an, in die setup.txt allgemein gültige Konfigurationen vorzunehmen. So definiere ich in dieser Datei bereits das Template und das Page Objekt und setze einige stets wiederkehrende config Einstellungen. Der folgende Code zeigt ein Auszug meiner setup.txt Definition.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;">#set page object</span>
<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: #009900;">&#123;</span>
  typeNum <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
  <span style="color: #aaa; font-style: italic;">#set new page title</span>
  <span style="color: #000066; font-weight: bold;">config</span><span style="color: #339933; font-weight: bold;">.</span>noPageTitle <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">2</span>
  stylesheet <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>pathRoot</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>pathCss</span><span style="color: #009900;">&#125;</span>screen<span style="color: #339933; font-weight: bold;">.</span>css
  shortcutIcon <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>pathRoot</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>pathImages</span><span style="color: #009900;">&#125;</span>favicon<span style="color: #339933; font-weight: bold;">.</span>ico
  headerData <span style="color: #009900;">&#123;</span>
    <span style="color: #cc0000;">10</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TEXT</span>
    <span style="color: #cc0000;">10</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">field</span> <span style="color: #339933; font-weight: bold;">=</span> title
      wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;title&gt;</span><span style="color: #339933; font-weight: bold;">|</span>&amp;nbsp;&amp;<span style="color: #3366CC;">#124</span>; <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>websiteTitle</span><span style="color: #009900;">&#125;</span><span style="color: #3366CC;">&lt;/title&gt;</span>
      htmlSpecialChars <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>
&nbsp;
<span style="color: #aaa; font-style: italic;">#general config</span>
<span style="color: #000066; font-weight: bold;">config</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #aaa; font-style: italic;">#global variables</span>
  linkVars <span style="color: #339933; font-weight: bold;">=</span> L
  disablePrefixComment <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
  doctype <span style="color: #339933; font-weight: bold;">=</span> xhtml_trans
  xmlprologue <span style="color: #339933; font-weight: bold;">=</span> none
  xhtml_cleaning <span style="color: #339933; font-weight: bold;">=</span> all
  <span style="color: #aaa; font-style: italic;">#change title to &quot;Seitentitel - Allgemeiner Titel&quot;</span>
  pageTitleFirst <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Außerdem inkludiert man am Ende der setup.txt die oben erzeugten zusätzlichen Dateien.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;">#include language TS</span>
<span style="color: #3366CC;">&lt;INCLUDE_TYPOSCRIPT: source=&quot;FILE:EXT:generic_lib/static/<span style="color: #ed7d14;">language</span><span style="color: #339933; font-weight: bold;">/</span><span style="color: #ed7d14;">language</span>.ts&quot;&gt;</span>
<span style="color: #aaa; font-style: italic;">#include navigation TS</span>
<span style="color: #3366CC;">&lt;INCLUDE_TYPOSCRIPT: source=&quot;FILE:EXT:generic_lib/static/navigation/navigation.ts&quot;&gt;</span>
<span style="color: #aaa; font-style: italic;">#include additional libs</span>
<span style="color: #3366CC;">&lt;INCLUDE_TYPOSCRIPT: source=&quot;FILE:EXT:generic_lib/static/libs/libs.ts&quot;&gt;</span></pre></div></div>

<p>In der language.ts wird eine grundlegende Sprachkonfiguration vorgenommen.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">config</span> <span style="color: #009900;">&#123;</span>
  sys_language_uid <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
  <span style="color: #ed7d14;">language</span> <span style="color: #339933; font-weight: bold;">=</span> de
  locale_all <span style="color: #339933; font-weight: bold;">=</span> de_DE<span style="color: #339933; font-weight: bold;">.</span>UTF8
  htmlTag_langKey <span style="color: #339933; font-weight: bold;">=</span> de_DE
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>In der navigation.ts speichert man öfters verwendete Navigationsobjekte. In meinem Fall habe ich ein TMENU lib.navigation angelegt mit bis zu 4 Ebenen. Ein weiteres TMENU lib.navigation_open basiert auf der lib.navigation, hat aber die Eingeschaft expAll = 1. So kann ich bspw. ein per CSS gesteuertes ausklappendes Menü abbilden. Weiterhin habe ich einige libs angelegt, die vom Typ „special“ sind. Hier lassen sich hervorragend Menüs einzelner Seiten ausgeben (special = list), Menüs von Unterseiten (special = directory), Sprachmenüs (special = language) oder der Brotkrumenpfad (special = rootline). Flexibilität entsteht durch die Verwendung von Constants, wie das folgende Beispiel zeigt.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;">#draw navigation with one layer</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>navigation <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">HMENU</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>navigation <span style="color: #009900;">&#123;</span>
  entryLevel <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.navigationEntryLevel</span><span style="color: #009900;">&#125;</span>
  <span style="color: #cc0000;">1</span> <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">TMENU</span>
  <span style="color: #cc0000;">1</span> <span style="color: #009900;">&#123;</span>
    wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;ul class=&quot;lvl1&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/ul&gt;</span>
    <span style="color: #990000; font-weight: bold;">NO</span><span style="color: #339933; font-weight: bold;">.</span>linkWrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;li class=&quot;first&quot;&gt;</span><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: #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 class=&quot;last&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>
  <span style="color: #cc0000;">2</span> <span style="color: #339933; font-weight: bold;">&lt;</span> <span style="color: #339933; font-weight: bold;">.</span>1
  <span style="color: #cc0000;">2</span><span style="color: #339933; font-weight: bold;">.</span>wrap <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #3366CC;">&lt;ul class=&quot;lvl2&quot;&gt;</span><span style="color: #339933; font-weight: bold;">|</span><span style="color: #3366CC;">&lt;/ul&gt;</span><span style="color: #3366CC;">&lt;/li&gt;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #aaa; font-style: italic;">#draw special navigation based on special menu - list</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>navigation_special <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">HMENU</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>navigation_special <span style="color: #009900;">&#123;</span>
  special <span style="color: #339933; font-weight: bold;">=</span> list
  special<span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.navigationSpecialPidList</span><span style="color: #009900;">&#125;</span>
  includeNotInMenu <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">1</span>
  <span style="color: #cc0000;">1</span> <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>navigation<span style="color: #339933; font-weight: bold;">.</span>1
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #aaa; font-style: italic;">#draw special navigation based on special menu - directory</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>navigation_special_dir <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>navigation_special
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>navigation_special_dir <span style="color: #009900;">&#123;</span>
  special <span style="color: #339933; font-weight: bold;">=</span> directory
  special<span style="color: #339933; font-weight: bold;">.</span>value <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;"><span style="color: #009900; font-weight: bold;">$</span>generic_lib.navigationSpecialPidDir</span><span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>In der libs.ts finden alle sonstigen Bibliotheken Platz. Hier wäre auch das weiter oben erstellte  lib.getLogo unterzubringen. Neben dieser Standard Funktion habe ich bspw. eine lib angelegt, die das Feld „media“ einer Seiten ausliest.</p>

<div class="wp_syntax"><div class="code"><pre class="typoscript" style="font-family:monospace;"><span style="color: #aaa; font-style: italic;">#get page media resource</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>getMainImage <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #990000; font-weight: bold;">IMAGE</span>
<span style="color: #000066; font-weight: bold;">lib</span><span style="color: #339933; font-weight: bold;">.</span>getMainImage <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>import <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>
  <span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>import<span style="color: #339933; font-weight: bold;">.</span>data <span style="color: #339933; font-weight: bold;">=</span> levelmedia<span style="color: #339933; font-weight: bold;">:</span>-<span style="color: #cc0000;">1</span>, slide
  <span style="color: #000066; font-weight: bold;">file</span><span style="color: #339933; font-weight: bold;">.</span>import<span style="color: #339933; font-weight: bold;">.</span>listNum <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #cc0000;">0</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Das im Schritt 2 erstellte PAGE Objekt könnte man nun wie folgt ändern und erweitern. Dabei ist zu beachten, dass die generic_lib schon das PAGE Objekt erstellt und wir uns dadurch einige Zeilen Konfiguration sparen. Damit die Navigation funktioniert, ist in den Constants noch generic_lib.navigationEntryLevel = 0 zu setzen.</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: #009900;">&#123;</span>
  <span style="color: #cc0000;">10</span> <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>getLogo
  <span style="color: #cc0000;">20</span> <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>getMainImage
  <span style="color: #cc0000;">30</span> <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>navigation
  <span style="color: #cc0000;">40</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: #009900;">&#125;</span></pre></div></div>

<p>Noch ein Hinweis. Die automatisch per Kickstarter erzeugte Datei „ChangeLog“ sollte man verwenden, um Änderungen an der Extension zu dokumentieren. Dabei bietet es sich an, in der Datei „ext_emconf.php“ den Wert für die Eigenschaft „version“ zu erhöhen. Weiterhin können in der Datei über den Wert $EM_CONF[$_EXTKEY] [constraints][depends] Abhängigkeiten von anderen Extensions und bspw. der TYPO3 und PHP Version gepflegt werden.</p>
<p>Ich verwende auf  unseren TYPO3 Servern globale TYPO3 Sourcen (via symlinks). Dort habe ich die generic_lib im Verzeichnis /typo3/ext abgelegt. Die generic_lib wird als globale Extension in der jeweiligen TYPO3 Instanz installiert. So ist nur eine Version der generic_lib zu pflegen. Sicherlich gibt es hier auch andere Möglichkeiten. Wichtig ist nur, dass man lediglich eine generic_lib pflegen muss <img src='http://typo3blogger.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Ausblick und Potential</strong><br />
Die generic_lib stellt erst den Anfang dar. Man könnte nun eine weitere Extension pro Website „theme_PROJEKT“ erstellen und dort projektspezifische TypoScript Konfigurationen einfügen. Im Theme liegen alle benötigten CSS, HTML (sowohl Layout als auch Extension HTML Templates), Images und  JavaScript Dateien. Diese Vorgehensweise bringt mehrere Vorteile:</p>
<ul>
<li>Es wird kein TypoScript mehr in der Datenbank gespeichert und über das Backend editiert. Man benötigt nur noch zwei Zeilen TypoScript, um das TypoScript des Themes zu inkludieren. Für die Constants &lt;INCLUDE_TYPOSCRIPT: source=&#8221;FILE:EXT:theme_PROJEKT/files/ts/constants.ts&#8221;&gt; und für das Setup &lt;INCLUDE_TYPOSCRIPT: source=&#8221;FILE:EXT:theme_PROJEKT/files/ts/setup.ts&#8221;&gt;.</li>
<li>Dadurch kann man mit seinem Lieblingseditor das TypoScript extern bearbeiten. Ich verwende Notepad++ mit TypoScript Syntax Highlighting. Sehr komfortabel <img src='http://typo3blogger.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Man kann eine Versionskontrolle wie SVN oder git verwenden.</li>
</ul>
<p>In den TypoScript Dateien verwendet man dann unproblematisch die Konfiguration und Bibliotheken der generic_lib. Durch diese Vorgehensweise ist es möglich, TYPO3 Projekte immer schneller umsetzen zu können. </p>
<p>Dies ist ein Gastbeitrag von Björn Jacob (<a href="http://www.tritum.de">TRITUM GmbH</a>) für die “<a href="http://typo3blogger.de/alles-muss-raus/">Alles muss raus</a>” Aktion.</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/generische-typoscript-bibliothek/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

