<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">

    <title type="text">wiki</title>
    <subtitle type="text">wiki</subtitle>
    <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/" />
    <link rel="self" type="application/atom+xml" href="http://www.lisardo.de/wiki/Spezial:Recentchanges_Atom" />
    <updated>2010-03-02T20:41:52Z</updated>
    <rights>Copyright (c) 2006, info@lisardo.de</rights>
    <generator uri="http://www.pmachine.com/" version="1.6.6">ExpressionEngine</generator>
    <id>tag:lisardo.de,2010:03:02:wiki</id>


    <entry>
      <title>DAM Extension Redakteure</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/DAM-Extension-Redakteure/" />
      <id>tag:lisardo.de,2010:wiki:DAM Extension Redakteure/86.663</id>
      <published>2010-03-02T20:41:52Z</published>
      <updated>2010-03-02T20:41:52Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <p>Die Gruppe der Redakteure braucht <strong>Zugriff auf den Media-Sysfolder</strong> &#8211; allerdings soll dieser eigentlich nicht allen Redakteuren gezeigt werden. Deshalb gibt es in der <span class="caps">DAM</span>-Extension selbst die Option &#8216;Hide Media sysfolder&#8217;. Diese Checkbox einfach anklicken und die Redakteure sehen den Sysfolder nicht mehr. </p>

	<p>Allerdings muss er sichtbar sein beim Einrichten der Benutzergruppen, sonst ist es ja nicht möglich, ihn den Gruppen zuzuweisen; man muss diese Option also öfter an- bzw. wieder ausschalten. </p>

	<p>Ausserdem benötigen die Redakteure <strong>Schreibzugriff auf die Tabelle »Medien«</strong>. </p>

	<h3>Weiterführende Links</h3>

	<p><a href="http://www.typo3-snippets.de/snippets/generelle-konfiguration/dam-extension-fuer-redakteure-einrichten.html"><span class="caps">DAM</span>-Extension für Redakteure einrichten</a></p>

	<h3>Kategorien</h3>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::Backend/" title="Category:Typo3::Backend" class="noArticle">Category:Typo3 -&gt; Backend</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::DAM/" title="Category:Typo3::DAM" class="noArticle">Category:Typo3 -&gt; <span class="caps">DAM</span></a></p>
      ]]></content>
    </entry>

    <entry>
      <title>Inhaltselemente formatieren</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/Inhaltselemente-formatieren/" />
      <id>tag:lisardo.de,2010:wiki:Inhaltselemente formatieren/57.660</id>
      <published>2010-02-24T13:39:35Z</published>
      <updated>2010-02-24T13:39:35Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <p>Die Optionen aller Eingabefelder im Backend können modifizert (= geändert oder erweitert) werden. Prinzipiell ist die Syntax: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">TCEFORM</span><span style="color: #006600">.</span><span style="color: #0000CC">&#91;tablename&#93;</span><span style="color: #006600">.</span><span style="color: #0000CC">&#91;field&#93; &#123;<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># Feld komplett entfernen: <br />&nbsp;&nbsp;</span><span style="color: #0000CC">disabled </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># Item entfernen<br />&nbsp;&nbsp;</span><span style="color: #0000CC">removeItems </span><span style="color: #006600">= </span><span style="color: #0000CC">1</span><span style="color: #006600">,</span><span style="color: #0000CC">2</span><span style="color: #006600">,</span><span style="color: #0000CC">3<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># Item hinzufügen (Achtung: erfordert für das Frontend noch TypoScript im Template!)<br />&nbsp;&nbsp;</span><span style="color: #0000CC">addItems</span><span style="color: #006600">.</span><span style="color: #0000CC">&#91;itemValue&#93; </span><span style="color: #006600">= </span><span style="color: #0000CC">100</span><span style="color: #006600">,</span><span style="color: #0000CC">101<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># Umbenennen<br />&nbsp;&nbsp;</span><span style="color: #0000CC">altLabels</span><span style="color: #006600">.</span><span style="color: #0000CC">&#91;item_value&#93; </span><span style="color: #006600">= </span><span style="color: #0000CC">ein ganz neuer Name<br />&#125; </span>
</span>
</code></div></p>

	<p>Leider gibt es keine Dokumentation, welche Optionen für welches Feld zur Verfügung stehen und wie diese im Frontend ausgegeben werden. Das kann man wohl am einfachsten aus dem Quelltext des Eingabeformulars im Backend entnehmen. Für das Frontend kenne ich im Moment nur die Möglichkeit, es auszutesten bzw im Falle von tt_content das TypoScript von css_styled_content durchzusehen. </p>

	<h3>Bezeichnungen der Headline-Layouts ändern: </h3>

	<p>Ins TSconfig der der Seite folgendes eintragen: <br />
<div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">TCEFORM</span><span style="color: #006600">.</span><span style="color: #0000CC">tt_content &#123;<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># ausblenden<br />&nbsp;&nbsp;</span><span style="color: #0000CC">header_layout</span><span style="color: #006600">.</span><span style="color: #0000CC">removeItems </span><span style="color: #006600">= </span><span style="color: #0000CC">1</span><span style="color: #006600">,</span><span style="color: #0000CC">4</span><span style="color: #006600">,</span><span style="color: #0000CC">5</span><span style="color: #006600">,</span><span style="color: #0000CC">100<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># mit anderem Namen versehen<br />&nbsp;&nbsp;</span><span style="color: #0000CC">header_layout</span><span style="color: #006600">.</span><span style="color: #0000CC">altLabels.0 </span><span style="color: #006600">= </span><span style="color: #0000CC">Ebene 1</span><span style="color: #006600">, </span><span style="color: #0000CC">H1<br />&nbsp;&nbsp;header_layout</span><span style="color: #006600">.</span><span style="color: #0000CC">altLabels.2 </span><span style="color: #006600">= </span><span style="color: #0000CC">Ebene 2</span><span style="color: #006600">, </span><span style="color: #0000CC">H2<br />&nbsp;&nbsp;header_layout</span><span style="color: #006600">.</span><span style="color: #0000CC">altLabels.3 </span><span style="color: #006600">= </span><span style="color: #0000CC">Ebene 3</span><span style="color: #006600">, </span><span style="color: #0000CC">H3<br />&#125; </span>
</span>
</code></div></p>

	<p>Falls H1 nicht genutzt werden soll, muss die Default-Einstellung noch geändert werden, bzw. die Ausgabe für header_layout.altLabels.0. Das geht über folgende Eingabe im Constants-Bereich des TypoScript-Templates: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF9900"># Voreinstellunge auf Headline &lt;h3&gt;<br /></span><span style="color: #0000CC">content</span><span style="color: #006600">.</span><span style="color: #0000CC">defaultHeaderType </span><span style="color: #006600">= </span><span style="color: #0000CC">3 </span>
</span>
</code></div></p>

	<h3>Rahmenoptionen umbenennen: </h3>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">TCEFORM</span><span style="color: #006600">.</span><span style="color: #0000CC">tt_content &#123;<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># Rahmenoptionen im Bereich Typ<br />&nbsp;&nbsp;</span><span style="color: #0000CC">section_frame &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># neue Labels<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">altLabels &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10 </span><span style="color: #006600">= </span><span style="color: #0000CC">Kasten<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5 </span><span style="color: #006600">= </span><span style="color: #0000CC">Linie davor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6 </span><span style="color: #006600">= </span><span style="color: #0000CC">Linie danach<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11 </span><span style="color: #006600">= </span><span style="color: #0000CC">BoxBlau<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12 </span><span style="color: #006600">= </span><span style="color: #0000CC">BoxGrau<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;</span><span style="color: #FF9900"># ausblenden<br />&nbsp;&nbsp;</span><span style="color: #0000CC">removeItems </span><span style="color: #006600">= </span><span style="color: #0000CC">1</span><span style="color: #006600">, </span><span style="color: #0000CC">20</span><span style="color: #006600">, </span><span style="color: #0000CC">21<br />&nbsp;&nbsp;&#125;<br />&#125; </span>
</span>
</code></div></p>

	<h3>Neue Rahmenoptionen hinzufügen</h3>

	<p>Das ist etwas aufwändiger, da hierzu auch das TypoScript von tt_content verändert werden muss. Erster Schritt im TSconfig der Seite: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF9900"># neuer Rahmen dazu<br /></span><span style="color: #0000CC">TCEFORM</span><span style="color: #006600">.</span><span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">section_frame &#123;<br />&nbsp;&nbsp;addItems.100 </span><span style="color: #006600">= </span><span style="color: #0000CC">Mal ganz anders<br />&#125; </span>
