<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TYPO3weblog.de &#187; Adventskalender 2008</title>
	<atom:link href="http://typo3weblog.de/themen/adventskalender-2008/feed/" rel="self" type="application/rss+xml" />
	<link>http://typo3weblog.de</link>
	<description>Das Blog zu TYPO3, JavaScript und openSource</description>
	<lastBuildDate>Tue, 05 Oct 2010 14:35:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adventskalender 2008: Türchen 23</title>
		<link>http://typo3weblog.de/2008/12/23/adventskalender-2008-turchen-23/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-23</link>
		<comments>http://typo3weblog.de/2008/12/23/adventskalender-2008-turchen-23/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 23:00:43 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[t3lib_div]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=432</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Nachdem Tim Euch gestern in <a href="http://typo3blogger.de/turchen-22-kommaseparierte-listen-in-extensions-abfragen/">Türchen 22</a> erklärt hat, wie man kommaseparierte Listen in Extensions abfragen kann, stelle ich Euch heute drei interessante Funktionen aus der Klasse t3lib_div vor.</p>
<p><strong>1. t3lib_div::array2json($data)</strong><br />
Mit dieser Funktion kann man sehr einfach seine Daten in ein JSON Objekt konvertieren. Die Funktion erwartet ein Array mit den Daten, dieses kann beliebig verschachtelt sein. Natürlich gibt es auch noch die PHP native Funktion <code>json_encode</code>, jedoch muss dies von der installierten PHP Installation unterstüzt werden.</p>
<p><strong>2. t3lib_div::convUmlauts($str)</strong><br />
Eine sehr nützliche Funktion ist convUmlauts, welche die deutschen Umlaute konvertiert, dabei wird aus einem Ä eine Ae oder aus einem ü ein ue. Groß und Klein-Schreibung wird also berücksichtigt.</p>
<p><strong>3. t3lib_div::rmFromList($element, $list)</strong><br />
Auch diese Funktion ist sehr nützlich. Möchte man aus einer kommaseparierten Liste ein Element entfernen, ist dies mit einem Funktionsaufruf getan. Gerade bei TYPO3 ist diese Funktion sehr hilfreich, wenn man z.B. eine Benutzergruppe eines FE-Users entfernen möchte.</p>
<p>Das war es dann auch schon wieder von mir für diesen Adventskalender. Das letzte Türchen und somit das große Finale kommt dann morgen von <a href="http://typo3blogger.de">Tim</a>. Ich hoffe wir konnten Euch ein paar neue und interessante Dinge zu TYPO3 verraten. Ich wünsche allen Lesern ein paar besinnliche Weihnachtstage und natürlich auch einen guten Rutsch in das Jahr 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/23/adventskalender-2008-turchen-23/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 21</title>
		<link>http://typo3weblog.de/2008/12/21/adventskalender-2008-turchen-21/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-21</link>
		<comments>http://typo3weblog.de/2008/12/21/adventskalender-2008-turchen-21/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 23:00:16 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[openSource]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=429</guid>
		<description><![CDATA[Die Zeit verfliegt, der heilige Abend rückt immer näher und der Streß-Faktor was die Geschenke angeht steigt. Dennoch gibt es heute wieder einmal etwas TypoScript bzw. eine Erklärung zu TypoScript.
Erst vor wenigen Tagen habe ich einem Kollegen erklärt, worin eigentlich der Unterschied zwischen Objekten besteht, die mit temp. und lib. beginnen.
Dazu mal ein Beispiel TypoScript:
temp.meinObject [...]]]></description>
			<content:encoded><![CDATA[<p>Die Zeit verfliegt, der heilige Abend rückt immer näher und der Streß-Faktor was die Geschenke angeht steigt. Dennoch gibt es heute wieder einmal etwas TypoScript bzw. eine Erklärung zu TypoScript.</p>
<p>Erst vor wenigen Tagen habe ich einem Kollegen erklärt, worin eigentlich der Unterschied zwischen Objekten besteht, die mit <code>temp.</code> und <code>lib.</code> beginnen.</p>
<p>Dazu mal ein Beispiel TypoScript:</p>
<pre class="javascript">temp.<span style="color: #006600;">meinObject</span> = TEXT
temp.<span style="color: #006600;">meinObject</span>.<span style="color: #006600;">value</span> = Text1
&nbsp;
lib.<span style="color: #006600;">meinObject</span> = TEXT
lib.<span style="color: #006600;">meinObject</span>.<span style="color: #006600;">value</span> = Text2</pre>
<p>Bis hierhin gibt es keinen großen Unterschied, wir haben zwei Objekte, welche einen Text enthalten. Was passiert jedoch, wenn wir diese beiden Objekte nun als Referenz an einer anderen Stelle verwenden wollen:</p>
<pre class="javascript">page = PAGE
page<span style="color: #CC0000;">.10</span> &lt;= temp.<span style="color: #006600;">meinObject</span>
page<span style="color: #CC0000;">.20</span> &lt;= lib.<span style="color: #006600;">meinObject</span></pre>
<p>Hier zeigt sich, dass lediglich <code>page.20</code> mit dem Text befüllt wird. Aber warum ist das so? Das ist sehr schnell und einfach erklärt. Objekte die mit <code>temp.</code> eingeleitet werden, werden nicht gecached. Wie der Prefix es selbst schon aussagt, es sind temporäre Objekte. Alles was hingeben mit <code>lib.</code> beginnt kann auch bei einer Referenz verwendet werden.</p>
<p>Arbeitet man nicht mit dem Referenz-Operator (<code>&lt;=</code>) sondern mit dem Kopier-Operator (<code>&lt;</code>), spielt es keine Rolle ob man <code>temp.</code> oder <code>lib.</code> verwenden.</p>
<div style="width: 460px; height: 100%; top: 0px; right: 0px; padding-left: 0px; position: fixed; background-color: white; z-index: 1000; display: none;">
<div style="border: 0px none; top: 1px; width: 100%; height: 42px; position: absolute;">
<form>
<div style="position: absolute; left: 2px; right: 0px;">
<input id="LIU_txt" style="border: 1px solid black; margin: 0pt; padding: 0pt; position: absolute; left: 0px; right: 240px; font-size: 14px ! important; height: 17px ! important; line-height: 50px; display: block;" />
<select id="LIU_sel" style="border: 1px solid black; margin: 0pt; padding: 0pt; position: absolute; width: 100px; right: 138px; font-size: 14px ! important; height: 17px;"><option style="border: 0pt none; width: 30%; height: 19px;">Wikipedia</option><option style="border: 0pt none; width: 30%; height: 19px;">Wictionary</option><option style="border: 0pt none; width: 30%; height: 19px;">Chambers (UK)</option><option style="border: 0pt none; width: 30%; height: 19px;">Google images</option><option style="border: 0pt none; width: 30%; height: 19px;">Google define</option><option style="border: 0pt none; width: 30%; height: 19px;">The Free Dictionary</option><option style="border: 0pt none; width: 30%; height: 19px;">Join example</option><option style="border: 0pt none; width: 30%; height: 19px;">WordNet</option><option style="border: 0pt none; width: 30%; height: 19px;">Google</option><option style="border: 0pt none; width: 30%; height: 19px;">Urban Dictionary</option><option style="border: 0pt none; width: 30%; height: 19px;">Answers.com</option><option style="border: 0pt none; width: 30%; height: 19px;">rhymezone.com</option><option style="border: 0pt none; width: 30%; height: 19px;">Merriam-Webster</option></select>
<input id="LIU_search" style="border: 1px solid black; padding: 0pt; position: absolute; width: 68px; right: 68px; font-size: 14px ! important; height: 19px;" type="submit" value="Search" /><button id="LIU_prev" style="border: 1px solid black; padding: 0pt; position: absolute; width: 20px; right: 46px; height: 19px;">&lt;</button><button id="LIU_next" style="border: 1px solid black; padding: 0pt; position: absolute; width: 20px; right: 24px; height: 19px;">&gt;</button><button id="LIU_mode" style="border: 1px solid black; padding: 0pt; position: absolute; width: 20px; right: 2px; height: 19px;">0</button></div>
<div style="position: absolute; left: 2px; right: 0px; top: 22px;"><button id="LIU_0" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">w</button><button id="LIU_1" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">v</button><button id="LIU_2" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">c</button><button id="LIU_3" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">i</button><button id="LIU_4" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">d</button><button id="LIU_5" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">f</button><button id="LIU_6" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">j</button><button id="LIU_7" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">o</button><button id="LIU_8" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">g</button><button id="LIU_9" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">u</button><button id="LIU_10" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">a</button><button id="LIU_11" style="border: 1px solid black; padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: #dddddd;">r</button><button id="LIU_12" style="padding: 0pt; width: 20px; margin-right: 2px; height: 19px; background-color: white;">m</button></div>
</form>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/21/adventskalender-2008-turchen-21/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 19</title>
		<link>http://typo3weblog.de/2008/12/19/adventskalender-2008-turchen-19/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-19</link>
		<comments>http://typo3weblog.de/2008/12/19/adventskalender-2008-turchen-19/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 23:22:11 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sessions]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=426</guid>
		<description><![CDATA[Eine Weihnachtsfeier jagt die nächste, auf der einen Seite ist es immer sehr nett, auf der anderen Seite gerät man schnell in Streß. Naja, heute ein wenig verspätet nun das Türchen 19. Tim hat Euch gestern im Türchen 18 gezeigt, wie man mit TypoScript schicke GMENUs erzeugt. Heute möchte ich wieder ein wenig PHP Code [...]]]></description>
			<content:encoded><![CDATA[<p>Eine Weihnachtsfeier jagt die nächste, auf der einen Seite ist es immer sehr nett, auf der anderen Seite gerät man schnell in Streß. Naja, heute ein wenig verspätet nun das Türchen 19. Tim hat Euch gestern im <a href="http://typo3blogger.de/turchen-18-grafisches-menu/">Türchen 18</a> gezeigt, wie man mit TypoScript schicke GMENUs erzeugt. Heute möchte ich wieder ein wenig PHP Code zeigen.</p>
<p>Diesmal geht es um die Benutzung der Session in TYPO3. In der Regel genügt nur eine Zeile Code um einen Wert in die Session zu schreiben oder wieder heraus zu holen. Schauen wir uns erstmal an, wie man etwas in die Session schreibt:</p>
<pre class="php"><span style="color: #0000ff;">$GLOBALS</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;TSFE&quot;</span><span style="color: #66cc66;">&#93;</span>-&gt;<span style="color: #006600;">fe_user</span>-&gt;<span style="color: #006600;">setKey</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;ses&quot;</span>, <span style="color: #ff0000;">&quot;tx_myext&quot;</span>, <span style="color: #0000ff;">$data</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Die Funktion <code>setKey()</code> erwartet drei Parameter:</p>
<ol>
<li>Type: Dieser kann "ses" oder "user" sein.</li>
<li>Key: Eindeutiger Ident für eine Session Variable</li>
<li>Data: Die Daten die gespeichert werden sollen.</li>
</ol>
<p>Die beiden Typen "ses" und "user" unterscheiden sich wesentlich. Während der Typ "ses" nur temporär die Daten speichert, also genau so lange, wie die Session besteht (Session-Cookie), ist es mit dem Key "user" möglich, die Daten auch über mehrere Sessions hinweg zu speichern, wobei diese an den FE-User gekoppelt werden.</p>
<p>Der Key sollte so gewählt werden, dass man nicht in Konflikt mit anderen Extensions kommt. Am besten benutzt man seinen Extension-Key dafür.</p>
<p>Die Daten die man speichern will kann jede beliebige PHP Variable sein, sogar komplette Objekte kann man ablegen.</p>
<p>So, nun wollen wir uns den Wert mal wieder raus holen, auch dies geht sehr schnell und einfach:</p>
<pre class="php"><span style="color: #0000ff;">$data</span> = <span style="color: #0000ff;">$GLOBALS</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;TSFE&quot;</span><span style="color: #66cc66;">&#93;</span>-&gt;<span style="color: #006600;">fe_user</span>-&gt;<span style="color: #006600;">getKey</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;ses&quot;</span>, <span style="color: #ff0000;">&quot;tx_myext&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Die Methode getKey erwartet nur zwei Parameter, die Bedeutung ist die gleiche wie bei <code>setKey()</code>.</p>
<p>Das Leben kann so einfach sein, wenn es nicht ab und an diese kleinen fiesen Sonderfälle gibt ;)</p>
<p>Nehmen wir mal an, man erzeugt ein PDF oder eine AJAX-Antwort, dann gibt man das PDF aus und steigt mit einem <code>exit()</code> oder <code>die()</code> aus. In diesen Fällen, reicht ein einfacher Aufruf von <code>setKey()</code> nicht aus. Denn TYPO3 kann dann die Daten nicht automatisch speichern. Aber hier schafft der folgende Code Abhilfe:</p>
<pre class="php"><span style="color: #0000ff;">$GLOBALS</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;TSFE&quot;</span><span style="color: #66cc66;">&#93;</span>-&gt;<span style="color: #006600;">fe_user</span>-&gt;<span style="color: #006600;">setKey</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;ses&quot;</span>, <span style="color: #ff0000;">&quot;tx_myext&quot;</span>, <span style="color: #0000ff;">$data</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$GLOBALS</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;TSFE&quot;</span><span style="color: #66cc66;">&#93;</span>-&gt;<span style="color: #006600;">fe_user</span>-&gt;<span style="color: #006600;">storeSessionData</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Mit <code>storeSessionData()</code> sorgen wir dafür, dass TYPO3 umgehend die Werte speichert. Sehr häufig wird gerade auf die letzte Zeile verzichtet, was in der Regel auch funktioniert, jedoch nur so lange, wie kein Fehler auftritt oder das Script vorzeitig beendet wird.</p>
<p>Fröhliches Session-Handling Euch allen :)</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/19/adventskalender-2008-turchen-19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 17</title>
		<link>http://typo3weblog.de/2008/12/17/adventskalender-2008-turchen-17/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-17</link>
		<comments>http://typo3weblog.de/2008/12/17/adventskalender-2008-turchen-17/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 23:00:00 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[cc_debug]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=418</guid>
		<description><![CDATA[Tim Georg hat Euch gestern im Türchen 16 gezeigt, wie man mit TypoScript und einem cObj einen Login erzeugt. Mein heutiges Türchen ist sehr kurz, aber sehr interessant wie ich finde.
In letzter Zeit habe ich sehr oft mit AJAX und JSON gearbeitet. Leider gibt es dabei immer ein Problem mit cc_debug, weil sich dieser immer [...]]]></description>
			<content:encoded><![CDATA[<p><del datetime="2008-12-17T08:40:37+00:00">Tim</del> Georg hat Euch gestern im <a href="http://typo3blogger.de/turchen-16-login-mit-ts-cobj-template/">Türchen 16</a> gezeigt, wie man mit TypoScript und einem cObj einen Login erzeugt. Mein heutiges Türchen ist sehr kurz, aber sehr interessant wie ich finde.</p>
<p>In letzter Zeit habe ich sehr oft mit <a href="http://de.wikipedia.org/wiki/AJAX">AJAX</a> und <a href="http://de.wikipedia.org/wiki/JSON">JSON</a> gearbeitet. Leider gibt es dabei immer ein Problem mit <a href="http://typo3.org/extensions/repository/view/cc_debug/current/">cc_debug</a>, weil sich dieser immer hinter die Ausgabe des JSON Codes klemmt und damit ein kaputtes JSON erzeugt. Nachdem ich heute mit meinem Kollegen Michael zusammen gesessen habe um dieses Problem zu lösen, sind wir auf eine sehr einfache Lösung gestoßen:</p>
<pre class="php"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$GLOBALS</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'errorList'</span><span style="color: #66cc66;">&#93;</span>-&gt;<span style="color: #006600;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/die"><span style="color: #000066;">die</span></a><span style="color: #66cc66;">&#40;</span>json_encode<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$result</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></pre>
<p>Die Zeile 1 direkt vor der Ausgabe des JSON Codes eingebaut, verhindert, dass cc_debug noch seinen JavaScript-Code hinter her ausgibt. Und wer jetzt sagt: naje, ein <code>die()</code> oder <code>exit()</code> sollte es auch tun, der irrt sich. Versucht es gerne selber mal ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/17/adventskalender-2008-turchen-17/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 15</title>
		<link>http://typo3weblog.de/2008/12/15/adventskalender-2008-turchen-15/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-15</link>
		<comments>http://typo3weblog.de/2008/12/15/adventskalender-2008-turchen-15/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 23:00:00 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[cronJob]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=411</guid>
		<description><![CDATA[Nachdem das Türchen 13 aus persönlichen Grunden leider ausfallen musste, hat Tim gestern im Türchen 14 erklärt, wie man im Backend die Framebreite anpassen kann.
Heute im Türchen 15 möchte ich Euch die Verwendung des Command Line Interface (CLI) von TYPO3 näher bringen. Das CLI bietet sich immer an, wenn man Prozesse automatisieren möchte. Dies gilt [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem das Türchen 13 aus persönlichen Grunden leider ausfallen musste, hat Tim gestern im <a href="http://typo3blogger.de/turchen-14-backend-framebreite-anpassen/">Türchen 14</a> erklärt, wie man im Backend die Framebreite anpassen kann.</p>
<p>Heute im Türchen 15 möchte ich Euch die Verwendung des Command Line Interface (CLI) von TYPO3 näher bringen. Das CLI bietet sich immer an, wenn man Prozesse automatisieren möchte. Dies gilt z.B. für tägliche Erinnerungsmails, welche jeden morgen um 9 Uhr versendet werden sollen. Genau an diesem Beispiel möchte ich Euch nun zeigen, wie sowas geht:</p>
<p>Es sind nur 5 einfach Schritte nötig:</p>
<p><strong>1. Backend User</strong><br />
Wir benötigen einen Backend-User, welcher für die Ausführung benötigt wird. Dieser sollte mit "_cli_" beginnen. Wir nennen ihn mal "_cli_myext", das Passwort ist eigentlich egal, da das CLI sich nicht ins Backend einloggt, jedoch könnte dieser User bei einem schwachen Passwort böswillig verwendet werden. Aus diesem Grund sollten ein sehr kryptisches Passwort gewählt werden.</p>
<p><strong>2. Registrierung des CLI Scripts</strong><br />
Um das CLI nutzen zu können, müssen wir nun unser Script registrieren, dazu ist folgender Eintrag in der Datei ext_localconf.php notwendig:</p>
<pre class="php"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>TYPO3_MODE==<span style="color: #ff0000;">'BE'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #0000ff;">$TYPO3_CONF_VARS</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'SC_OPTIONS'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'GLOBAL'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'cliKeys'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$_EXTKEY</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
    <span style="color: #ff0000;">'EXT:'</span>.<span style="color: #0000ff;">$_EXTKEY</span>.<span style="color: #ff0000;">'/class.tx_myext_cli.php'</span>,
    <span style="color: #ff0000;">'_cli_myext'</span>
  <span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>Hierbei ist zu beachten, dass der Backend-User mit angeben wird.</p>
<p><strong>3. Das CLI Script selbst</strong><br />
Als nächstes benötigen wir das CLI Script selbst:</p>
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/defined"><span style="color: #000066;">defined</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'TYPO3_cliMode'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>  <a href="http://www.php.net/die"><span style="color: #000066;">die</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'You cannot run this script directly, only from the command line!'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #b1b100;">require_once</span><span style="color: #66cc66;">&#40;</span>PATH_t3lib.<span style="color: #ff0000;">'class.t3lib_cli.php'</span><span style="color: #66cc66;">&#41;</span>; 
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> tx_myext_cli <span style="color: #000000; font-weight: bold;">extends</span> t3lib_cli <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> tx_myext_cli<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      parent::<span style="color: #006600;">t3lib_cli</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
      <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_help</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'Reminder-Mailings'</span>;
      <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_help</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'synopsis'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'###OPTIONS###'</span>;
      <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_help</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'description'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'send reminder mailings'</span>;
      <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_help</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'examples'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'/.../cli_dispatch.phpsh myext sendMails'</span>;
      <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_help</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'author'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'Frank Nägler, (c) 2008'</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> cli_main<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$args</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      <span style="color: #808080; font-style: italic;">// extract task</span>
      <span style="color: #0000ff;">$task</span> = <span style="color: #66cc66;">&#40;</span>string<span style="color: #66cc66;">&#41;</span> <span style="color: #0000ff;">$this</span>-&amp;gt;cli_args<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'_DEFAULT'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>;
      <span style="color: #b1b100;">switch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$task</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'sendMails'</span>:
            <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">sendMails</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #b1b100;">break</span>;
        <span style="color: #000000; font-weight: bold;">default</span>:
          <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_validateArgs</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
          <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cli_help</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
          <a href="http://www.php.net/exit"><span style="color: #000066;">exit</span></a>;
        <span style="color: #b1b100;">break</span>;
      <span style="color: #66cc66;">&#125;</span>
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> sendMails<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    	<span style="color: #808080; font-style: italic;">// send some mails</span>
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// Call the functionality</span>
<span style="color: #0000ff;">$cliObj</span> = t3lib_div::<span style="color: #006600;">makeInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'tx_myext_cli'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$cliObj</span>-&gt;<span style="color: #006600;">cli_main</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'argv'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
<p><strong>4. Der Aufruf</strong><br />
Möchte man das CLI jetzt testen, dann brauchen wir nur die folgende Zeile in einer Shell aufrufen:</p>
<pre class="bash">/path/to/typo3/cli_dispatch.phpsh myext sendMails</pre>
<p><strong>5. Der cronJob</strong><br />
Da wir die Mails ja jeden morgen um 9 Uhr versenden möchte, brauchen wir noch einen Eintrag in der cronTab:</p>
<pre class="bash"><span style="color: #000000;">0</span> <span style="color: #000000;">9</span> * * * /path/to/typo3/cli_dispatch.phpsh myext sendMails</pre>
<p>Das war es schon, die Möglichkeiten sind quasi unerschöpflich. Viel Spaß und viel Erfolg mit dem nächsten cronJob ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/15/adventskalender-2008-turchen-15/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 11</title>
		<link>http://typo3weblog.de/2008/12/11/adventskalender-2008-turchen-11/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-11</link>
		<comments>http://typo3weblog.de/2008/12/11/adventskalender-2008-turchen-11/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 23:00:29 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=404</guid>
		<description><![CDATA[Gestern hat Euch Tim Tobias im Türchen 10 erklärt, wie man eine TYPO3 Installation auf utf-8 umstellt, ein sehr schönes Tutorial wie ich finde.
Immer wieder erlebe ich es, dass der Kunde Texte selber ändern möchte, klar dafür hat er ja auch von uns TYPO3 bekommen. Leider Zum Glück, möchte der Kunde aber manchmal alles pflegen, [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern hat Euch <del datetime="2008-12-11T08:36:34+00:00">Tim</del> Tobias im <a href="http://typo3blogger.de/tuerchen-10-typo3-installation-auf-utf-8-umstellen/">Türchen 10</a> erklärt, wie man eine TYPO3 Installation auf utf-8 umstellt, ein sehr schönes Tutorial wie ich finde.</p>
<p>Immer wieder erlebe ich es, dass der Kunde Texte selber ändern möchte, klar dafür hat er ja auch von uns TYPO3 bekommen. <del>Leider</del> Zum Glück, möchte der Kunde aber manchmal alles pflegen, also auch Texte die aus LocalLang-Dateien oder Templates kommen.</p>
<p>Eine sehr einfache aber durchaus effektive Lösung dafür ist mal wieder ein wenig TypoScript:</p>
<pre class="javascript"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">plugin.<span style="color: #006600;">tx_myplugin_pi1</span>.<span style="color: #006600;">searchError</span> = RECORDS</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">plugin.<span style="color: #006600;">tx_myplugin_pi1</span>.<span style="color: #006600;">searchError</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">  tables = tt_content</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">  source = <span style="color: #CC0000;">123</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li></ol></pre>
<p>Jetzt noch das ContentElement mit der UID 123 im Seitenbaum anlegen und folgenden PHP Code in der Extension verwenden:</p>
<pre class="php"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0000ff;">$marker</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'###ERR_SEARCH###'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">cObj</span>-&gt;<span style="color: #006600;">cObjGetSingle</span><span style="color: #66cc66;">&#40;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">  <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">conf</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'searchError'</span><span style="color: #66cc66;">&#93;</span>,</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">  <span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">conf</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'searchError.'</span><span style="color: #66cc66;">&#93;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#41;</span>;</div></li></ol></pre>
<p>Das war es schon, jetzt enthält der Marker ###ERR_SEARCH### den Content, den der Kunde selbst eingepflegt hat. Natürlich muss man kein <code>RECORD</code> nehmen, sondern kann auch alle anderen TS-Objekte wie <code>TEXT</code> oder <code>IMAGE</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/11/adventskalender-2008-turchen-11/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 9</title>
		<link>http://typo3weblog.de/2008/12/09/adventskalender-2008-turchen-9/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-9</link>
		<comments>http://typo3weblog.de/2008/12/09/adventskalender-2008-turchen-9/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 23:00:58 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Buchtips]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=396</guid>
		<description><![CDATA[Tim stellte Euch gestern im Türchen 8 die neue Blog-Extension vor. Ich selber bin inzwischen ein überzeugter Wordpress Blogger, habe mir fest vorgenommen mir t3blog auch mal anzusehen.
Heute möchte ich Euch drei Bücher vorstellen und ans Herz legen. Zu allen dreien kann ich sagen, dass ich diese gelesen haben und bei meiner täglichen Arbeit nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Tim stellte Euch gestern im <a href="http://typo3blogger.de/turchen-8-typo3-blog-extension/">Türchen 8</a> die neue Blog-Extension vor. Ich selber bin inzwischen ein überzeugter Wordpress Blogger, habe mir fest vorgenommen mir t3blog auch mal anzusehen.</p>
<p>Heute möchte ich Euch drei Bücher vorstellen und ans Herz legen. Zu allen dreien kann ich sagen, dass ich diese gelesen haben und bei meiner täglichen Arbeit nicht mehr missen möchte.</p>
<p>Buchtip Nummer 1: TYPO3 Kochbuch</p>
<p>Buchtip Nummer 2: TypoScript - kurz &amp; gut</p>
<p>Buchtip Nummer 3: PHP Design Patterns</p>
<p>Auch wenn es mir am Anfang etwas schwer viel die Beispiele aus dem Buch PHP Design Patterns auf TYPO3 anzuwenden, möchte ich inzwischen keine Extension mehr anders programmieren. Das Buch ist meine tägliche Bibel geworden.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/09/adventskalender-2008-turchen-9/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 7</title>
		<link>http://typo3weblog.de/2008/12/07/adventskalender-2008-turchen-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-7</link>
		<comments>http://typo3weblog.de/2008/12/07/adventskalender-2008-turchen-7/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 23:00:15 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TSConfig]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[alternierend]]></category>
		<category><![CDATA[Tabelle]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=389</guid>
		<description><![CDATA[Habt Ihr gestern ein paar außergewöhnliche TYPO3 Gegenstände gefunden? Tim hatte ja danach gefragt im Türchen 6. Hinter dem siebten Türchen befindet sich heute ein User-TSConfig, welches im List-Module die Tabellen alternieren lässt.
mod.web_list &#123;    alternateBgColors = 1&#125;
Wie das aussieht, könnt ihr hier sehen:

Ich finde das sieht richtig schick aus, und bei breiten [...]]]></description>
			<content:encoded><![CDATA[<p>Habt Ihr gestern ein paar außergewöhnliche TYPO3 Gegenstände gefunden? Tim hatte ja danach gefragt im <a href="http://typo3blogger.de/turchen-6-ausergewohnliche-typo3-gegenstande/">Türchen 6</a>. Hinter dem siebten Türchen befindet sich heute ein User-TSConfig, welches im List-Module die Tabellen alternieren lässt.</p>
<pre class="javascript"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mod.<span style="color: #006600;">web_list</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    alternateBgColors = <span style="color: #CC0000;">1</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li></ol></pre>
<p>Wie das aussieht, könnt ihr hier sehen:</p>
<p><a title="Alternierende Tabelle" rel="lightbox[pics389]" href="http://typo3weblog.de/wp-content/2008/12/alternierende_tabelle.png" rel="lightbox[389]"><img class="attachment wp-att-390" src="http://typo3weblog.de/wp-content/2008/12/alternierende_tabelle.thumbnail.png" alt="Alternierende Tabelle" width="250" height="95" align="left" /></a></p>
<p>Ich finde das sieht richtig schick aus, und bei breiten Tabellen erleichtert dies die Übersichtlichkeit.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/07/adventskalender-2008-turchen-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 5</title>
		<link>http://typo3weblog.de/2008/12/05/adventskalender-2008-turchen-5/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-5</link>
		<comments>http://typo3weblog.de/2008/12/05/adventskalender-2008-turchen-5/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 23:00:35 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[hCard]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=385</guid>
		<description><![CDATA[Die Extension die Tim gestern im Türchen 4 vorgestellt hat, kannte ich auch noch nicht. Für Euch habe ich heute wieder etwas TypoScript. Das Thema Semantic Web wird inzwischen immer interessanter, darum kam ich auf die Idee - fast allein mit TypoScript - das bekannte hCard-Microformat in TYPO3 zu integrieren.
Was wir dafür brauchen ist eine [...]]]></description>
			<content:encoded><![CDATA[<p>Die Extension die Tim gestern im <a href="http://typo3blogger.de/turchen-4-extension-direct-shortcuts/">Türchen 4</a> vorgestellt hat, kannte ich auch noch nicht. Für Euch habe ich heute wieder etwas TypoScript. Das Thema <a href="http://de.wikipedia.org/wiki/Semantic_Web">Semantic Web</a> wird inzwischen immer interessanter, darum kam ich auf die Idee - fast allein mit TypoScript - das bekannte <a href="http://microformats.org/wiki/hcard">hCard-Microformat</a> in TYPO3 zu integrieren.</p>
<p>Was wir dafür brauchen ist eine eigene kleine Extension, diese benötigen wir lediglich für eine einzige Zeile Code, welche in die Datei ext_tables.php kommt:</p>
<pre class="php"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">t3lib_extMgm::<span style="color: #006600;">addToInsertRecords</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'fe_users'</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></pre>
<p>Dazu jetzt noch das TypoScript:</p>
<pre class="javascript"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">temp.<span style="color: #006600;">hcard</span> = COA</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">temp.<span style="color: #006600;">hcard</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	wrap =</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div id=<span style="color: #3366CC;">&quot;hcard&quot;</span> <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;vcard&quot;</span>&gt;|&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">10</span> = IMAGE</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">10</span>.<span style="color: #006600;">file</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #003366; font-weight: bold;">import</span> = uploads<span style="color: #0066FF;">/pics/</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #003366; font-weight: bold;">import</span>.<span style="color: #006600;">field</span> = image</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		width = <span style="color: #CC0000;">40</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		params = <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;photo&quot;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">20</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">20</span>.<span style="color: #006600;">field</span> = <span style="color: #000066;">name</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">20</span>.<span style="color: #006600;">typolink</span>.<span style="color: #006600;">parameter</span>.<span style="color: #006600;">field</span> = url</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">20</span>.<span style="color: #006600;">typolink</span>.<span style="color: #006600;">ATagParams</span> = <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;url fn&quot;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">30</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">30</span>.<span style="color: #006600;">field</span> = company</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">30</span>.<span style="color: #006600;">wrap</span> =</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;org&quot;</span>&gt;|&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">40</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">40</span>.<span style="color: #006600;">field</span> = email</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">40</span>.<span style="color: #006600;">typolink</span>.<span style="color: #006600;">parameter</span>.<span style="color: #006600;">field</span> = email</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">40</span>.<span style="color: #006600;">typolink</span>.<span style="color: #006600;">ATagParams</span> = <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;email&quot;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">50</span> = COA</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">50</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		wrap =</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;adr&quot;</span>&gt;|&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">10</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">10</span>.<span style="color: #006600;">field</span> = address</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">10</span>.<span style="color: #006600;">wrap</span> =</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;street-address&quot;</span>&gt;|&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">20</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">20</span>.<span style="color: #006600;">field</span> = city</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">20</span>.<span style="color: #006600;">wrap</span> = &lt;span <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;locality&quot;</span>&gt;|&lt;/span&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">30</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">30</span>.<span style="color: #006600;">field</span> = zip</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">30</span>.<span style="color: #006600;">wrap</span> = &lt;span <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;postal-code&quot;</span>&gt;|&lt;/span&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">40</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">40</span>.<span style="color: #006600;">field</span> = country</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		<span style="color: #CC0000;">40</span>.<span style="color: #006600;">wrap</span> = &lt;span <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;country-name&quot;</span>&gt;|&lt;/span&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">60</span> = TEXT</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">60</span>.<span style="color: #006600;">field</span> = telephone</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #CC0000;">60</span>.<span style="color: #006600;">wrap</span> =</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div <span style="color: #003366; font-weight: bold;">class</span>=<span style="color: #3366CC;">&quot;tel&quot;</span>&gt;|&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// fe_users dem type shortcut hinzufügen</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tt_content.<span style="color: #006600;">shortcut</span><span style="color: #CC0000;">.20</span><span style="color: #CC0000;">.0</span>.<span style="color: #006600;">tables</span> = fe_users</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// für Tabelle fe_users sagen wir jetzt noch wie es gerendert werden soll.</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tt_content.<span style="color: #006600;">shortcut</span><span style="color: #CC0000;">.20</span><span style="color: #CC0000;">.0</span>.<span style="color: #006600;">conf</span>.<span style="color: #006600;">fe_users</span> &lt; temp.<span style="color: #006600;">hcard</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></pre>
<p>Und was hat uns das jetzt gebracht? Ganz einfach:</p>
<ol>
<li>Wir haben das Content Element "Insert Record" um die Tabelle fe_users erweitert.</li>
<li>Wir haben mit dem TypoScript aus dem Object "temp.hcard" eine komplette hCard definiert, welche jetzt mit meinem fe_user Datensatz befüllt werden kann.</li>
<li>Durch die CSS-Klassen kann man die Visitenkarte nun auch noch schön aussehen lassen.</li>
</ol>
<p>Sind alle Daten vorhanden, könnte der erzeugte HTML-Code dann so aussehen:</p>
<pre><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div id=&quot;hcard&quot; class=&quot;vcard&quot;&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	&lt;img style=&quot;float:left; margin-right:4px&quot; src=&quot;http://typo3weblog.de/frank.png&quot; alt=&quot;photo of &quot; class=&quot;photo&quot;/&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	&lt;a class=&quot;url fn&quot; href=&quot;http://typo3weblog.de&quot;&gt;Frank Nägler&lt;/a&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div class=&quot;org&quot;&gt;TYPO3Weblog.de&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	&lt;a class=&quot;email&quot; href=&quot;mailto:frank.naegler@e-netconsulting.rl&quot;&gt;frank.naegler@e-netconsulting.rl&lt;/a&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div class=&quot;adr&quot;&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div class=&quot;street-address&quot;&gt;Sievekingsallee 150b&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		&lt;span class=&quot;locality&quot;&gt;Hamburg&lt;/span&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		&lt;span class=&quot;postal-code&quot;&gt;22111&lt;/span&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">		&lt;span class=&quot;country-name&quot;&gt;Deutschland&lt;/span&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;div class=&quot;tel&quot;&gt;+49 (0)7000 623 45 37&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/div&gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></pre>
<p>Cool oder?</p>
<p>Die komplette <a href="http://typo3weblog.de/wp-content/2008/12/t3x_fn_hcard-0_0_0-z-200812042323.t3x">Extension fn_hcard als T3X Export</a> habe ich hier für Euch zum Download.</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/05/adventskalender-2008-turchen-5/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Adventskalender 2008: Türchen 3</title>
		<link>http://typo3weblog.de/2008/12/03/adventskalender-2008-turchen-3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adventskalender-2008-turchen-3</link>
		<comments>http://typo3weblog.de/2008/12/03/adventskalender-2008-turchen-3/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 23:00:09 +0000</pubDate>
		<dc:creator>Frank Nägler</dc:creator>
				<category><![CDATA[Adventskalender 2008]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Programmers World]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[openSource]]></category>
		<category><![CDATA[DB Integration]]></category>

		<guid isPermaLink="false">http://typo3weblog.de/?p=377</guid>
		<description><![CDATA[Nachdem Tim gestern das zweite Türchen geöffnet hat kommt nun Türchen 3 dran.
Ich möchte Euch heute eine Extension vorstellen, welche ich erst vor kurzem entdeckt habe, dabei ist diese gar nicht so neu. Es geht um die Extension "DB Integration".
Die Extension ermöglicht es auf eine sehr schnelle und einfach Art jede beliebige Tabelle im Frontend [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem Tim gestern das <a href="http://typo3blogger.de/turchen-2-tutorial-typo3-entrumpeln/">zweite Türchen</a> geöffnet hat kommt nun Türchen 3 dran.</p>
<p>Ich möchte Euch heute eine Extension vorstellen, welche ich erst vor kurzem entdeckt habe, dabei ist diese gar nicht so neu. Es geht um die Extension "<a href="http://typo3.org/extensions/repository/view/wfqbe/current/">DB Integration</a>".</p>
<p>Die Extension ermöglicht es auf eine sehr schnelle und einfach Art jede beliebige Tabelle im Frontend zu bearbeiten. Dazu gibt es eine Listenansicht, Insert &amp; Edit Ansicht sowie einen Wizard. Ich habe den Wizard noch nicht testen können, aber die Listen und Edit-Ansichten funktionieren einwandfrei. Über Hooks kann man die Querys noch verändern um z.B. die Tabelle tt_address mit einem FE-User zu verknüpfen. So kann man in nur wenigen Minuten ein Adressbuch erzeugen, welches für jeden FE-User getrennt verwaltet wird.</p>
<p>Hier ein Screenshot von dem Wizard im Backend, mit dem man sehr bequem ein Formular definieren kann, welches später im Frontend automatisch erzeugt wird.</p>
<p><div class="wp-caption alignnone" style="width: 260px"><a title="Formular Wizard" rel="lightbox[pics377]" href="http://typo3weblog.de/wp-content/2008/12/insert_wizard.png" rel="lightbox[377]"><img class="attachment wp-att-380" title="Formular-Wizard im Backend" src="http://typo3weblog.de/wp-content/2008/12/insert_wizard.thumbnail.png" alt="Formular Wizard" width="250" height="163" align="left" /></a><p class="wp-caption-text">Formular-Wizard im Backend</p></div>Und hier noch ein Screenshot vom Query-Wizard für die Listen-Ansicht, jedes nur erdenkliche SQL-Query lässt sich damit erstellen.</p>
<p><div class="wp-caption alignnone" style="width: 260px"><a title="Query Wizard" rel="lightbox[pics377]" href="http://typo3weblog.de/wp-content/2008/12/query_wizard.png" rel="lightbox[377]"><img class="attachment wp-att-381" title="Query-Wizard im Backend" src="http://typo3weblog.de/wp-content/2008/12/query_wizard.thumbnail.png" alt="Query Wizard" width="250" height="167" align="left" /></a><p class="wp-caption-text">Query-Wizard im Backend</p></div>Die <a href="http://typo3.org/documentation/document-library/extension-manuals/wfqbe/current">Dokumentation</a> ist sehr umfangreich und bietet einen schnellen Einstieg in die Extension.</p>
<p>In fast jedem Projekt braucht man Frontend-Editing für eigene Tabellen, diese Extension nimmt einen massig viel Arbeit ab. Von meiner Seite her gibt es ein fettes Lob an die Entwickler, tolle Arbeit!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3weblog.de/2008/12/03/adventskalender-2008-turchen-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

