<?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>zeroseven labs &#187; TYPO3</title>
	<atom:link href="http://labs.zeroseven.de/category/development/typo3/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.zeroseven.de</link>
	<description></description>
	<lastBuildDate>Wed, 28 Jul 2010 07:43:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Datei-Upload direkt im RTE</title>
		<link>http://labs.zeroseven.de/development/typo3/datei-upload-direkt-im-rte/</link>
		<comments>http://labs.zeroseven.de/development/typo3/datei-upload-direkt-im-rte/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 12:03:42 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Rich Text Editor]]></category>
		<category><![CDATA[RTE]]></category>
		<category><![CDATA[TSconfig]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1571</guid>
		<description><![CDATA[Der Rich-Text-Editor (RTE) in TYPO3 bietet dem Redakteur die Möglichkeit, Bilder einzubinden und auf Dateien zu verlinken. Dabei kann der Administrator definieren, ob der Redakteur diese Dateien auch gleich im RTE hochladen darf, oder ob er evtl. nur Dateien benutzen darf, die zuvor schon in das fileadmin-Verzeichnis geladen wurden.

Mit folgender Konfigurations-Möglichkeiten im User TSconfig lässt [...]]]></description>
			<content:encoded><![CDATA[<p>Der Rich-Text-Editor (RTE) in TYPO3 bietet dem Redakteur die Möglichkeit, Bilder einzubinden und auf Dateien zu verlinken. Dabei kann der Administrator definieren, ob der Redakteur diese Dateien auch gleich im RTE hochladen darf, oder ob er evtl. nur Dateien benutzen darf, die zuvor schon in das <code>fileadmin</code>-Verzeichnis geladen wurden.</p>
<p><span id="more-1571"></span></p>
<p>Mit folgender Konfigurations-Möglichkeiten im <code>User TSconfig</code> lässt sich der Upload im RTE-aktivieren:</p>
<pre>options.uploadFieldsInTopOfEB = 1</pre>
<p>Und diese Konfigurations-Option erlaubt es dem Benutzer dann sogar noch, auch direkt Ordner anzulegen, um die Uploads besser strukturieren zu können:</p>
<pre>options.createFoldersInEB = 1</pre>
<p>Sind beide Optionen gesetzt, erscheinen die Upload-Felder direkt im Dateiauswahl-Dialog des RTEs.</p>
<p><a href="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-filelink.png" rel="lightbox[1571]"><img class="alignnone size-thumbnail wp-image-1573" src="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-filelink-150x150.png" alt="" width="150" height="150" /></a> <a href="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-image.png" rel="lightbox[1571]"><img class="alignnone size-thumbnail wp-image-1574" src="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-image-150x150.png" alt="" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/datei-upload-direkt-im-rte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Empfehlung TYPO3-Extension: nc_staticfilecache</title>
		<link>http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-ncstaticfilecache/</link>
		<comments>http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-ncstaticfilecache/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 09:01:23 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1526</guid>
		<description><![CDATA[TYPO3 ist ein sehr mächtiges Content-Management-System, woraus sich in Bezug auf Flexibilität und Anpassbarkeit sehr viele Vorteile ergeben. Leider hat diese Mächtigkeit auch einen Nachteil: Beim Aufruf einer TYPO3-Seite muss der komplette TYPO3-Source vom Webserver geladen und geparst werden. Dazu kommen noch etliche Datenbankabfragen, bis die Seite aufgebaut ist und an den Browser gesendet werden [...]]]></description>
			<content:encoded><![CDATA[<p>TYPO3 ist ein sehr mächtiges Content-Management-System, woraus sich in Bezug auf Flexibilität und Anpassbarkeit sehr viele Vorteile ergeben. Leider hat diese Mächtigkeit auch einen Nachteil: Beim Aufruf einer TYPO3-Seite muss der komplette TYPO3-Source vom Webserver geladen und geparst werden. Dazu kommen noch etliche Datenbankabfragen, bis die Seite aufgebaut ist und an den Browser gesendet werden kann. Mit einem geschickten Einsatz der Extension <strong>nc_staticfilecache</strong> lässt sich dieser Umweg abkürzen und der komplette Internetauftritt extrem beschleunigen.</p>
<p><span id="more-1526"></span></p>
<h2 style="font-size: 1em;color: #000;font-weight: bold">Funktionsweise von nc_staticfilecache</h2>
<p>Die Extension generiert aus dynamisch erzeugten TYPO3-Seiten &#8211; vorausgesetzt, sie enthalten ausschließlich cachebare Elemente &#8211; statische HTML-Dokumente als exakte Kopien und legte diese auf dem Webserver ab. Voraussetzung dafür ist die Verwendung einer Extension, die TYPO3 um lesbare Pfade erweitert, wie z.B. <strong><a href="http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-realurl/">realurl</a></strong> oder <strong>simulatestatic</strong>.</p>
<p>Durch eine Anpassung der <code>mod_rewrite</code>-Konfiguration wird dann bei jeden Seitenaufruf vom Webserver selbst geprüft, ob zu dieser Seite eine statische Variante gespeichert ist. Existiert diese statische Variante, wird diese direkt an den Client ausgeliefert, ohne dass TYPO3 ins Spiel kommt. Es muss kein PHP-Parser gestartet werden, kein TYPO3 geladen werden und keine Datenbankabfrage durchgeführt werden. Laut Eigenbeschreibung der Extension sind dazu Beschleunigungen bis zu 23000% möglich.</p>
<p>Um die Auslieferung von veraltetem Content zu verhindern, werden die statischen Dateien beim löschen des Frontend-Caches mit gelöscht. Darüber hinaus sollte auch noch ein Cron-Job eingerichtet werden, wie im Extension-Handbuch beschrieben. Dieser löscht die statischen HTML-Seiten automatisch nach ihrer definierten Lebensdauer. Diese Lebensdauer entspricht der im Backend eingestellten Cache-Dauer, die zu jeder Seite in den Seiteneigenschaften vorgenommen werden können.</p>
<h2 style="font-size: 1em;color: #000;font-weight: bold">TYPO3-Auftritt mit nc_staticfilecache beschleunigen</h2>
<p>Der leichteste Schritt ist die Installation der Extension über den TYPO3-Extension-Manager. Anschließend ist im Modul &#8220;Web &gt; Info&#8221; der neue Punkt &#8220;Statischer HTML Cache&#8221; verfügbar. Hier ist ersichtlich, welche Seiten gecached wurden bzw. warum einzelne Seiten nicht gecached wurden.</p>
<p>Die Meldung <code>config.no_cache is true</code> zeigt an, dass die komplette Seite nicht gecached werden kann. Das kann mehrere Gründe haben:
<ol>
<li>Caching in den Seiteneigenschaften deaktiviert</li>
<li>Caching im TypoScript deaktiviert (<code>config.no_cache = 1</code>)</li>
<li>eine Extension deaktiviert das Caching für diese Seite (<code>$GLOBALS['TSFE']-&gt;set_no_cache()</code>)</li>
</ol>
<p>Die Meldung <code>page has INTincScript</code> zeigt an, dass einzelne Elemente nicht gecached werden können. Das können z.B. Plugins sein, die als <code>USER_INT</code> anstatt als <code>USER</code> geladen werden oder TypoScript-Elemente, die vom Typ <code>COA_INT</code> anstatt vom Typ <code>COA</code> sind. Ein Hilfsmittel, um die <code>INT</code>-Elemente ausfindig machen zu können, ist der &#8220;TypoScript-Objekt-Browser&#8221;, der sich im Modul &#8220;Web &gt; Template&#8221; einsehen lässt, sobald eine Seite im Seitenbaum ausgewählt wurde.<br />
Ist ein <code>INT</code>-Objekt ausfindig gemacht, gilt es zu überlegen, ob sich das Caching für dieses Element nicht evtl. doch erlauben lässt. Ist dies der Fall, kann der Typ via TypoScript geändert werden:</p>
<pre>	# noncacheable INT objects
plugin.user_myextension = USER_INT
lib.mytyposcriptobject = COA_INT

	# cacheable objects
plugin.user_myextension = USER
lib.mytyposcriptobject = COA</pre>
<p>Nachdem die Extension installiert ist, und die Seiten als statische Kopien auf dem Webserver abgelegt werden, muss noch die <code>mod_rewrite</code>-Konfiguration angepasst werden. Eine Beispiel-Konfiguration dazu befindet sich in Extension-Handbuch. Diese muss aber je nach Serverumgebung und <strong><a href="http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-realurl/">realurl</a></strong>- bzw. <strong>simulatestatic</strong>-Konfiguration noch angepasst werden.</p>
<h2 style="font-size: 1em;color: #000;font-weight: bold">Fazit</h2>
<p>Durch einen geschickten Einsatz der Extension &#8220;<strong>nc_staticfilecache</strong>&#8221; lässt sich der TYPO3-Auftritt extrem beschleunigen und die Serverlast deutlich reduzieren. Voraussetzung dafür ist jedoch ein durchdachter Einsatz von nicht-cachebaren <code>INT</code>-Elementen, die es zu vermeiden gilt. Schließlich kann ein einziges Plugin, das nicht gecached werden darf, schon den kompletten Einsatz der Extension verhindern.</p>
<p>Die Extension &#8220;<strong>nc_staticfilecache</strong>&#8221; ist in ihrer aktuellsten Version über das <a href="http://typo3.org/extensions/">Extension Repository</a> erhältlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-ncstaticfilecache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX im TYPO3-Frontend</title>
		<link>http://labs.zeroseven.de/development/typo3/ajax-im-typo3-frontend/</link>
		<comments>http://labs.zeroseven.de/development/typo3/ajax-im-typo3-frontend/#comments</comments>
		<pubDate>Fri, 14 May 2010 12:03:19 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Conditions]]></category>
		<category><![CDATA[eID]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1480</guid>
		<description><![CDATA[AJAX ist was feines für den Besucher, alles fühlt sich schneller und flüssiger an. Für den Entwickler kann es manchmal aber eher mühsam sein. Man braucht die Javascript-Funktionalität und die Server-Funktionalität. Hier im Artikel will ich kurz anreißen, wie die Server-Funktionalität elegant in TYPO3 integriert und die Vorteile, die TYPO3 hier mitbringt, genutzt wird.

AJAX mit [...]]]></description>
			<content:encoded><![CDATA[<p>AJAX ist was feines für den Besucher, alles fühlt sich schneller und flüssiger an. Für den Entwickler kann es manchmal aber eher mühsam sein. Man braucht die Javascript-Funktionalität und die Server-Funktionalität. Hier im Artikel will ich kurz anreißen, wie die Server-Funktionalität elegant in TYPO3 integriert und die Vorteile, die TYPO3 hier mitbringt, genutzt wird.</p>
<p><span id="more-1480"></span></p>
<h2 style="font-size:1em;color:#000;font-weight:bold">AJAX mit eID-Machanismus</h2>
<p>Mit dem integrierten eID-Mechanismus von TYPO3 ist es möglich, eigene PHP-Scripte ohne großen Overhead aufzurufen. Instanziert wird dabei nur alles, was man unbedingt braucht oder will. Der Nachteil dabei ist jedoch, das viele interne TYPO3-Bordmittel nicht zur Verfügung stehen. So müssen z.B. für die Spracherkennung oder wenn TypoScript-Bedingungen beachtet werden sollen, komplizierte Workarounds integriert werden. Dadurch wird das anfänglich schlanke Script schnell aufgebläht und unübersichtlich. Und im schlimmsten Fall entstehen dadurch sogar Sicherheitslücken, beispielsweise dann wenn es dem Benutzer Möglich ist, über das AJAX-Backends Daten abzufragen für die er in seiner Benutzergruppe ggf. gar keine Berechtigung haben sollte.<br />
Der eID-Mechanismus ist also meiner Meinung nach für einfache und unkomplizierte Abfragen geeignet. Kommen aber irgendwelche Bedingungen ins Spiel, von denen die Abfrage abhängig sein sollte, empfehle ich eine andere Herangehensweise.</p>
<h2 style="font-size:1em;color:#000;font-weight:bold">AJAX mit eigenem Seiten-Typ</h2>
<p>Wer schon einmal ein TYPO3-Projekt erstellt hat, kennt die Seiten-Typen vermutlich von der Druckansicht. Oftmals wird mit <code>typeNum=98</code> ein Page-Objekt für die Druckansicht definiert, dass sich dann mit einem angehängten Parameter (z.B. <em>http://www.example.com/index.php?id=1&amp;<strong>type=98</strong></em>) aufrufen lässt und eine völlig andere Ansicht der Webseite offenbart.<br />
Genau dieses Feature lässt sich auch nutzen, um ein z.B. ein eigenes Extension-Plugin mit einem definierten Seiten-Typ zu verknüpfen. Hier im Beispiel erzeugen wir mit <code>myajax</code> ein neues Objekt vom Typ <code>PAGE</code>. Mit <code>typeNum = 789</code> wird dann eine alternative Typ-Nummer vergeben. Und nach ein paar Beispielkonfigurationen wird dann noch das Plugin als einziger Content eingebunden.</p>
<p>Unser Plugin ist dann direkt über <em>http://www.example.de/index.php?id=23&amp;L=1&amp;<strong>type=789</strong></em> erreichbar und liefert automatisch die korrekten Ergebnisse, abhänig vom gesetzten Sprachparameter, der gewählten Seite und den aktuellen Berechtigungen des Benutzers. (Die Parameter <em>id</em> und <em>L</em> im Beispiellink sind natürlich variabel und hier nur als Beispiel gesetzt.)</p>
<pre>	# prepare alternative page type
myajax = PAGE
myajax.typeNum = 789
myajax.config {
	disableAllHeaderCode = 1
	additionalHeaders = Cache-Control: no-cache, must-revalidate, max-age=0|Expires: Mon, 2 Jan 2006 01:00:00 GMT|Pragma: no-cache
	xhtml_cleaning = 0
}
	# register plugin directly as page content
myajax.10 &lt; plugin.user_myajaxplugin_pi1</pre>
<p>Der Nachteil dieser Lösung ist, dass bei jeder Anfrage der komplette standardmäßige TYPO3-Overhead mitgeführt wird. Es ist also von Haus aus eher die etwas langsamere Variante im Vergleich zur oben genannten eID-Lösung.</p>
<p>Der enorme Vorteil hingegen ist jedoch, dass sich die AJAX-Serverfunktionalität exakt gleich zur normalen Seite verhält. Alle Spracheinstellungen, die Berechtigungen für irgendwelche Seiten, TypoScript-Conditions, etc. haben auch direkten Einfluss auf die AJAX-Funktionalität und können von einem Angreifer nicht mit einfachen Parameter-Änderungen in der Adresse ausgehebelt werden.</p>
<h2 style="font-size:1em;color:#000;font-weight:bold">Fazit</h2>
<p>Grundsätzlich würde ich keine der beiden Varianten als &#8220;<em>besser</em>&#8221; oder &#8220;<em>schlechter</em>&#8221; bezeichnen. Für einfache AJAX-Abfragen ohne Einschränkungen wie z.B. Sprache, Berechtigung, etc. würde ich die kleinere Schlankere Variante mit dem eID-Mechanismus wählen. Sobald aber Inhalte nur für eine bestimmte Besuchergruppe sichtbar sein sollen, oder in verschiedenen Sprachen verfügbar, rate ich zweifellos zur Variante mit dem eigenen Seiten-Typ.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/ajax-im-typo3-frontend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saubere realurl-Links über Domains hinweg</title>
		<link>http://labs.zeroseven.de/development/typo3/saubere-realurl-links-uber-domains-hinweg/</link>
		<comments>http://labs.zeroseven.de/development/typo3/saubere-realurl-links-uber-domains-hinweg/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 08:12:45 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[realurl]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Suchmaschinenoptimierung]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1237</guid>
		<description><![CDATA[In einem früheren Beitrag, habe ich gezeigt wie man in TYPO3 Links über Domains hinweg generiert, hatte damals aber noch keine Lösung wie die Links auch von realurl korrekt geparst werden. Inzwischen weiß ich jedoch, dass die Lösung des Problems unglaublich einfach ist.

In den Seiteneigenschaften verbirgt sich unter dem Reiter &#8220;Optionen&#8221; die kleine unscheinbare Checkbox [...]]]></description>
			<content:encoded><![CDATA[<p>In einem früheren Beitrag, habe ich gezeigt wie man in TYPO3 <a href="http://labs.zeroseven.de/development/typo3/links-uber-domains-hinweg/">Links über Domains hinweg</a> generiert, hatte damals aber noch keine Lösung wie die Links auch von <a href="http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-realurl/">realurl</a> korrekt geparst werden. Inzwischen weiß ich jedoch, dass die Lösung des Problems unglaublich einfach ist.</p>
<p><span id="more-1237"></span></p>
<p>In den Seiteneigenschaften verbirgt sich unter dem Reiter &#8220;Optionen&#8221; die kleine unscheinbare Checkbox &#8220;<em>Ist Anfang der Web-Site</em>&#8221; (engl.: &#8220;<em>Is root of website</em>&#8220;). Diese Checkbox muss auf der Root-Page wirklich gesetzt sein – und natürlich die Root-Page auch in der realurl-Konfigurationsdatei korrekt gesetzt sein – uns schon klappt der Seitenübergreifende Link auch wunderschön mit realurl.</p>
<p>Tipp: Wenn Ihr die Checkbox &#8220;<em>Ist Anfang der Web-Site</em>&#8221; nicht sehen könnt, blendet einfach die zweite Optionspalette ein.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/saubere-realurl-links-uber-domains-hinweg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWF-Uploader in TYPO3-Backend trotz .htaccess-Passwort</title>
		<link>http://labs.zeroseven.de/development/typo3/swf-uploader-in-typo3-backend-trotz-htaccess-passwort/</link>
		<comments>http://labs.zeroseven.de/development/typo3/swf-uploader-in-typo3-backend-trotz-htaccess-passwort/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 08:20:02 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[SWF]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1222</guid>
		<description><![CDATA[Eines der vielen neuen Features, die TYPO3 Version 4.3 mit bringt, ist der SWF-Uploader, bzw. die &#8220;Flash-Schnittstelle zum Hochladen&#8221;, wie es in der deutschen Sprachversion heißt. Doch wenn ein TYPO3-Projekt mit einem .htaccess-Passwortschutz versehen ist, was z.B. in der Entwicklungsphase oder evtl. auch aus anderen Gründen durchaus sein könnte, funktioniert der SWF-Uploader erstmal nicht.

Mit einem [...]]]></description>
			<content:encoded><![CDATA[<p>Eines der vielen neuen Features, die TYPO3 Version 4.3 mit bringt, ist der SWF-Uploader, bzw. die &#8220;Flash-Schnittstelle zum Hochladen&#8221;, wie es in der deutschen Sprachversion heißt. Doch wenn ein TYPO3-Projekt mit einem .htaccess-Passwortschutz versehen ist, was z.B. in der Entwicklungsphase oder evtl. auch aus anderen Gründen durchaus sein könnte, funktioniert der SWF-Uploader erstmal nicht.</p>
<p><span id="more-1222"></span></p>
<p>Mit einem kleinen Eingriff in die .htaccess-Datei lässt sich der SWF-Uploader aber auch zum Laufen bringen, ohne den Passwort-Schutz vom ganzen Projekt zu nehmen. Dazu müssen einfach folgende Zeilen in die .htaccess-Datei eingefügt werden.</p>
<pre>&lt;Files ajax.php&gt;
Allow from any
Satisfy any
&lt;/Files&gt;</pre>
<p>Die erste und vierte Zeile bewirken, dass die Anweisung nur für Dateien mit dem Namen <strong>ajax.php</strong> gelten soll. Zeile 2 besagt, dass ein Zugriff von jeder IP-Adresse aus möglich ist und Zeile 3 bewirkt, dass <em>entweder</em> die User-Authentifizierung via Passwort <em>oder</em> die IP-Adresse des Besuchers stimmen muss. Und da der Besucher jede beliebige IP-Adresse besitzen darf (Zeile 2), ist die Zugriffsbeschränkung für die Datei <strong>ajax.php</strong> aufgehoben und der SWF-Uploader funktioniert wieder tadellos.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/swf-uploader-in-typo3-backend-trotz-htaccess-passwort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;New Content Element Wizard&#8221; in TYPO3 anpassen</title>
		<link>http://labs.zeroseven.de/development/typo3/new-content-element-wizard-in-typo3-anpassen/</link>
		<comments>http://labs.zeroseven.de/development/typo3/new-content-element-wizard-in-typo3-anpassen/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 15:53:39 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TSconfig]]></category>
		<category><![CDATA[TypoScript]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1132</guid>
		<description><![CDATA[Seit einigen Wochen ist TYPO3 4.3 veröffentlicht und ich bin von allen Neuerungen begeistert. Viele Features entdeckt man sofort, wenn man sich in das Backend einloggt – und da spreche ich nicht nur von den neu gestalteten Formular-Buttons – andere Features hingegen sind nicht offensichtlich, aber dennoch sehr nützlich und hilfreich.

Zu den offensichtlich erkennbaren neuen [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einigen Wochen ist TYPO3 4.3 veröffentlicht und ich bin von allen Neuerungen begeistert. Viele Features entdeckt man sofort, wenn man sich in das Backend einloggt – und da spreche ich nicht nur von den neu gestalteten Formular-Buttons – andere Features hingegen sind nicht offensichtlich, aber dennoch sehr nützlich und hilfreich.</p>
<p><span id="more-1132"></span></p>
<p>Zu den offensichtlich erkennbaren neuen Features gehören z.B. der Papierkorb (Recylcer), Planer (Scheduler) oder die Übersicht der kürzlich verwendeten Dokumente. Doch auch die zunächst unsichtbaren Features versprechen Erleichterungen und Anpassbarkeit des TYPO3-Projekts. Eine großartige Neuerung ist wohl der &#8220;New Content Element Wizard&#8221;. Dieser ist jetzt Seite für Seite via pageTS konfigurierbar. Welche Möglichkeiten sich hierbei bieten, beschreibt Steffen Kamper in <a href="http://buzz.typo3.org/people/steffen-kamper/article/the-new-content-element-wizard-in-version-43/">seinem Artikel auf buzz.typo3.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/new-content-element-wizard-in-typo3-anpassen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eigene Tabellen zusammen mit TYPO3-Cache leeren</title>
		<link>http://labs.zeroseven.de/development/typo3/eigene-tabellen-zusammen-mit-typo3-cache-leeren/</link>
		<comments>http://labs.zeroseven.de/development/typo3/eigene-tabellen-zusammen-mit-typo3-cache-leeren/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 10:19:00 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[localconf]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1115</guid>
		<description><![CDATA[Manchmal ist es erforderlich, für eine eigene Extension einen eigenen Caching-Mechanismus zu erstellen. Ich denke dabei z.B. an die automatisierte Erzeugung von PDF-Dokumenten oder Excel-Dateien. Selbstverständlich kann es auch andere Gründe geben, weshalb etwas gechached werden sollte, um Zeit und Performance zu sparen. Aber jeder gute Cache muss ggf. auch irgendwann geleert werden können.

Selbstverständlich kann [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal ist es erforderlich, für eine eigene Extension einen eigenen Caching-Mechanismus zu erstellen. Ich denke dabei z.B. an die automatisierte Erzeugung von PDF-Dokumenten oder Excel-Dateien. Selbstverständlich kann es auch andere Gründe geben, weshalb etwas gechached werden sollte, um Zeit und Performance zu sparen. Aber jeder gute Cache muss ggf. auch irgendwann geleert werden können.</p>
<p><span id="more-1115"></span></p>
<p>Selbstverständlich kann man dazu in die Datenbank gehen und Cache-Tabelle manuell leeren &#8211; aber was wenn ein Redakteur ohne Datenbankzugriff den Cache leeren will oder muss? TYPO3 bietet im Backend einen Button zum einfachen Löschen aller Caches. Und genau dort bietet sich eine Möglichkeit, unsere Cache-Tabelle mit leeren zu lassen.</p>
<p><a href="http://labs.zeroseven.de/wp-content/uploads/2009/12/allCaches.gif" rel="lightbox[1115]"><img class="alignnone size-full wp-image-1116" src="http://labs.zeroseven.de/wp-content/uploads/2009/12/allCaches.gif" alt="TYPO3 Cache leeren" width="301" height="134" /></a></p>
<p>Beim Aufruf von &#8220;Alle Caches löschen&#8221; wird (mit Einschränkungen, auf die ich gleich eingehen werde) alle Tabellen geleert, die im globalen PHP-Array <code>$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']</code> registriert sind. Um also Cache-Tabellen der eigenen Extension mit leeren zu lassen, könnte die Datei <code>ext_localconf.php</code> so aussehen:</p>
<pre>&lt;?php
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['user_mydemoextension_pdfcache'] = 'user_mydemoextension_pdfcache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['user_mydemoextension_xlscache'] = 'user_mydemoextension_xlscache';
?&gt;</pre>
<p>Damit werden die beiden Tabellen &#8220;user_mydemoextension_pdfcache&#8221; und &#8220;user_mydemoextension_xlscache&#8221; automatisch bei Klick auf &#8220;<strong>Alle Caches löschen</strong>&#8221; mit geleert. Die Einschränkung, die ich oben angedeutet habe, ist die Syntax der Tabellennamen. Diese müssen mit mindestens einem alphanumerischen Zeichen beginnen und mindestens einen Unterstrich enthalten, was aber sowieso der TYPO3-Syntax für Extension-Tabellen entspricht (z.B. &#8220;tx_myextensiontable&#8221;,&#8221;user_myextensiontable&#8221;) &#8211; und darüber hinaus mit der Zeichenkette &#8220;cache&#8221; enden. Eine Tabelle mit Namen &#8220;user_mydemoextension_pdf&#8221; kann also nicht automatisch mit dem TYPO3-Cache mit geleert werden, eine Tabelle mit Namen &#8220;user_mydemoextension_pdfcache&#8221; dagegen schon.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/eigene-tabellen-zusammen-mit-typo3-cache-leeren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TYPO3 4.3 kommt bald &#8230;</title>
		<link>http://labs.zeroseven.de/development/typo3/typo3-4-3-kommt-bald/</link>
		<comments>http://labs.zeroseven.de/development/typo3/typo3-4-3-kommt-bald/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 12:12:20 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1113</guid>
		<description><![CDATA[Die Zeit von alpha und beta ist vobei, was TYPO3 4.3 angeht. Heute wurde der erste Release Candidate veröffentlicht, einer der letzten Schritte vor der offiziellen Veröffentlichung.

TYPO3 4.3-RC1 kann wie immer von der TYPO3-Downloadseite herunter geladen werden. Eine Liste von Änderungen und Features kann hier eingesehen werden.
]]></description>
			<content:encoded><![CDATA[<p>Die Zeit von alpha und beta ist vobei, was TYPO3 4.3 angeht. Heute wurde der erste Release Candidate veröffentlicht, einer der letzten Schritte vor der offiziellen Veröffentlichung.</p>
<p><span id="more-1113"></span></p>
<p>TYPO3 4.3-RC1 kann wie immer von der <a href="http://typo3.org/download/packages/">TYPO3-Downloadseite</a> herunter geladen werden. Eine Liste von Änderungen und Features kann <a href="http://news.typo3.org/news/article/typo3-43-rc-1/">hier</a> eingesehen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/typo3-4-3-kommt-bald/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mit Hook in TYPO3-Frontendrendering eingreifen</title>
		<link>http://labs.zeroseven.de/development/typo3/mit-hook-in-typo3-frontendrendering-eingreifen/</link>
		<comments>http://labs.zeroseven.de/development/typo3/mit-hook-in-typo3-frontendrendering-eingreifen/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 10:56:10 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Hook]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1110</guid>
		<description><![CDATA[Für eine spezielle Extension suchte ich nach einer Möglichkeit, die komplette HTML-Ausgabe von TYPO3 noch einmal durch ein PHP-Script weiter zu verarbeiten, bevor diese an den Browser geschickt wird. TYPO3 bietet zu diesem Zweck eine Vielzahl von Hooks an.

Eine ausführliche Übersicht, welche Hooks einen Eingriff zu welchem Zeitpunkt des Frontendrenderings ermöglichen, gibt es in diesem [...]]]></description>
			<content:encoded><![CDATA[<p>Für eine spezielle Extension suchte ich nach einer Möglichkeit, die komplette HTML-Ausgabe von TYPO3 noch einmal durch ein PHP-Script weiter zu verarbeiten, bevor diese an den Browser geschickt wird. TYPO3 bietet zu diesem Zweck eine Vielzahl von Hooks an.</p>
<p><span id="more-1110"></span></p>
<p>Eine ausführliche Übersicht, welche Hooks einen Eingriff zu welchem Zeitpunkt des Frontendrenderings ermöglichen, gibt es <a href="http://buzz.typo3.org/uploads/media/TYPO3_Frontend_Rendering_Process_v1.5.pdf">in diesem PDF-Dokument</a>. Ich habe mich für meine Extension für den Hook <code>contentPostProc-output</code> entschieden.</p>
<p>Die Datei <code>ext_localconf.php</code> sieht wie folgt aus:</p>
<pre>&lt;?php
if (!defined ('TYPO3_MODE')) {
	die ('Access denied.');
}

// hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']['user_myext'] = 'EXT:user_myext/class.user_myext_hook.php:&amp;user_myext_hook-&gt;contentPostProc_output';
?&gt;</pre>
<p>Mein Versuch, die Angabe zum Hookaufruf in die Datei <code>ext_tables.php</code> zu schreiben, scheiterte kläglich. Diese Angabe muss also scheinbar zwingend in der Datei <code>ext_localconf.php</code> stehen.</p>
<p>Die Datei <code>class.user_myext_hook.php</code> könnte dann wie folgt aussehen:</p>
<pre>&lt;?php
class user_myext_hook {

	function contentPostProc_output(&amp;$params) {
		$feobj = &amp;$params['pObj'];
		str_replace('foo', 'bar', $feobj-&gt;content);
	}
}
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/mit-hook-in-typo3-frontendrendering-eingreifen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neu in TYPO3 4.2.8: Install-Tool aktivieren und deaktivieren</title>
		<link>http://labs.zeroseven.de/development/typo3/neu-in-typo3-4-2-8-install-tool-aktivieren-und-deaktivieren/</link>
		<comments>http://labs.zeroseven.de/development/typo3/neu-in-typo3-4-2-8-install-tool-aktivieren-und-deaktivieren/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 11:31:00 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[ENABLE_INSTALL_TOOL]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=978</guid>
		<description><![CDATA[Die vor wenigen Tagen erschienene Version 4.2.8 enthält neben kleineren Bugfixes auch eine Neuerung, die der Sicherheit des TYPO3-Auftritts entgegenkommt: Das Install-Tool wird nach 1 Stunde automatisch deaktiviert.

Die Datei ENABLE_INSTALL_TOOL, welche benötigt wird um das Install-Tool zu aktivieren, wird von TYPO3 automatisch nach 1 Stunde gelöscht. So lange man mit dem Install-Tool arbeitet, wird die [...]]]></description>
			<content:encoded><![CDATA[<p>Die vor wenigen Tagen erschienene Version 4.2.8 enthält neben kleineren Bugfixes auch eine Neuerung, die der Sicherheit des TYPO3-Auftritts entgegenkommt: Das Install-Tool wird nach 1 Stunde automatisch deaktiviert.</p>
<p><span id="more-978"></span></p>
<p>Die Datei <code>ENABLE_INSTALL_TOOL</code>, welche benötigt wird um das Install-Tool zu aktivieren, wird von TYPO3 automatisch nach 1 Stunde gelöscht. So lange man mit dem Install-Tool arbeitet, wird die Dateizeit immer wieder aktualisiert, liegt die Dateizeit jedoch über eine Stunde zurück, wird die Datei automatisch gelöscht und das Install-Tool ist deaktiviert.</p>
<p>Für die Sicherheit des TYPO3-Auftrittes ist das ein enormer Sicherheitsvorteil, da vergessene Install-Tools automatisch unbrauchbar werden und somit keine Angriffsflächen mehr darstellen. Für die Entwicklung wäre das jedoch eher lästig, da man evtl. immer wieder Änderungen vornehmen möchte und das immerwährende automatische Löschen der Datei eher lästig wäre.</p>
<p>Doch die neue Version bringt für Administratoren, die ein deaktiviertes Install-Tool aktivieren möchten – egal ob Entwicklungs-Auftritt oder Live-Auftritt – genau das richtige Feature mit. Die Aktivierung kann von einem Admin aus dem Backend vorgenommen werden.</p>
<p>Das neue Feature verbirgt sich hinter &#8220;Benutzerwerkzeuge &gt; Benutzerenistellungen&#8221;. Hier wurde ein Button integriert, mit dem der Administrator die Datei <code>ENABLE_INSTALL_TOOL</code> aktivieren oder deaktivieren kann.</p>
<p><a href="http://labs.zeroseven.de/wp-content/uploads/2009/07/enable-create.png" rel="lightbox[978]"><img class="alignnone size-thumbnail wp-image-982" src="http://labs.zeroseven.de/wp-content/uploads/2009/07/enable-create-150x150.png" alt="ENABLE_INSTALL_TOOL aktivieren" width="150" height="150" /></a> <a href="http://labs.zeroseven.de/wp-content/uploads/2009/07/enable-delete.png" rel="lightbox[978]"><img class="alignnone size-thumbnail wp-image-983" src="http://labs.zeroseven.de/wp-content/uploads/2009/07/enable-delete-150x150.png" alt="ENABLE_INSTALL_TOOL deaktivieren" width="150" height="150" /></a></p>
<p>Damit mit diesem neuen Feature kein Unfug angestellt wird, steht es selbstverständlich nur Administratoren zur Verfügung. Bei normalen Backend-Usern ist der Button zum erzeugen/löschen der Datei selbstverständlich nicht sichtbar:</p>
<p><a href="http://labs.zeroseven.de/wp-content/uploads/2009/07/nonadmin.png" rel="lightbox[978]"><img class="alignnone size-thumbnail wp-image-984" src="http://labs.zeroseven.de/wp-content/uploads/2009/07/nonadmin-150x150.png" alt="Ansicht eines Nicht-Admin-Users" width="150" height="150" /></a></p>
<p>Ich finde diese Änderungen wirklich sinnvoll und freue mich darüber. Erstens muss ich nicht mehr unbedingt daran denken beim Launch eines Projektes die Sicherungsdatei zu entfernen. Zweitens werden dadurch TYPO3-Projekte in aller Welt, die von unbedarften Administratoren betreut werden, deutlich sicherer. Und drittens kann ich das Install-Tool mit wenigen klicks aktivieren, wenn ich es brauche und muss nicht den umständlichen Weg über FTP oder SSH gehen, um die <code>ENABLE_INSTALL_TOOL</code>-Datei anzulegen.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/neu-in-typo3-4-2-8-install-tool-aktivieren-und-deaktivieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