</span>
</code></div></p>

	<p>Danach im TypoScript-Template: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">stdWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">innerWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject </span><span style="color: #006600">= CASE<br /></span><span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">stdWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">innerWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject &#123;<br />&nbsp;&nbsp;100 </span><span style="color: #006600">= </span><span style="color: #0000CC">TEXT<br />&nbsp;&nbsp;100.value </span><span style="color: #006600">= &lt;</span><span style="color: #0000CC">div </span><span style="color: #006600">class=</span><span style="color: #CC0000">"mal-ganz-anders"</span><span style="color: #006600">&gt;|&lt;/</span><span style="color: #0000CC">div</span><span style="color: #006600">&gt;<br /></span><span style="color: #0000CC">&#125; </span>
</span>
</code></div></p>

	<p>Danach ganz normal in der <span class="caps">CSS</span>-Datei formatieren. </p>

	<p><strong><span class="caps">ACHTUNG</span>:</strong> Das funktioniert seit TYPO3 4.3 nicht mehr; hier wurde css_styled_content etwas verändert. Man kann zwar die alte Fassung als static_content in das Template laden, aber besser ist es, es auf die neue Art zu machen: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">stdWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">innerWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Definitionen zuweisen<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">100 </span><span style="color: #006600">=&lt; </span><span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">stdWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">innerWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject</span><span style="color: #006600">.default<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Klasse zuweisen<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">100.15</span><span style="color: #006600">.</span><span style="color: #0000CC">value </span><span style="color: #006600">= </span><span style="color: #0000CC">mal</span><span style="color: #006600">-</span><span style="color: #0000CC">ganz</span><span style="color: #006600">-</span><span style="color: #0000CC">anders<br />&#125; </span>
</span>
</code></div></p>

	<p>Das hat auch den Vorteile, dass die Abstände oben und unten funktionieren. </p>

	<h3>Weiterführende Links: </h3>

	<ul>
		<li><a href="http://typo3.org/documentation/document-library/references/doc_core_tsconfig/4.1.0/view/1/3/">TS-Referenz auf Typo3.org</a></li>
	</ul>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TSconfig/" title="Category:Typo3::TSconfig" class="noArticle">Category:Typo3 -&gt; TSconfig</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>typolink</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/typolink/" />
      <id>tag:lisardo.de,2010:wiki:typolink/85.658</id>
      <published>2010-02-22T19:38:06Z</published>
      <updated>2010-02-22T19:38:06Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <h3>Typolinks um mehrere Objekte</h3>

	<p>Hier geht es um einen Typolink, der um ein Bild un einen Text liegen soll und der zudem auf einen Anker der aktuellen Seite verweisen soll: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">20 </span><span style="color: #006600">= </span><span style="color: #0000CC">COA<br />20 &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;10 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;10.file </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/</span><span style="color: #0000CC">img</span><span style="color: #006600">/</span><span style="color: #0000CC">mai_seitenanfang</span><span style="color: #006600">.</span><span style="color: #0000CC">gif<br />&nbsp;&nbsp;&nbsp;&nbsp;20 </span><span style="color: #006600">= </span><span style="color: #0000CC">TEXT<br />&nbsp;&nbsp;&nbsp;&nbsp;20.value </span><span style="color: #006600">= </span><span style="color: #0000CC">Seitenanfang<br />&#125;<br />20.stdWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">typolink</span><span style="color: #006600">.</span><span style="color: #0000CC">parameter</span><span style="color: #006600">.</span><span style="color: #0000CC">dataWrap </span><span style="color: #006600">= </span><span style="color: #0000CC">&#123;field</span><span style="color: #006600">:</span><span style="color: #0000CC">uid&#125;</span><span style="color: #FF9900">#page </span>
</span>
</code></div></p>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TypoScript/" title="Category:Typo3::TypoScript" class="noArticle">Category:Typo3 -&gt; TypoScript</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>utf 8</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/utf-8/" />
      <id>tag:lisardo.de,2010:wiki:utf 8/81.657</id>
      <published>2010-02-22T09:26:57Z</published>
      <updated>2010-02-22T09:26:57Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <h2>MySQL-Datenbank und TYPO3 auf utf-8 umstellen</h2>

	<p><strong>Achtung</strong>: Keine Gewähr: bei mir hat das folgende geklappt, aber es hängt stark von der Konfiguration von PhpMyAdmin ab! Das muss nämlich bereits korrekt auf utf-8 konfiguriert sein (was allerdings bei neuen Verisionen der Fall sein sollte). Siehe unten die beiden Links für eine Version, die sicherer funktioniert, aber leider Shell-Zugriff benötigt. </p>

	<p>Ziel ist die Umstellung einer vorhandenen Installation in <span class="caps">ISO</span>-8859-1 nach utf-8. Dazu sind eine Reihe von Schritten nötig: </p>

	<ul>
		<li>mit PhpMyAdmin die Datenbank exportieren. PhpMyAdmin erstellt dabei standardmäßig eine Datei in utf-8; heisst, die Daten sind bereits konvertiert.</li>
		<li>neue DB anlegen und dabei darauf achten, dass die neue DB eine Collation von utf8_general_ci bekommt. Notfalls nachträglich in PhpMyAdmin in der Karteikarte »Operationen« umstellen.</li>
		<li>Die exportiere <span class="caps">SQL</span>-Datei in einem Editor öffnen und dort die Einträge &#8220;<span class="caps">DEFAULT</span> <span class="caps">CHARSET</span>=latin1&#8221; entfernen. <strong>Achtung:</strong> bei mir gab es ein Problem mit der Tabelle »tx_realurl_pathcache« &#8211; beim Import erhielt ich eine Fehlermeldung, dass der Schlüssel länger wäre als 1000 Zeichen, was nicht erlaubt ist. Das liegt an der Umstellung auf utf-8: durch die benötigten 2 &#8211; 3 Byte pro Zeichen wird der Schlüssel zu lang. Ich habe deshalb bei dieser Tabelle &#8220;<span class="caps">DEFAULT</span> <span class="caps">CHARSET</span>=latin1&#8221; gelassen.</li>
		<li>Danach die Datei mit PhpMyAdmin importieren. Wenn alles richtig eingestellt ist, werden die Daten jetzt als utf-8 eingelesen. Das kann kontrolliert werden mit einer kleinen <span class="caps">PHP</span>-Datei:</li>
	</ul>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">$db_link </span><span style="color: #006600">= </span><span style="color: #0000CC">mysql_connect </span><span style="color: #006600">(</span><span style="color: #0000CC">db_url</span><span style="color: #006600">, </span><span style="color: #0000CC">db_user</span><span style="color: #006600">, </span><span style="color: #0000CC">db_passwort</span><span style="color: #006600">);<br /></span><span style="color: #0000CC">$names </span><span style="color: #006600">= </span><span style="color: #0000CC">mysql_query</span><span style="color: #006600">(</span><span style="color: #CC0000">'set names utf8'</span><span style="color: #006600">); <br /></span><span style="color: #0000CC">$db_sel </span><span style="color: #006600">= </span><span style="color: #0000CC">mysql_select_db</span><span style="color: #006600">( </span><span style="color: #0000CC">db_name </span><span style="color: #006600">) or die(</span><span style="color: #CC0000">"Auswahl der Datenbank fehlgeschlagen"</span><span style="color: #006600">);<br /></span><span style="color: #0000CC">$sql </span><span style="color: #006600">= </span><span style="color: #CC0000">"SELECT * FROM pages"</span><span style="color: #006600">;<br />echo </span><span style="color: #CC0000">'&lt;table border="1"&gt;'</span><span style="color: #006600">;<br />while (</span><span style="color: #0000CC">$zeile </span><span style="color: #006600">= </span><span style="color: #0000CC">mysql_fetch_array</span><span style="color: #006600">( </span><span style="color: #0000CC">$db_erg</span><span style="color: #006600">, </span><span style="color: #0000CC">MYSQL_ASSOC</span><span style="color: #006600">))<br /></span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;</span><span style="color: #006600">echo </span><span style="color: #CC0000">"&lt;tr&gt;"</span><span style="color: #006600">;<br />&nbsp;&nbsp;echo </span><span style="color: #CC0000">"&lt;td&gt;"</span><span style="color: #006600">. </span><span style="color: #0000CC">$zeile&#91;</span><span style="color: #CC0000">'uid'</span><span style="color: #0000CC">&#93; </span><span style="color: #006600">. </span><span style="color: #CC0000">"&lt;/td&gt;"</span><span style="color: #006600">;<br />&nbsp;&nbsp;echo </span><span style="color: #CC0000">"&lt;td&gt;"</span><span style="color: #006600">. </span><span style="color: #0000CC">$zeile&#91;</span><span style="color: #CC0000">'title'</span><span style="color: #0000CC">&#93; </span><span style="color: #006600">. </span><span style="color: #CC0000">"&lt;/td&gt;"</span><span style="color: #006600">;<br />&nbsp;&nbsp;echo </span><span style="color: #CC0000">"&lt;/tr&gt;"</span><span style="color: #006600">;<br /></span><span style="color: #0000CC">&#125;<br /></span><span style="color: #006600">echo </span><span style="color: #CC0000">"&lt;/table&gt;"</span><span style="color: #006600">; </span>
</span>
</code></div></p>

	<p>Den Output überprüfen, indem die Kodierung im Browser entsprechend umgestellt wird (oder denOutput mit einem <span class="caps">HTML</span>-Header erweitern und ein charset mitgeben). Entscheidend ist diese Zeile: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">$names </span><span style="color: #006600">= </span><span style="color: #0000CC">mysql_query</span><span style="color: #006600">(</span><span style="color: #CC0000">'set names utf8'</span><span style="color: #006600">); </span>
</span>
</code></div></p>

	<p>sie stellt nämlich die Collation der Verbindung auf utf-8 um, die sonst standardmäßig auf latin stehen würde. Jetzt müssten alle Seitennamen korrekt in utf-8 im Browser erscheinen und PhpMyAdmin müsste sie ebenfalls korrekt anzeigen. Ohne Umstellen der Verbindung würde PhpMyAdmin zwar korrekt utf-8 in die Datenbank schreiben, wir würden aber mit <span class="caps">PHP</span> immer noch latin auslesen.  </p>

	<p>Der Witz ist, dass jetzt wirklich diese Testdatei <strong>und</strong> PhpMyAdmin die korrekten Zeichen anzeigen müssen!</p>

	<p>Allerdings klappt es in TYPO3 noch nicht. Nächster Schritt: </p>

	<ul>
		<li>Im Installtool muss bei [forceCharset] &#8220;utf-8&#8221; und bei [setDBInit] &#8220;set names utf8&#8221; eingetragen werden. Der erste Eintrag sorgt dafür, dass das Backend und die Frontendausgabe immer auf utf-8 eingestellt sind und die zweite Angabe stellt die Kollation der Datenbankverbindung auf utf-8. Insbesondere der zweite Eintrag ist nötig, sonst erhält TYPO3 durch die falsche Standardkollation der Verbindung (latin) doch keine utf-8-Daten.</li>
	</ul>

	<h3>Weiterführende Links</h3>

	<ul>
		<li><a href="http://www.oliver-thiele.de/cms-typo3/tutorials/typo3-mysql-utf8-umstellung.html#c156"><span class="caps">UTF</span>-8-Umstellung</a> (Großen Dank an Oliver, der Tipp mit [setDBInit] war der entscheidende Hinweis nach einigen Stunden Suche).</li>
	</ul>

	<ul>
		<li><a href="http://t3n.de/magazin/mysql-typo3-utf-8-umstellen-tipps-wechsel-latin1-utf-8-220945/">MySQL und TYPO3 auf <span class="caps">UTF</span>-8 umstellen</a></li>
	</ul>

	<ul>
		<li><a href="http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html">MySQL: Zeichensatz-Grundlagen</a> &#8211; Der ausführlichste Artikel zum Problem der Zeichensätze in MySQL. Köhntopp rät allerdings von einer Umstellung der gesamten Datenbank auf <span class="caps">UTF</span>-8 ab und begründet das auch überzeugend mit Speicher- und Performance-Vorteilen. Allerdings erfordert sein Ansatz sehr genaues Arbeiten &#8211; Definition von <span class="caps">CHARSET</span> und <span class="caps">COLLATION</span> auf Spaltenebene.</li>
	</ul>

	<ul>
		<li><a href="http://it-republik.de/php/artikel/UTF-8-fuer-alle-2840.html"><span class="caps">UTF</span>-8 für alle</a> &#8211; der Artikel thematisiert einige Probleme der String-Verarbeitung in <span class="caps">UTF</span>-8 innerhalb von <span class="caps">PHP</span>. Ausführlicher in <a href="http://www.phpwact.org/php/i18n/utf-8">Handling <span class="caps">UTF</span>-8 with <span class="caps">PHP</span></a></li>
	</ul>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::Sprachen/" title="Category:Typo3::Sprachen" class="noArticle">Category:Typo3 -&gt; Sprachen</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::utf-8/" title="Category:Typo3::utf-8" class="noArticle">Category:Typo3 -&gt; utf 8</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>Zugriffsrechte TV</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/Zugriffsrechte-TV/" />
      <id>tag:lisardo.de,2010:wiki:Zugriffsrechte TV/84.653</id>
      <published>2010-02-21T17:04:19Z</published>
      <updated>2010-02-21T17:04:19Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <p>Beim Einrichten von Redaktions-Benutzern mit eingeschränkten Rechten passiert es oft, dass die Redakteure anschließend zwar TemplaVoila-Elemente und Inhaltselemente anlegen können (das wird natürlich getestet bei der Konfiguration der Benutzer-Accounts) aber leider diese Elemente nicht mehr löschen können (oder &#8220;unlinken&#8221; wie es mittlerweile heisst). </p>

	<p>Das liegt daran, dass zum Entfernen von Inhaltselementen andere Schreibrechte benötigt werden als zum Anlegen (warum? Keine Ahnung). Die Gruppe der Redakteure benötigt deshalb in der Zugriffsliste &#8220;Erlaubte Ausschlussfelder&#8221; Zugriff auf folgende Elemente: </p>

	<ul>
		<li>Seite: Content</li>
		<li>Seiteninhalt: Content</li>
	</ul>

	<p>Leider sind diese beiden Felder dann auch sichtbar, wenn die Redakteure neue Seiten anlegen oder die Seiteneigenschaften bearbeiten. Deshalb müssen diese wieder über das TSconfig ausgeschaltet werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">TCEFORM</span><span style="color: #006600">.</span><span style="color: #0000CC">pages</span><span style="color: #006600">.</span><span style="color: #0000CC">tx_templavoila_flex</span><span style="color: #006600">.</span><span style="color: #0000CC">disabled </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />TCEFORM</span><span style="color: #006600">.</span><span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">tx_templavoila_flex</span><span style="color: #006600">.</span><span style="color: #0000CC">disabled </span><span style="color: #006600">= </span><span style="color: #0000CC">1 </span>
</span>
</code></div></p>

	<p>Momentan gibt es ausserdem einen Bug: die Seite wird nach dem Löschen &#8220;unlink element&#8221; nicht neu geladen. Der entfernte Inhalt bleibt also sichtbar, bis die Seite neu aufgerufen wird, z. B. durch Klick auf die Seite im Seitenbaum. Das irritiert die Redakteure sehr. </p>

	<p>Vermutlich fehlt hier der Ajax-Effekt, der auch beim Verstecken der Elemente wirkt. </p>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TemplaVoila/" title="Category:Typo3::TemplaVoila" class="noArticle">Category:Typo3 -&gt; TemplaVoila</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>wizard neue Content Elemente</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/wizard-neue-Content-Elemente/" />
      <id>tag:lisardo.de,2010:wiki:wizard neue Content Elemente/83.651</id>
      <published>2010-02-21T16:19:29Z</published>
      <updated>2010-02-21T16:19:29Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <p>In der Version 4.3 kann man den Wizard für die neuen Inhaltselemente ziemlich gut konfigurieren. Das bentuze ich um z. B. das ebenfalls komplett überarbeitete Inhaltselement Media in die erste Rubrik <strong>Typischer Seiteninhalt</strong> einzubinden. </p>

	<p>Dazu muss in TSconfig der Seite folgender Abschnitt: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">mod &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;wizards&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newContentElement &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Darstellung in Tabs<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">renderMode </span><span style="color: #006600">= </span><span style="color: #0000CC">tabs<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Content-Element media in den ersten Tab aufnehmen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Definition<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">wizardItems</span><span style="color: #006600">.</span><span style="color: #0000CC">common</span><span style="color: #006600">.</span><span style="color: #0000CC">elements</span><span style="color: #006600">.</span><span style="color: #0000CC">media &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon </span><span style="color: #006600">= </span><span style="color: #0000CC">gfx</span><span style="color: #006600">/</span><span style="color: #0000CC">c_wiz</span><span style="color: #006600">/</span><span style="color: #0000CC">multimedia</span><span style="color: #006600">.</span><span style="color: #0000CC">gif<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title </span><span style="color: #006600">= </span><span style="color: #0000CC">Media<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description </span><span style="color: #006600">= </span><span style="color: #0000CC">Video</span><span style="color: #006600">/</span><span style="color: #0000CC">Flash einbinden<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tt_content_defValues &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CType </span><span style="color: #006600">= </span><span style="color: #0000CC">media<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Hinzufügen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">wizardItems</span><span style="color: #006600">.</span><span style="color: #0000CC">common</span><span style="color: #006600">.</span><span style="color: #0000CC">show </span><span style="color: #006600">:= </span><span style="color: #0000CC">addToList</span><span style="color: #006600">(</span><span style="color: #0000CC">media</span><span style="color: #006600">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&#125; </span>
</span>
</code></div></p>

	<p><strong>Tipp:</strong> Wenn man mit TemplaVoila arbeitet, geht der Code nicht, in dem Fall muss mod durch templavoila ersetzt werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">templavoila &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;wizards&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># und so&nbsp;&nbsp;weiter. <br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">&#125;<br />&#125; </span>
</span>
</code></div></p>

	<h3>Weiterführende Links
	<ul>
		<li><a href="http://buzz.typo3.org/people/steffen-kamper/article/the-new-content-element-wizard-in-version-43/">The New Content Element Wizard in version 4.3</a></li>
	</ul></h3>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TSconfig/" title="Category:Typo3::TSconfig" class="noArticle">Category:Typo3 -&gt; TSconfig</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>mehrsprachige Extensions</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/mehrsprachige-Extensions/" />
      <id>tag:lisardo.de,2010:wiki:mehrsprachige Extensions/82.649</id>
      <published>2010-02-17T17:09:57Z</published>
      <updated>2010-02-17T17:09:57Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <p>Ziel ist die Erstellung einer Extension, die alle Features zur Mehrsprachigkeit bietet, die zur Ausstattung von TYPO3 gehören. </p>

	<h2>Die Datenbank-Struktur</h2>

	<p>Diese drei Felder müssen zusätzlich in der Extension in der »ext_tables.sql« angelegt werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">sys_language_uid int</span><span style="color: #006600">(</span><span style="color: #0000CC">11</span><span style="color: #006600">) DEFAULT </span><span style="color: #CC0000">'0' </span><span style="color: #0000CC">NOT NULL</span><span style="color: #006600">,<br /></span><span style="color: #0000CC">l18n_parent int</span><span style="color: #006600">(</span><span style="color: #0000CC">11</span><span style="color: #006600">) DEFAULT </span><span style="color: #CC0000">'0' </span><span style="color: #0000CC">NOT NULL</span><span style="color: #006600">,<br /></span><span style="color: #0000CC">l18n_diffsource mediumblob NOT NULL</span><span style="color: #006600">, </span>
</span>
</code></div></p>

	<p>Die »ext_tables.php« muss so erweitert werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #CC0000">"ctrl" </span><span style="color: #006600">=&gt; Array (<br />&nbsp;&nbsp;</span><span style="color: #0000CC">&#91;</span><span style="color: #006600">-- </span><span style="color: #0000CC">snip </span><span style="color: #006600">--</span><span style="color: #0000CC">&#93;<br />&nbsp;&nbsp;</span><span style="color: #CC0000">"delete" </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">"deleted"</span><span style="color: #006600">,&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #CC0000">'transOrigPointerField'&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'l18n_parent'</span><span style="color: #006600">,<br />&nbsp;&nbsp;</span><span style="color: #CC0000">'transOrigDiffSourceField' </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'l18n_diffsource'</span><span style="color: #006600">,<br />&nbsp;&nbsp;</span><span style="color: #CC0000">'languageField'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'sys_language_uid'</span><span style="color: #006600">,<br />&nbsp;&nbsp;</span><span style="color: #0000CC">&#91;</span><span style="color: #006600">-- </span><span style="color: #0000CC">snip </span><span style="color: #006600">--</span><span style="color: #0000CC">&#93; </span>
</span>
</code></div></p>

	<p>Und das »columns«-Array in der »tca.php« ebenfalls: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #CC0000">"columns" </span><span style="color: #006600">=&gt; Array (<br />&nbsp;&nbsp;</span><span style="color: #0000CC">&#91;</span><span style="color: #006600">-- </span><span style="color: #0000CC">snip </span><span style="color: #006600">--</span><span style="color: #0000CC">&#93;<br />&nbsp;&nbsp;</span><span style="color: #CC0000">'sys_language_uid' </span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'exclude' </span><span style="color: #006600">=&gt; </span><span style="color: #0000CC">1</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'label'&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'LLL:EXT:lang/locallang_general.xml:LGL.language'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'config'&nbsp;&nbsp;</span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'type'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'select'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'foreign_table'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'sys_language'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'foreign_table_where' </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'ORDER BY sys_language.title'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'items'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #CC0000">'LLL:EXT:lang/locallang_general.php:LGL.allLanguages'</span><span style="color: #006600">, -</span><span style="color: #0000CC">1</span><span style="color: #006600">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #CC0000">'LLL:EXT:lang/locallang_general.php:LGL.default_value'</span><span style="color: #006600">, </span><span style="color: #0000CC">0</span><span style="color: #006600">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;),<br />&nbsp;&nbsp;</span><span style="color: #CC0000">'l18n_parent' </span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'displayCond' </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'FIELD:sys_language_uid:&gt;:0'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'exclude'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #0000CC">1</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'label'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'LLL:EXT:lang/locallang_general.xml:LGL.l18n_parent'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'config'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'type'&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'select'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'items' </span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array(</span><span style="color: #CC0000">''</span><span style="color: #006600">, </span><span style="color: #0000CC">0</span><span style="color: #006600">),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'foreign_table'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'tx_meineExtension'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'foreign_table_where' </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'AND tx_meineExtension.uid=###CURRENT_PID### AND tx_meineExtension.sys_language_uid IN (-1,0)'</span><span style="color: #006600">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;),<br />&nbsp;&nbsp;</span><span style="color: #CC0000">'l18n_diffsource' </span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'config'</span><span style="color: #006600">=&gt; array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">'type' </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">'passthrough'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">)<br />&nbsp;&nbsp;),<br />&nbsp;&nbsp;</span><span style="color: #0000CC">&#91;</span><span style="color: #006600">-- </span><span style="color: #0000CC">snip </span><span style="color: #006600">--</span><span style="color: #0000CC">&#93;<br /></span><span style="color: #006600">), </span>
</span>
</code></div></p>

	<p><strong>Wichtig:</strong> Damit die Zuordnung der Sprach-Overlays funktioniert, muss oben bei »foreign_table« die korrekte Tabellenbezeichnung der Extension eingegeben werden, ebenso bei »foreign_table_where« &#8211; insgesamt also dreimal. </p>

	<p>Damit die Redakteure später nicht nur Language-Overlay-Datensätze anlegen, sondern einen Datensatz direkt einer Sprache zuordnen können (um z. B. Datensätze in einer Fremsprache anlegen zu können, ohne dass es zuvor einen Datensatz in der Standardsprache gibt), muss auch noch das »types«-Array in der »tca.php« erweitert werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #CC0000">"types" </span><span style="color: #006600">=&gt; Array (<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">"0" </span><span style="color: #006600">=&gt; Array(</span><span style="color: #CC0000">"showitem" </span><span style="color: #006600">=&gt; </span><span style="color: #CC0000">"hidden;;1;;1-1-1, sys_language_uid;;1;;3-3-3,<br />&nbsp;&nbsp;&nbsp;&#91;-- snip --&#93;<br />), </span>
</span>
</code></div> </p>

	<p>Damit erscheint im Backend ein DropDown-Menü mit einer Auswahl von allen definierten Alternativ-Sprachen sowie der Auswahl »Alle«. </p>

	<p>Im Backend müsste jetzt alles richtig ausgegeben werden: Die Redakteure können neue Datensätze anlegen, diese einer oder allen Sprachen zuordnen, oder nachträglich Datensätze in der Standardsprache übersetzen. Also genauso wie bei den normalen Inhaltselementen. </p>

	<p>Natürlich muss die Ausgabe im Frontend das entsprechend berücksichtigen</p>

	<h2>Ausgabe von sprachabhängigen Texten ins Template</h2>

	<p>Damit sind nicht die Inhalte aus den Datentabellen gemeint sondern zum Beispiel Überschriften oder Labels für Formularfelder, die ebenfalls den Sprachen angepasst werden müssen. Diese Texte werden zunächst in die »locallang.xml« im pi1-Ordner der Extension eingetragen: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">&lt;?xml version</span><span style="color: #006600">=</span><span style="color: #CC0000">"1.0" </span><span style="color: #0000CC">encoding</span><span style="color: #006600">=</span><span style="color: #CC0000">"utf-8" </span><span style="color: #0000CC">standalone</span><span style="color: #006600">=</span><span style="color: #CC0000">"yes" </span><span style="color: #0000CC">?&gt;<br /></span><span style="color: #006600">&lt;</span><span style="color: #0000CC">T3locallang</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">meta type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">type</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">module</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">type</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">description</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Language labels </span><span style="color: #006600">for </span><span style="color: #0000CC">plugin tx_meineExtension_pi1</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">description</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">meta</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">data type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">languageKey index</span><span style="color: #006600">=</span><span style="color: #CC0000">"default" </span><span style="color: #0000CC">type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">label index</span><span style="color: #006600">=</span><span style="color: #CC0000">"eindeutigerName"</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Headline in Defaultsprache</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">label</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">languageKey</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">languageKey index</span><span style="color: #006600">=</span><span style="color: #CC0000">"en" </span><span style="color: #0000CC">type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">label index</span><span style="color: #006600">=</span><span style="color: #CC0000">"eindeutigerName"</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Headline in English</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">label</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">languageKey</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">languageKey index</span><span style="color: #006600">=</span><span style="color: #CC0000">"de" </span><span style="color: #0000CC">type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">label index</span><span style="color: #006600">=</span><span style="color: #CC0000">"eindeutigerName"</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Überschrift in Deutsch</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">label</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">languageKey</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">data</span><span style="color: #006600">&gt;<br />&lt;/</span><span style="color: #0000CC">T3locallang</span><span style="color: #006600">&gt; </span>
</span>
</code></div></p>

	<p>Diese Datei muss in <span class="caps">UTF</span>-8 abgespeichert werden, sonst gibt es entweder eine leere Frontend-Seite oder eine Fehlermeldung, je nach TYPO3-Version. Sie darf weder <span class="caps">HTML</span> noch Entities enthalten. In der Regel wirds das nicht brauchen (da die Datei ja <span class="caps">UTF</span>-8 ist), aber falls doch, gibt es folgende Möglichkeiten: </p>

	<h3>Entitiy definieren: </h3>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">&lt;?xml version</span><span style="color: #006600">=</span><span style="color: #CC0000">"1.0" </span><span style="color: #0000CC">encoding</span><span style="color: #006600">=</span><span style="color: #CC0000">"utf-8" </span><span style="color: #0000CC">standalone</span><span style="color: #006600">=</span><span style="color: #CC0000">"yes" </span><span style="color: #0000CC">?&gt;<br /></span><span style="color: #006600">&lt;!</span><span style="color: #0000CC">DOCTYPE T3locallang &#91;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">&lt;!</span><span style="color: #0000CC">ENTITY euro </span><span style="color: #CC0000">"&amp;amp;euro;"</span><span style="color: #006600">&gt;<br /></span><span style="color: #0000CC">&#93;</span><span style="color: #006600">&gt;<br />&lt;</span><span style="color: #0000CC">T3locallang</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">meta type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">type</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">module</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">type</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">description</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Language labels </span><span style="color: #006600">for </span><span style="color: #0000CC">plugin tx_tmeineExtension_pi1</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">description</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">meta</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">data type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">languageKey index</span><span style="color: #006600">=</span><span style="color: #CC0000">"default" </span><span style="color: #0000CC">type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">label index</span><span style="color: #006600">=</span><span style="color: #CC0000">"eindeutigerName"</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Preis is </span><span style="color: #006600">&amp;</span><span style="color: #0000CC">amp</span><span style="color: #006600">;</span><span style="color: #0000CC">euro</span><span style="color: #006600">;&lt;/</span><span style="color: #0000CC">label</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">languageKey</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">data</span><span style="color: #006600">&gt;<br />&lt;/</span><span style="color: #0000CC">T3locallang</span><span style="color: #006600">&gt; </span>
</span>
</code></div></p>

	<p>Sieht komisch aus, funktioniert aber. Die nächste Möglichkeit ist wahrscheinlich einfacher: </p>

	<h3><span class="caps">HTML</span> in »locallang.xml«</h3>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">&lt;?xml version</span><span style="color: #006600">=</span><span style="color: #CC0000">"1.0" </span><span style="color: #0000CC">encoding</span><span style="color: #006600">=</span><span style="color: #CC0000">"utf-8" </span><span style="color: #0000CC">standalone</span><span style="color: #006600">=</span><span style="color: #CC0000">"yes" </span><span style="color: #0000CC">?&gt;<br /></span><span style="color: #006600">&lt;</span><span style="color: #0000CC">T3locallang</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">meta type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">type</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">module</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">type</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">description</span><span style="color: #006600">&gt;</span><span style="color: #0000CC">Language labels </span><span style="color: #006600">for </span><span style="color: #0000CC">plugin tx_meineExtension_pi1</span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">description</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">meta</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">data type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">languageKey index</span><span style="color: #006600">=</span><span style="color: #CC0000">"default" </span><span style="color: #0000CC">type</span><span style="color: #006600">=</span><span style="color: #CC0000">"array"</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #0000CC">label index</span><span style="color: #006600">=</span><span style="color: #CC0000">"eindeutigerName"</span><span style="color: #006600">&gt;&lt;!</span><span style="color: #0000CC">&#91;CDATA&#91; </span><span style="color: #006600">&lt;</span><span style="color: #0000CC">strong style</span><span style="color: #006600">=</span><span style="color: #CC0000">'color:#00005a;'</span><span style="color: #006600">&gt; </span><span style="color: #0000CC">und so weiter </span><span style="color: #006600">&lt;/</span><span style="color: #0000CC">strong</span><span style="color: #006600">&gt; </span><span style="color: #0000CC">&#93;&#93;</span><span style="color: #006600">&gt;&lt;/</span><span style="color: #0000CC">label</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">languageKey</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/</span><span style="color: #0000CC">data</span><span style="color: #006600">&gt;<br />&lt;/</span><span style="color: #0000CC">T3locallang</span><span style="color: #006600">&gt; </span>
</span>
</code></div></p>

	<p>Jeder <span class="caps">HTML</span>-eintrag muss also mit </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #006600">&lt;!</span><span style="color: #0000CC">&#91;CDATA&#91;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#93;&#93;</span><span style="color: #006600">&gt; </span>
</span>
</code></div></p>

	<p>maskiert werden.</p>

	<h3>Ausgabe ins Frontend</h3>

	<p>Damit eine Ausgabe möglich wird, muss die »class.tx_meineExtension_pi1.php« erweitert werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #006600">class </span><span style="color: #0000CC">tx_meineExtension_pi1 </span><span style="color: #006600">extends </span><span style="color: #0000CC">tslib_pibase &#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">// snip<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">function </span><span style="color: #0000CC">main</span><span style="color: #006600">(</span><span style="color: #0000CC">$content</span><span style="color: #006600">,</span><span style="color: #0000CC">$conf</span><span style="color: #006600">) </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">// snip<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">$this</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">pi_loadLL</span><span style="color: #006600">();<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">// snip </span>
</span>
</code></div></p>

	<p>Die Zeile <strong>$this-&gt;pi_loadLL();</strong> lädt die notwendige Klasse. </p>

	<p>Die eigentliche Ausgabe des Textes erfolgt so: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">$txt </span><span style="color: #006600">= </span><span style="color: #0000CC">$this</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">pi_getLL</span><span style="color: #006600">(</span><span style="color: #CC0000">'eindeutigerName'</span><span style="color: #006600">,</span><span style="color: #CC0000">'default'</span><span style="color: #006600">,</span><span style="color: #0000CC">FALSE</span><span style="color: #006600">); </span>
</span>
</code></div></p>

	<p>Die Optionen bedeuten: 
	<ul>
		<li>Name/Bezeichnung des Eintrags in der »locallang.xml«</li>
		<li>Defaultwert &#8211; in der Regel ein englischer Begriff, als Platzhalter, falls der Eintrag in der locallang.xml fehlt</li>
		<li><span class="caps">TRUE</span> wenn der Wert durch htmlspecialchars() laufen soll</li>
	</ul></p>

	<h2>Daten aus den Datentabellen auslesen</h2>

	<p>Das erweist sich als das eigentliche Problem. Ich habe noch keine endgültige Lösung, aber die folgende funktioniert fürs erste. </p>

	<p>1. Schritt: Daten aus der Tabelle holen. Dabei interessiert erstmal nur der <span class="caps">WHERE</span>-Teil des sql-Statements, der Rest dürfte klar sein: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #006600">if (</span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_language_content </span><span style="color: #006600">== </span><span style="color: #0000CC">0</span><span style="color: #006600">) </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;$whereClause </span><span style="color: #006600">= </span><span style="color: #CC0000">"pid=xyz" </span><span style="color: #006600">. <br />&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">' AND (sys_language_uid IN (-1,0) OR (sys_language_uid='</span><span style="color: #006600">.<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_language_uid</span><span style="color: #006600">.<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">' AND l18n_parent=0)) ' </span><span style="color: #006600">. <br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">$this</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">cObj</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">enableFields </span><span style="color: #006600">( </span><span style="color: #0000CC">$tableName </span><span style="color: #006600">);<br /></span><span style="color: #0000CC">&#125; </span><span style="color: #006600">else </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;$whereClause </span><span style="color: #006600">= </span><span style="color: #CC0000">"pid=xyz" </span><span style="color: #006600">. <br />&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">' AND (sys_language_uid IN (-1,0) OR (sys_language_uid='</span><span style="color: #006600">.<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_language_uid</span><span style="color: #006600">.<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #CC0000">' AND l18n_parent=0)) '</span><span style="color: #006600">; <br /></span><span style="color: #0000CC">&#125; </span>
</span>
</code></div></p>

	<p><strong>Erläuterung:</strong> In der Defaultsprache wird »$this-&gt;cObj-&gt;enableFields()« aufgerufen, damit die versteckten Datensätze (und die gelöschten etc) nicht sichtbar werden. Bei den Alternativ-Sprachen entfällt das in diesem Schritt sondern folgt erst in einem weiteren. Die Zeile »&#8217; <span class="caps">AND</span> (sys_language_uid  &#8230;.« wählt alle Datensätze aus, die in »sys_language_uid« 0 (= Standardsprache) oder -1 (= alle Sprachen) stehen haben. Sie wählt aber auch alle Datensätze in der Alternativsprache aus, die keinen Eintrag in der Standardsprache haben. </p>

	<p>Im nächsten Schritt werden die Sprach-Overlays geholt: die Felder des Datensatzes werden mit den Einträgen in der Alternativ-Sprache überschrieben: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #006600">while ( </span><span style="color: #0000CC">$row </span><span style="color: #006600">= </span><span style="color: #0000CC">$GLOBALS &#91;</span><span style="color: #CC0000">'TYPO3_DB'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sql_fetch_assoc </span><span style="color: #006600">( </span><span style="color: #0000CC">$newsResult </span><span style="color: #006600">) ) </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #006600">if (</span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_language_content</span><span style="color: #006600">) </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row </span><span style="color: #006600">= </span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_page</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">getRecordOverlay</span><span style="color: #006600">(</span><span style="color: #0000CC">$tableName</span><span style="color: #006600">, </span><span style="color: #0000CC">$row</span><span style="color: #006600">, </span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_language_content</span><span style="color: #006600">, </span><span style="color: #0000CC">$GLOBALS&#91;</span><span style="color: #CC0000">'TSFE'</span><span style="color: #0000CC">&#93;</span><span style="color: #006600">-&gt;</span><span style="color: #0000CC">sys_language_mode </span><span style="color: #006600">== </span><span style="color: #CC0000">'strict' </span><span style="color: #006600">? </span><span style="color: #CC0000">'hideNonTranslated' </span><span style="color: #006600">: </span><span style="color: #CC0000">''</span><span style="color: #006600">);<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">&#125;<br />&#125; </span>
</span>
</code></div> </p>

	<p>Je nach Spracheinstellung werden dabei auch Einträge entfernt &#8211; also z. B. wenn sys_language_mode=strict eingestellt ist, werden alle nicht übesetzten Einträge entfernt. </p>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::Extensions::Programmierung/" title="Category:Typo3::Extensions::Programmierung" class="noArticle">Category:Typo3 -&gt; Extensions -&gt; Programmierung</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>Konstanten</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/Konstanten/" />
      <id>tag:lisardo.de,2010:wiki:Konstanten/37.625</id>
      <published>2010-01-16T13:43:33Z</published>
      <updated>2010-01-16T13:43:33Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <h2>Konstanten</h2>

	<p>Man kann eigene Konstanten definieren und diese im TypoScript-Template verwenden. Zuerst die Konstante definieren (in der Kategorie Constants im TypoScript-Template): </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF9900"># neue Konstante<br /></span><span style="color: #0000CC">test</span><span style="color: #006600">.</span><span style="color: #0000CC">konstante1 </span><span style="color: #006600">= </span><span style="color: #0000CC">4 </span>
</span>
</code></div></p>

	<p>Auf diese Konstante kann im TypoScript so zugegriffen werden: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">page.20 </span><span style="color: #006600">= </span><span style="color: #0000CC">TEXT<br />page.20</span><span style="color: #006600">.</span><span style="color: #0000CC">value </span><span style="color: #006600">= </span><span style="color: #0000CC">&#123;$test</span><span style="color: #006600">.</span><span style="color: #0000CC">konstante1&#125; </span>
</span>
</code></div></p>

	<p>Man muss also die Konstante mit geschweiften Klammern umgeben und ein Dollarzeichen davor setzen. </p>

	<p>Diese Konstanten können auch über den Constant-Editor verwaltet werden. Dazu muss allerdings direkt oberhalt der Definition der Konstante ein Kommentar eingetragen werden, der die Konstante in den Constant-Editor aufnimmt: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF9900"># cat=Grundeinstellungen//; type=int+; label=Navigations-ID: Geben Sie eine ID ein. Der Text kann auch deutlich länger sein.<br /></span><span style="color: #0000CC">test</span><span style="color: #006600">.</span><span style="color: #0000CC">konstante1 </span><span style="color: #006600">= </span><span style="color: #0000CC">4 </span>
</span>
</code></div></p>

	<p>Die Syntax: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF9900"># cat=&#91;Kategorie&#93;/&#91;Subkategorie&#93;/&#91;Position&#93;; type=&#91;Feldtyp&#93;; label=&#91;Titel&#93;:&#91;Beschreibung&#93;<br /></span><span style="color: #0000CC">test</span><span style="color: #006600">.</span><span style="color: #0000CC">konstante1 </span><span style="color: #006600">= </span><span style="color: #0000CC">4 </span>
</span>
</code></div></p>

	<h3>Weiterführende Links</h3>

	<p>Derzeit keine. </p>

	<h3>Kategorien</h3>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TypoScript::Konstanten/" title="Category:Typo3::TypoScript::Konstanten" class="noArticle">Category:Typo3 -&gt; TypoScript -&gt; Konstanten</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::TypoScript/" title="Category:Typo3::TypoScript" class="noArticle">Category:Typo3 -&gt; TypoScript</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>Menues</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/Menues/" />
      <id>tag:lisardo.de,2010:wiki:Menues/30.624</id>
      <published>2010-01-16T13:43:07Z</published>
      <updated>2010-01-16T13:43:07Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <h2>verschiedene Menüs für verschiedene Benutzergruppen</h2>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">temp</span><span style="color: #006600">.</span><span style="color: #0000CC">nav_main </span><span style="color: #006600">= </span><span style="color: #0000CC">HMENU<br />temp</span><span style="color: #006600">.</span><span style="color: #0000CC">nav_main &#123;<br />&nbsp;&nbsp;special </span><span style="color: #006600">= </span><span style="color: #0000CC">directory<br />&nbsp;&nbsp;special</span><span style="color: #006600">.</span><span style="color: #0000CC">value </span><span style="color: #006600">= </span><span style="color: #0000CC">3<br />&nbsp;&nbsp;entryLevel </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;1 </span><span style="color: #006600">= </span><span style="color: #0000CC">TMENU<br />&nbsp;&nbsp;1 &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;noBlur </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;&nbsp;&nbsp;wrap </span><span style="color: #006600">= &lt;</span><span style="color: #0000CC">div </span><span style="color: #006600">class=</span><span style="color: #CC0000">"navi"</span><span style="color: #006600">&gt;&lt;</span><span style="color: #0000CC">ul</span><span style="color: #006600">&gt;|&lt;/</span><span style="color: #0000CC">ul</span><span style="color: #006600">&gt;&lt;/</span><span style="color: #0000CC">div</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">NO </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;&nbsp;&nbsp;NO</span><span style="color: #006600">.</span><span style="color: #0000CC">ATagTitle</span><span style="color: #006600">.</span><span style="color: #0000CC">field </span><span style="color: #006600">= </span><span style="color: #0000CC">abstract </span><span style="color: #FF9900">// description // title<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">NO</span><span style="color: #006600">.</span><span style="color: #0000CC">linkWrap </span><span style="color: #006600">= &lt;</span><span style="color: #0000CC">li</span><span style="color: #006600">&gt;|&lt;/</span><span style="color: #0000CC">li</span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">NO</span><span style="color: #006600">.</span><span style="color: #0000CC">stdWrap</span><span style="color: #006600">.</span><span style="color: #0000CC">htmlSpecialChars </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;&nbsp;&nbsp;NO</span><span style="color: #006600">.</span><span style="color: #0000CC">ATagParams </span><span style="color: #006600">= class=</span><span style="color: #CC0000">"intern"<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">#################################################<br />&nbsp;&nbsp;&nbsp;&nbsp;# andere Anzeige für die internen Seiten. <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">NO</span><span style="color: #006600">.</span><span style="color: #0000CC">ATagParams</span><span style="color: #006600">.if </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #006600">=</span><span style="color: #0000CC">0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isGreaterThan</span><span style="color: #006600">.</span><span style="color: #0000CC">field </span><span style="color: #006600">= </span><span style="color: #0000CC">fe_group<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ACT </span><span style="color: #006600">&lt; .</span><span style="color: #0000CC">NO<br />&nbsp;&nbsp;&nbsp;&nbsp;ACT</span><span style="color: #006600">.</span><span style="color: #0000CC">linkWrap </span><span style="color: #006600">= &lt;</span><span style="color: #0000CC">li </span><span style="color: #006600">class=</span><span style="color: #CC0000">"aktiv"</span><span style="color: #006600">&gt;|<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span style="color: #0000CC">&#125;<br />&#125; </span>
</span>
</code></div></p>

	<p>Hier interessiert vor allem die zusätzliche Zuweisung einer besonderen Klasse in einige Menpunkte, die Seiten betreffen, die nur für Frontend User zugänglich sind: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF9900">#################################################<br /> # andere Anzeige für die internen Seiten. <br /><br /> </span><span style="color: #0000CC">NO</span><span style="color: #006600">.</span><span style="color: #0000CC">ATagParams</span><span style="color: #006600">.if </span><span style="color: #0000CC">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #006600">=</span><span style="color: #0000CC">0<br />&nbsp;&nbsp;&nbsp;&nbsp;isGreaterThan</span><span style="color: #006600">.</span><span style="color: #0000CC">field </span><span style="color: #006600">= </span><span style="color: #0000CC">fe_group<br /> &#125; </span>
</span>
</code></div></p>

	<h3>Weiterführende Links</h3>

	<p><a href="http://www.typo3forum.de/tsref/functions/if/">Rubrik »if« in der TypoScript-Referenz</a><br />
Hier vor allem die verschiedenen Vergleichsoperatoren und die Besipiele. </p>

	<h3>Kategorien</h3>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TypoScript::if/" title="Category:Typo3::TypoScript::if" class="noArticle">Category:Typo3 -&gt; TypoScript -&gt; if</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::Menues/" title="Category:Typo3::Menues" class="noArticle">Category:Typo3 -&gt; Menues</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::Frontend-User/" title="Category:Typo3::Frontend-User" class="noArticle">Category:Typo3 -&gt; Frontend User</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::TypoScript/" title="Category:Typo3::TypoScript" class="noArticle">Category:Typo3 -&gt; TypoScript</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>Bilder mit Lupe</title>
      <link rel="alternate" type="text/html" href="http://www.lisardo.de/wiki/Bilder-mit-Lupe/" />
      <id>tag:lisardo.de,2010:wiki:Bilder mit Lupe/78.623</id>
      <published>2010-01-16T13:38:40Z</published>
      <updated>2010-01-16T13:38:40Z</updated>
      <author>
            <name>Peter</name>
            <email>peter@linzenkirchner.de</email>
      </author>
      <content type="html"><![CDATA[
        <p>Ziel ist, normale Inhaltsbilder von Typo3 mit einer Lupe oder einem Pluszeichen zu versehen, das darauf hindeutet, dass die Bilder vergrößert werden können. Die gleiche Technik kann aber auch verwendet werden, um die Bilder z. B. mit abgerundeten Kanten oder Schatten zu versehen. </p>

	<h3>Grundtechnik: Bilder mit Wasserzeichen</h3>

	<p>Die einfachste Möglichkeit ist es, das <span class="caps">IMAGE</span>-Objekt der Contentelemente mit einer Maske zu versehen: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">image.20.1</span><span style="color: #006600">.</span><span style="color: #0000CC">file</span><span style="color: #006600">.</span><span style="color: #0000CC">m</span><span style="color: #006600">.</span><span style="color: #0000CC">bgImg </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/....<br /></span><span style="color: #0000CC">tt_content</span><span style="color: #006600">.</span><span style="color: #0000CC">image.20.1</span><span style="color: #006600">.</span><span style="color: #0000CC">file</span><span style="color: #006600">.</span><span style="color: #0000CC">m</span><span style="color: #006600">.</span><span style="color: #0000CC">mask </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/.... </span>
</span>
</code></div></p>

	<p>Nachteil dieser Technik ist, dass die Bilder dazu alle eine vorgebene Größe haben müssen &#8211; Maske wie Hintergrund werden brutal auf die Größe der Bilder gezoomt. Das ist für Wasserzeichen u. U. ganz sinnvoll, aber um Bilder mit einer Lupe zu versehen ist dieser Ansatz ungeeignet.</p>

	<h3><span class="caps">GIFBUILDER</span> verwenden</h3>

	<p>Prinzipiell können die Bilder über <span class="caps">GIFBUILDER</span> manipuliert werden, wie hier im <a href="http://wiki.typo3.org/GIFBUILDER"><span class="caps">GIFBUILDER</span>-Artikel des typo3-Wikis</a> wunderbar beschrieben. So können erstaunliche Effekte erreicht werden, wie z. B. transparente Flächen oder Texte mit Schatten auf Bildern. Ein Beispiel: </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">lib</span><span style="color: #006600">.</span><span style="color: #0000CC">test </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;lib</span><span style="color: #006600">.</span><span style="color: #0000CC">test &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file </span><span style="color: #006600">= </span><span style="color: #0000CC">GIFBUILDER<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XY </span><span style="color: #006600">= </span><span style="color: #0000CC">1024</span><span style="color: #006600">,</span><span style="color: #0000CC">768<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;format </span><span style="color: #006600">= </span><span style="color: #0000CC">jpg<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quality </span><span style="color: #006600">= </span><span style="color: #0000CC">88<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.file </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/</span><span style="color: #0000CC">backimage</span><span style="color: #006600">.</span><span style="color: #0000CC">jpg<br /> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15.offset </span><span style="color: #006600">= </span><span style="color: #0000CC">420</span><span style="color: #006600">,</span><span style="color: #0000CC">18<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15.file </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/</span><span style="color: #0000CC">overlay</span><span style="color: #006600">.</span><span style="color: #0000CC">png<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15.mask </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/</span><span style="color: #0000CC">mask</span><span style="color: #006600">.</span><span style="color: #0000CC">png<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&#125; </span>
</span>
</code></div></p>

	<p>Leider hat diese Technik einen großen Nachteil: damit imageLinkWrap funktioniert, darf &#8220;file&#8221; kein <span class="caps">GIFBUILDER</span>-Objekt sein. Heisst im Klartext: man kann auf derartig manipulierte Grafiken keinen Link setzen, weder die Klickvergrößerung noch einen individuellen. Damit funktionieren auch die üblichen Lightbox-Skripte nicht mehr. </p>

	<p>Falls das nicht benötigt wird, ist es aber die ideale Technik. </p>

	<p><strong>Tipp:</strong> Damit die Qualität der Bilder stimmt, muss im Install-Tool png_truecolor aktiviert werden, ausserdem muss die <span class="caps">GDLIB</span> 2 verwendet werden. </p>

	<h3>Lösung des Problems: </h3>

	<p>Sie erfolgt letztlich doch über die oben erwähnten Masken, allerdings mit einem recht aufwändigen Umweg. Grundlage meiner Lösung ist <a href="http://www.typo3wizard.com/en/forum.html?view=single_thread&amp;cat_uid=8&amp;conf_uid=8&amp;thread_uid=115">dieser Artikel</a> im TYPO3wizard-Forum (meinen besten Dank an Andy!). Im Prinzip werden einfach Masken eingesetzt, diese werden allerdings mit Hilfe von <span class="caps">IMG</span>_RESSOURCE und <span class="caps">GIFBUILDER</span> mit einem Hintergrund in der Größe der Bilder versehen, so dass die Lupe selbst nicht mitzoomt sondern an einem ganz konkreten Platz positioniert werden kann. </p>

	<p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000CC">tt_content&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;image.20.1</span><span style="color: #006600">.</span><span style="color: #0000CC">file </span><span style="color: #006600">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">image.20.1</span><span style="color: #006600">.</span><span style="color: #0000CC">file &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;import</span><span style="color: #006600">.</span><span style="color: #0000CC">current </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #006600">.</span><span style="color: #0000CC">field </span><span style="color: #006600">= </span><span style="color: #0000CC">imagewidth<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #006600">.</span><span style="color: #0000CC">mask</span><span style="color: #006600">.</span><span style="color: #0000CC">import</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject </span><span style="color: #006600">= </span><span style="color: #0000CC">IMG_RESOURCE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #006600">.</span><span style="color: #0000CC">mask</span><span style="color: #006600">.</span><span style="color: #0000CC">import</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject</span><span style="color: #006600">.</span><span style="color: #0000CC">file </span><span style="color: #006600">= </span><span style="color: #0000CC">GIFBUILDER<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #006600">.</span><span style="color: #0000CC">mask</span><span style="color: #006600">.</span><span style="color: #0000CC">import</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject</span><span style="color: #006600">.</span><span style="color: #0000CC">file &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Hier wird die dynamische Maske mit der gleichen Größe wie das aktuelle<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Bild erstellt. Die 10 ist der Bezug auf das folgende IMAGE-Objekt <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">XY </span><span style="color: #006600">= </span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">w&#93;</span><span style="color: #006600">,</span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">h&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;format </span><span style="color: #006600">= </span><span style="color: #0000CC">png<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Da der "XY" Parameter keinen stdWrap hat, finden wir die Größe durch <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# erneutes Laden des Bilds heraus<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">10 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.file &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;import</span><span style="color: #006600">.</span><span style="color: #0000CC">current </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #006600">.</span><span style="color: #0000CC">field </span><span style="color: #006600">= </span><span style="color: #0000CC">imagewidth<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxW </span><span style="color: #006600">= </span><span style="color: #0000CC">&#123;$styles</span><span style="color: #006600">.</span><span style="color: #0000CC">content</span><span style="color: #006600">.</span><span style="color: #0000CC">imgtext</span><span style="color: #006600">.</span><span style="color: #0000CC">maxW&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxW</span><span style="color: #006600">.</span><span style="color: #0000CC">override</span><span style="color: #006600">.</span><span style="color: #0000CC">data </span><span style="color: #006600">= </span><span style="color: #0000CC">register</span><span style="color: #006600">:</span><span style="color: #0000CC">maxImageWidth<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxWInText </span><span style="color: #006600">= </span><span style="color: #0000CC">&#123;$styles</span><span style="color: #006600">.</span><span style="color: #0000CC">content</span><span style="color: #006600">.</span><span style="color: #0000CC">imgtext</span><span style="color: #006600">.</span><span style="color: #0000CC">maxWInText&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxWInText</span><span style="color: #006600">.</span><span style="color: #0000CC">override</span><span style="color: #006600">.</span><span style="color: #0000CC">data </span><span style="color: #006600">= </span><span style="color: #0000CC">register</span><span style="color: #006600">:</span><span style="color: #0000CC">maxImageWidthInText<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Erstellen einer weißen Box die die ganze Größe einnimmt<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">20 </span><span style="color: #006600">= </span><span style="color: #0000CC">BOX<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20.dimensions </span><span style="color: #006600">= </span><span style="color: #0000CC">0</span><span style="color: #006600">,</span><span style="color: #0000CC">0</span><span style="color: #006600">,</span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">w&#93;</span><span style="color: #006600">,</span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">h&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20.color </span><span style="color: #006600">= </span><span style="color: #FF9900">#FFFFFF<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Positionierung der Lupe rechts unten<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">60 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;60.file </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/</span><span style="color: #0000CC">img</span><span style="color: #006600">/</span><span style="color: #0000CC">mask2</span><span style="color: #006600">.</span><span style="color: #0000CC">png<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;60.align </span><span style="color: #006600">= </span><span style="color: #0000CC">r</span><span style="color: #006600">,</span><span style="color: #0000CC">b<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># Nun muss noch der Hintergrund erstellt werden, Ablauf im Prinzip wie oben:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">m</span><span style="color: #006600">.</span><span style="color: #0000CC">bgImg</span><span style="color: #006600">.</span><span style="color: #0000CC">import</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject </span><span style="color: #006600">= </span><span style="color: #0000CC">IMG_RESOURCE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #006600">.</span><span style="color: #0000CC">bgImg</span><span style="color: #006600">.</span><span style="color: #0000CC">import</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject</span><span style="color: #006600">.</span><span style="color: #0000CC">file </span><span style="color: #006600">= </span><span style="color: #0000CC">GIFBUILDER<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #006600">.</span><span style="color: #0000CC">bgImg</span><span style="color: #006600">.</span><span style="color: #0000CC">import</span><span style="color: #006600">.</span><span style="color: #0000CC">cObject</span><span style="color: #006600">.</span><span style="color: #0000CC">file &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># wieder eine Maske mit der gleichen Größe wie das Bild erstellen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">XY </span><span style="color: #006600">= </span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">w&#93;</span><span style="color: #006600">,</span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">h&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;format </span><span style="color: #006600">= </span><span style="color: #0000CC">png<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># und dazu das Bild erneut laden<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">10 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.file &#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;import</span><span style="color: #006600">.</span><span style="color: #0000CC">current </span><span style="color: #006600">= </span><span style="color: #0000CC">1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #006600">.</span><span style="color: #0000CC">field </span><span style="color: #006600">= </span><span style="color: #0000CC">imagewidth<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxW </span><span style="color: #006600">= </span><span style="color: #0000CC">&#123;$styles</span><span style="color: #006600">.</span><span style="color: #0000CC">content</span><span style="color: #006600">.</span><span style="color: #0000CC">imgtext</span><span style="color: #006600">.</span><span style="color: #0000CC">maxW&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxW</span><span style="color: #006600">.</span><span style="color: #0000CC">override</span><span style="color: #006600">.</span><span style="color: #0000CC">data </span><span style="color: #006600">= </span><span style="color: #0000CC">register</span><span style="color: #006600">:</span><span style="color: #0000CC">maxImageWidth<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxWInText </span><span style="color: #006600">= </span><span style="color: #0000CC">&#123;$styles</span><span style="color: #006600">.</span><span style="color: #0000CC">content</span><span style="color: #006600">.</span><span style="color: #0000CC">imgtext</span><span style="color: #006600">.</span><span style="color: #0000CC">maxWInText&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxWInText</span><span style="color: #006600">.</span><span style="color: #0000CC">override</span><span style="color: #006600">.</span><span style="color: #0000CC">data </span><span style="color: #006600">= </span><span style="color: #0000CC">register</span><span style="color: #006600">:</span><span style="color: #0000CC">maxImageWidthInText<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900"># wieder eine Box in der Größe des Bildes<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">15 </span><span style="color: #006600">= </span><span style="color: #0000CC">BOX<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15.dimensions </span><span style="color: #006600">= </span><span style="color: #0000CC">0</span><span style="color: #006600">,</span><span style="color: #0000CC">0</span><span style="color: #006600">,</span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">w&#93;</span><span style="color: #006600">,</span><span style="color: #0000CC">&#91;10</span><span style="color: #006600">.</span><span style="color: #0000CC">h&#93;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15.color </span><span style="color: #006600">= </span><span style="color: #FF9900">#FFFFFF<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# und darauf die Maske der Lupe platzieren<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000CC">60 </span><span style="color: #006600">= </span><span style="color: #0000CC">IMAGE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;60.file </span><span style="color: #006600">= </span><span style="color: #0000CC">fileadmin</span><span style="color: #006600">/</span><span style="color: #0000CC">img</span><span style="color: #006600">/</span><span style="color: #0000CC">plus2</span><span style="color: #006600">.</span><span style="color: #0000CC">png<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;60.align </span><span style="color: #006600">= </span><span style="color: #0000CC">r</span><span style="color: #006600">,</span><span style="color: #0000CC">b<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br />&#125; </span>
</span>
</code></div></p>

	<p>Möglich, dass es auch einfacher geht &#8230; aber diese Lösung tut was sie soll. Links, Alt- und Title-Attribute funktionieren.</p>

	<p><a href="http://www.lisardo.de/wiki/Category:Typo3::TypoScript/" title="Category:Typo3::TypoScript" class="noArticle">Category:Typo3 -&gt; TypoScript</a><br />
<a href="http://www.lisardo.de/wiki/Category:Typo3::GIFBUILDER/" title="Category:Typo3::GIFBUILDER" class="noArticle">Category:Typo3 -&gt; <span class="caps">GIFBUILDER</span></a></p>
      ]]></content>
    </entry>


</feed>