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

<channel>
	<title>TYPO3 Blogger &#187; Extension</title>
	<atom:link href="http://typo3blogger.de/category/extension/feed/" rel="self" type="application/rss+xml" />
	<link>http://typo3blogger.de</link>
	<description>TYPO3 News, Development &#38; Insider Infos</description>
	<lastBuildDate>Tue, 07 Feb 2012 21:39:48 +0000</lastBuildDate>
	<language>de-de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Neuer Autor für EXT:realurlmanagement gesucht</title>
		<link>http://typo3blogger.de/neuer-autor-fur-extrealurlmanagement-gesucht/</link>
		<comments>http://typo3blogger.de/neuer-autor-fur-extrealurlmanagement-gesucht/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 15:43:11 +0000</pubDate>
		<dc:creator>Andy Grunwald</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7511</guid>
		<description><![CDATA[Die Extension RealURL Management ist einer der &#8220;urgesteine&#8221; aus dem TER. Zurzeit hat diese 13407 (total) / 6589 (aktuelle Version) Downloads (die Dunkelziffer wird noch höher liegen, da der TER Counter eine Zeit lang nicht funktioniert hat). Die aktuelle Version ist 0.3.4 und wurde am 21.02.2008 das letzte mal released. Wie also unschwer zu erkennen ist, war die Entwicklung [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Die Extension <a title="RealURL Management" href="http://forge.typo3.org/projects/show/extension-realurlmanagement">RealURL Management</a> ist einer der &#8220;urgesteine&#8221; aus dem <a title="RealURL management im TER" href="http://typo3.org/extensions/repository/view/realurlmanagement/current/">TER</a>. Zurzeit hat diese 13407 (total) / 6589 (aktuelle Version) Downloads (die Dunkelziffer wird noch höher liegen, da der TER Counter eine Zeit lang nicht funktioniert hat). Die aktuelle Version ist 0.3.4 und wurde am 21.02.2008 das letzte mal released.</p>
<p>Wie also unschwer zu erkennen ist, war die Entwicklung dieser Extension  in letzter Zeit nicht ganz so aktiv. Dies liegt daran, dass der aktuelle Autor, <a title="Juraj Sulek" href="http://forge.typo3.org/users/325">Juraj Sulek</a>, keine Zeit mehr zur Pflege sowie Weiterentwicklung dieser Extension hat. Aus diesem Grund wird hier ein Aufruf gestartet:</p>
<p><strong>Hat jemand Lust, Zeit und Muße die Extension realurlmanagement zu übernehmen? Es wird ein neuer Autor gesucht!</strong></p>
<p>Wenn Ihr euch nun angesprochen fühlt, könnt Ihr euch einfach bei Juraj via Forge melden. Er beißt nicht und ist gerne bereit dieses Projekt in neue Hände zu übergeben.</p>
<p>Und noch eine Frage für Zwischendurch: Was haltet Ihr von solchen &#8220;Angeboten&#8221; / &#8220;Gesuchen&#8221; auf diesem Blog? Passend, da es um eines der meist genutzten Features (Extensions) geht und es ist völlig in Ordnung oder seid Ihr von einer solchen Art von Posts genervt? Kleines Feedback in den Comments wäre klasse.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/neuer-autor-fur-extrealurlmanagement-gesucht/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Mehrspaltige Struktur-Elemente mit Gridelements – Türchen 21</title>
		<link>http://typo3blogger.de/mehrspaltige-struktur-elemente-mit-gridelements-turchen-21/</link>
		<comments>http://typo3blogger.de/mehrspaltige-struktur-elemente-mit-gridelements-turchen-21/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 07:00:16 +0000</pubDate>
		<dc:creator>Tobias Liegl</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7378</guid>
		<description><![CDATA[Backend-Layouts machen Spaß und sind schnell zu implementieren. Wer dadurch auf den Geschmack gekommen ist und überlegt, von Templavoila auf diese Methode zu wechseln, vermisst sicherlich die Möglichkeit, Struktur-Elemente (zwei- oder mehrspaltige Inhaltscontainer) anzulegen. Mit Templavoila hat man sich dafür meist FCEs (Flexible Content Elements) angelegt. Auch die Extension &#8220;multicolumn&#8221; dürfte in diesem Zusammenhang vielen [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3blogger.de/typo3-templates-mit-backend-layouts-und-fluidtemplate-turchen-19/">Backend-Layouts</a> machen Spaß und sind schnell zu implementieren. Wer dadurch auf den Geschmack gekommen ist und überlegt, von Templavoila auf diese Methode zu wechseln, vermisst sicherlich die Möglichkeit, Struktur-Elemente (zwei- oder mehrspaltige Inhaltscontainer) anzulegen. Mit Templavoila hat man sich dafür meist FCEs (Flexible Content Elements) angelegt. Auch die Extension &#8220;multicolumn&#8221; dürfte in diesem Zusammenhang vielen ein Begriff sein. Doch inzwischen gibt es eine Erweiterung für TYPO3, die das Konzept der Backend-Layouts auf Struktur- bzw. Raster-Elemente überträgt: <strong>gridelements</strong>.</p>
<p><span id="more-7378"></span></p>
<p>Man lädt sich also die Erweiterung &#8220;gridelements&#8221; aus dem TER, installiert sie und bindet die &#8220;Statischen Templates&#8221; ein. Danach den System-Ordner, den man als &#8220;Allgemeine Datensatzsammlung&#8221; angegeben hat öffnen und dort einen neuen Datensatz vom Typ &#8220;CE Backend Layout&#8221; anlegen. Die Funktionsweise ist hier die gleiche wie bei den <a href="http://typo3blogger.de/typo3-templates-mit-backend-layouts-und-fluidtemplate-turchen-19/">Backend Layouts</a>. Danach lässt sich das neu angelegte Element auf einer Seite einfügen. Man findet es in der Rubrik &#8220;Raster-Elemente&#8221;. Hat man z. B. ein zweispaltiges Element angelegt, sieht das Backend ungefähr so aus:</p>
<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/gridelement-zweispaltig.png"><img class="alignnone size-full wp-image-7385" title="gridelement-zweispaltig" src="http://typo3blogger.de/wp-content/uploads/2011/12/gridelement-zweispaltig.png" alt="" width="479" height="260" /></a></p>
<p>Nachdem das erfreulicherweise schon alles war, kümmern wir uns um die Ausgabe auf der Webseite. Dazu kann man per Typoscript definieren, wie dieses Element ausgegeben werden soll. Für das zweispaltige Element könnte das so aussehen:</p>

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

<p>Wichtig sind hier die verwendeten Zahlen. Die &#8220;1&#8243; entspricht der ID des angelegten &#8220;gridelements&#8221;. Darin befinden sich die &#8220;columns&#8221;, die anhand ihrer colPos mit einem &#8220;wrap&#8221; versehen werden können. Der &#8220;wrap&#8221; am Ende umschließt das komplette Element. Zusätzliche Elemente können nach dem gleichen Schema hinzugefügt werden.</p>
<p>Selbst wenn man keine Raster-Elemente benötigt, empfiehlt es sich, die Erweiterung <strong>gridelements</strong> zu installieren. Denn man erhält mit dieser Extension auch eine Drag&amp;Drop-Funktionalität für die Inhaltselemente, wie man sie von Templavoila kennt.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/mehrspaltige-struktur-elemente-mit-gridelements-turchen-21/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Manipulationen am TYPO3 Frontend Output automatisch erkennen &#8211; Türchen 20</title>
		<link>http://typo3blogger.de/manipulationen-am-typo3-frontend-output-automatisch-erkennen-turchen-20/</link>
		<comments>http://typo3blogger.de/manipulationen-am-typo3-frontend-output-automatisch-erkennen-turchen-20/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 07:00:10 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7368</guid>
		<description><![CDATA[In vielen Fällen, wo Angreifer versuchen, Schadcode oder einen Conditional Hack in einer Webseite unterzubringen, wird einfach nur die zentrale index.php oder index.html Datei verändert, unabhängig davon, welches CMS oder sonstige Software zum Einsatz kommt. Die Angreifer kommen dabei gar nicht zwingend durch eine Sicherheitslücke in der verwendeten Software ins System sondern oft auch durch [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/CheckMySite.png"><img class="alignright size-full wp-image-7370" title="CheckMySite" src="http://typo3blogger.de/wp-content/uploads/2011/12/CheckMySite.png" alt="" width="250" height="189" /></a>In vielen Fällen, wo Angreifer versuchen, Schadcode oder einen <a title="Die eigene Webseite als Spam Schleuder: der Google Conditional Hack" href="http://typo3blogger.de/die-eigene-webseite-als-spam-schleuder-der-google-conditional-hack/" target="_blank">Conditional Hack</a> in einer Webseite unterzubringen, wird einfach nur die zentrale index.php oder index.html Datei verändert, unabhängig davon, welches CMS oder sonstige Software zum Einsatz kommt. Die Angreifer kommen dabei gar nicht zwingend durch eine Sicherheitslücke in der verwendeten Software ins System sondern oft auch durch einen FTP Account, dessen Zugangsdaten über einen Trojaner abgegriffen wurde.</p>
<p>Um die mögliche Manipulation der zentralen index.php Datei bei TYPO3 zu entdecken ist die Extension <a title="CheckMySite" href="http://typo3.org/extensions/repository/view/checkmysite/current/" target="_blank">CheckMySite</a> sehr hilfreich.</p>
<p><span id="more-7368"></span></p>
<p>Die Extension überprüft die index.php bei jedem Seitenaufruf auf potenziellen Schadcode indem ca. 60 Regeln abgearbeitet werden. Auf die Prüfung einer zuvor hinterlegten Signatur wurde bewußt verzichtet, damit nicht bei jedem TYPO3 Update neue Signaturen erzeugt werden müssen. Das Regelset bildet alle momentan bekannten Angriffszenarien ab und kann bei Bedarf später erweitert werden.</p>
<p>Wird potenzielle Schadcode entdeckt, wird eine Mail an eine vorher definierte Adresse geschickt. Die Nachricht wird in regelmäßigen Abständen erneut verschickt, damit sie nicht untergeht. Der Zeitraum kann frei definiert werden.</p>
<p>Außerdem wird der Frontend Output von TYPO3 unterbunden und stattdessen ein frei wählbarer Text, wie zum Beispiel &#8220;Webseite wegen Wartungsarbeiten nicht erreichbar&#8221; angezeigt oder auf eine andere URL (z.B. eine statische Wartungsseite) umgeleitet. Dadurch wird sichergestellt, dass sich der Schadcode nicht weiter verbeiten oder von Google indiziert werden kann.</p>
<p>Nachdem der Schadcode entfernt wurde, läuft die Webseite wieder wie gewohnt.</p>
<p>Laut Extension Autor verzögert sich der Seitenaufbau durch die Überprüfung um etwa 20 ms. Für Seiten mit normalem Traffic dürfte das keine Rolle spielen, bei größeren Webseiten oder Seiten mit Lastspitzen sollte die Serverlast aber im Auge behalten werden.</p>
<p>Die aktuell im TER verfügbare Version 2.0.3 von CheckMySite setzt PHP 5.3 voraus. Durch die Änderung einer Zeile Code läuft sie aber auch problemlos in PHP 5.2.<br />
Dazu muss in der Datei typo3conf/ext/checkmysite/lib/class.checkfile.php das Code Schnipsel</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span>__DIR__<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/check.db'</span><span style="color: #339933;">;</span></pre></div></div>

<p>durch</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span>t3lib_extMgm<span style="color: #339933;">::</span><span style="color: #004000;">extPath</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'checkmysite'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/check.db'</span><span style="color: #339933;">;</span></pre></div></div>

<p>ersetzt werden.</p>
<p>Andernfalls wird das TYPO3 Protokoll mit Fehlermeldungen dieser Art überschwemmt:</p>
<pre>PHP Warning: touch(): Unable to create file /check.db because Permission denied in /pfad/zu/typo3conf/ext/checkmysite/lib/class.checkfile.php line 228</pre>
<p>Außerdem wird dann bei jedem Seitenaufruf eine Mail verschickt und nicht nur ein mal pro eingestelltem Intervall. Bei regem Traffic kann das eine Mailbox schnell sprengen.</p>
<p>Ein Update der Extension, die auch mit PHP 5.2 kompatibel ist, wurde bereits in Aussicht gestellt.</p>
<h2>Installation</h2>
<p>Die Installation ist super einfach: Extension über den Extension Manager aus dem TER downloaden und installieren. Danach Empfänger und Absender Adresse eingeben. Auch mehrere Empfänger sind möglich. Außerdem kann der Text, der bei der Entdeckung von Schadcode angezeigt wird, angepasst werden oder eine Weiterleitungs Adresse definiert werden. Zuletzt wird noch der Intervall der Benachrichtigungsmail festgelegt. Standard ist eine halbe Stunde. Nach dem Speichern ist die Installation abgeschlossen und die Webseite wird überwacht.</p>
<h2>Fazit</h2>
<p>Durch die Extension CheckMySite kann eine Webseite sehr leicht sicherer gemacht werden. Man darf sich aber nicht der Illusion hingeben, dadurch unverwundbar zu sein. Ein weiteres beliebtes Angriffsziel für Manipulationen ist zum Beispiel die .htaccess Datei, die nicht überwacht wird. Updates des TYPO3 Cores und aller Extensions sollten also immer Priorität haben.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/manipulationen-am-typo3-frontend-output-automatisch-erkennen-turchen-20/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>HTML5 Boilerplate mit TYPO3 – Türchen 17</title>
		<link>http://typo3blogger.de/html5-boilerplate-mit-typo3-turchen-17/</link>
		<comments>http://typo3blogger.de/html5-boilerplate-mit-typo3-turchen-17/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 07:00:02 +0000</pubDate>
		<dc:creator>Tobias Liegl</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7260</guid>
		<description><![CDATA[Wer sich mit Frontend-Entwicklung beschäftigt, stolpert früher oder später über HTML5 Boilerplate und die Konzepte die damit einhergehen. Der auffälligste Teil beim Betrachten des Quellcodes einer mit HTML5 Boilerplate umgesetzten Webseite, dürften die Conditional Comments um den &#60;html&#62; Tag sein. Das sieht dann ungefähr so aus: &#60;!--[if lt IE 7]&#62; &#60;html lang="de" class="no-js ie6"&#62; &#60;![endif]--&#62; [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Wer sich mit Frontend-Entwicklung beschäftigt, stolpert früher oder später über <a href="http://html5boilerplate.com/" target="_blank">HTML5 Boilerplate</a> und die Konzepte die damit einhergehen. Der auffälligste Teil beim Betrachten des Quellcodes einer mit HTML5 Boilerplate umgesetzten Webseite, dürften die Conditional Comments um den &lt;html&gt; Tag sein. Das sieht dann ungefähr so aus:</p>
<pre>&lt;!--[if lt IE 7]&gt; &lt;html lang="de" class="no-js ie6"&gt; &lt;![endif]--&gt;
&lt;!--[if IE 7]&gt; &lt;html lang="de" class="no-js ie7"&gt; &lt;![endif]--&gt;
&lt;!--[if IE 8]&gt; &lt;html lang="de" class="no-js ie8"&gt; &lt;![endif]--&gt;
&lt;!--[if gt IE 8]&gt;&lt;!--&gt; &lt;html lang="de" class="no-js"&gt; &lt;!--&lt;![endif]--&gt;</pre>
<p><span id="more-7260"></span></p>
<p>Je nach eingesetztem Browser hat man also zusätzliche CSS-Klassen im &lt;html&gt; Tag, anhand derer man seine Seite für verschiedene IE-Browser-Versionen anpassen kann. Dieser Ansatz hat den Vorteil, dass man alle CSS-Angaben in einer CSS-Datei machen kann und dazu keine CSS-Hacks benötigt, um die unterschiedlichen IEs anzusprechen. Und da das alles in einer Datei machbar ist, spart man sich auch noch ein paar HTTP-Requests &#8211; im Vergleich zur Einbindung von versionsspezifischen Stylesheets per Conditional Comment.</p>
<h3>Aber wie bekommt man das jetzt in eine TYPO3-Seite?</h3>
<p>Nur mit der Angabe von &#8220;config.doctype = html5&#8243; ist es hier natürlich nicht getan. Es gibt meines Wissens auch keine Standard-Typoscript-Anweisung, mit der man den obigen Code in die Webseite bekommt. Aber für solche Fälle gibt es ja Extensions! Und hier hilft die Extension &#8220;<a href="http://typo3.org/extensions/repository/view/html5boilerplate/current/" target="_blank">html5boilerplate</a>&#8220;. Nach der Installation dieser Extension lässt sich der obige Code wie folgt einfügen:</p>
<pre>config.html5boilerplate {
 htmlTag (
    &lt;!--[if lt IE 7]&gt; &lt;html lang="de" class="no-js ie6"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 7]&gt; &lt;html lang="de" class="no-js ie7"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 8]&gt; &lt;html lang="de" class="no-js ie8"&gt; &lt;![endif]--&gt;
    &lt;!--[if gt IE 8]&gt;&lt;!--&gt; &lt;html lang="de" class="no-js"&gt; &lt;!--&lt;![endif]--&gt;
  )
}</pre>
<p>Somit hätte man den kompliziertesten Teil der <strong>HTML5 Boilerplate</strong> in TYPO3 integriert. Alles andere lässt sich im Prinzip mit hinlänglich bekannten TYPO3-Boardmitteln erledigen.</p>
<p>Die Extension liefert dazu auch Statische Templates (Typoscript) zum Einbinden mit, in denen neben dem obigen Snippet auch viele andere Anweisungen definiert sind. Es wird z. B. <a href="http://www.modernizr.com/" target="_blank">Modernizr</a> im &lt;head&gt; eingebunden und alle anderen Skripte per &#8220;page.includeJSFooter&#8221; in den Footer geladen. Es lohnt sich also, einen Blick in die TS-Templates zu werfen, selbst wenn man die Extension eigtl. nur für das Setzen des HTML-Tags verwenden möchte.</p>
<p>Einer Webseite nach HTML5 Boilerplate Prinzipien steht dank dieser Extension nichts im Wege.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/html5-boilerplate-mit-typo3-turchen-17/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>RealURL Config für mehrere Domains &#8211; Türchen 16</title>
		<link>http://typo3blogger.de/realurl-config-fur-mehrere-domains/</link>
		<comments>http://typo3blogger.de/realurl-config-fur-mehrere-domains/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 23:23:17 +0000</pubDate>
		<dc:creator>Tim Lochmüller</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=7242</guid>
		<description><![CDATA[Auf dem BarCamp in Berlin wurde eine Multi-Domain Konfiguration mit RealURL vorgestellt. Problem war, dass die einzelnen Domains unterschiedliche Startpunkte hatten. Nachteil der vorgestellten Lösung war, dass zwar für jede Anfrage die passende rootpage_id genommen wurde, aber man keine individuellen Änderungen vornehmen konnte. Mit diesem Scheduler Task ist dies anders. Der Scheduler Task legt parallel [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Auf dem BarCamp in Berlin wurde eine Multi-Domain Konfiguration mit RealURL vorgestellt. Problem war, dass die einzelnen Domains unterschiedliche Startpunkte hatten. Nachteil der vorgestellten Lösung war, dass zwar für jede Anfrage die passende rootpage_id genommen wurde, aber man keine individuellen Änderungen vornehmen konnte. Mit diesem Scheduler Task ist dies anders.</p>
<p><span id="more-7242"></span>Der Scheduler Task legt parallel zur &#8220;localconf.php&#8221; eine &#8220;localhost_AutoRealURLDomainConfiguration.php&#8221;-Datei ab. In dieser werden automatisch (im Intervall des Scheduler Tasks) alle Domains, welche keine Weiterleitungen sind, mit der passenden rootpage_id konfiguriert (Achtung: Syntax-Highlightig funktioniert nicht richtig).</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">class Tx_Extension_Scheduler_RealUrlDomainConfiguration extends tx_scheduler_Task {
&nbsp;
    public function execute() {
        $nl = &quot;\n&quot;;
        $phpCode = '<span style="color: #000000; font-weight: bold;">&lt;?php</span><span style="color: #0000ff;">'.$nl;
        $res = $GLOBALS['</span>TYPO3_DB<span style="color: #0000ff;">']-&gt;exec_SELECTquery('</span><span style="color: #339933;">*</span><span style="color: #0000ff;">','</span>sys_domain<span style="color: #0000ff;">','</span>hidden<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span> AND redirectTo<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #0000ff;">','</span><span style="color: #0000ff;">','</span><span style="color: #0000ff;">',1000);
        while($row = $GLOBALS['</span>TYPO3_DB<span style="color: #0000ff;">']-&gt;sql_fetch_assoc($res)){
            $phpCode .= '</span><span style="color: #000088;">$TYPO3_CONF_VARS</span><span style="color: #009900;">&#91;</span>\<span style="color: #0000ff;">'EXTCONF\'][\'realurl\'][\''</span><span style="color: #339933;">.</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'domainName'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'\'] = $TYPO3_CONF_VARS[\'EXTCONF\'][\'realurl\'][\'_DEFAULT\'];'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nl</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$phpCode</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'$TYPO3_CONF_VARS[\'EXTCONF\'][\'realurl\'][\''</span><span style="color: #339933;">.</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'domainName'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'\'][\'pagePath\'][\'rootpage_id\'] = '</span><span style="color: #339933;">.</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">';'</span><span style="color: #339933;">.</span><span style="color: #000088;">$nl</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$phpCode</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'?&gt;'</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// write</span>
        <span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> PATH_site<span style="color: #339933;">.</span><span style="color: #0000ff;">'typo3conf/localhost_AutoRealURLDomainConfiguration.php'</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$phpCode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Der Aufruf der neuen RealURL-Konfigurationdatei findet dann HINTER euren normalen RealURL Konfiguration (in der &#8220;localconf.php&#8221;) statt.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// normale RealURL Config hier (_DEFAULT)</span>
&nbsp;
<span style="color: #000088;">$autoRealConf</span> <span style="color: #339933;">=</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/localhost_AutoRealURLDomainConfiguration.php'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$autoRealConf</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$autoRealConf</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Besonderheiten für Domains hier (Domain)</span></pre></div></div>

<p>Vorteil dieser Lösung ist, dass man im Backendmodul &#8220;Konfiguration&#8221; alle Domains in der RealURL Konfiguration wiederfindet und auch die Änderungen passend sichtbar sind. Habt ihr eine andere, vielleicht leichtere/bessere Lösung?</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/realurl-config-fur-mehrere-domains/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Newsletteranmeldung mit Formhandler &#8211; Türchen 14</title>
		<link>http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/</link>
		<comments>http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 07:00:31 +0000</pubDate>
		<dc:creator>Stefan Frömken</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[TypoScript]]></category>

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

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

<h5>newsletter.xml</h5>

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

<h5>newsletter.html</h5>

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

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

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

<h5>Die eine Zeile TypoScript</h5>

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

<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/newsletteranmeldung-mit-formhandler-turchen-14/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TYPO3 Webseiten mit Caretaker überwachen &#8211; Türchen 6</title>
		<link>http://typo3blogger.de/typo3-webseiten-mit-caretaker-uberwachen/</link>
		<comments>http://typo3blogger.de/typo3-webseiten-mit-caretaker-uberwachen/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 07:00:00 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6833</guid>
		<description><![CDATA[Sobald man mehr als ein Dutzend TYPO3 Webseiten betreibt, wird man recht schnell den Wunsch verspüren, diese zentral überwachen zu können. Hier kommt die TYPO3 Extension Caretaker ins Spiel, die von einem zentralen Server aus beliebig viele TYPO3 Instanzen überwachen kann. Dabei wird nicht nur die Erreichbarkeit der Webseite geprüft, sondern auch die Sicherheit der [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker_logo.png"><img class="alignright size-full wp-image-7048" title="caretaker_logo" src="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker_logo.png" alt="" width="202" height="63" /></a>Sobald man mehr als ein Dutzend TYPO3 Webseiten betreibt, wird man recht schnell den Wunsch verspüren, diese zentral überwachen zu können. Hier kommt die TYPO3 Extension Caretaker ins Spiel, die von einem zentralen Server aus beliebig viele TYPO3 Instanzen überwachen kann. Dabei wird nicht nur die Erreichbarkeit der Webseite geprüft, sondern auch die Sicherheit der verwendeten TYPO3 Version und Extensions.</p>
<p><span id="more-6833"></span>Wenn eine neue TYPO3 Webseite fertig und live ist, würde man sich gerne entspannt zurücklehnen und die Webseite einfach mal laufen lassen. Aber so eine TYPO3 Installation ist ein komplexes Gebilde aus der verwendeten TYPO3 Version, Extensions aus dem TYPO3 Extension Repository und den eigenen Einstellungen. Deswegen ist es gar nicht so einfach, den Gesundheitszustand einer TYPO3 Instanz zu überwachen. Mit einer Überwachungssoftware wie Nagios kann man hauptsächlich den Zustand des Servers und der Hardware überwachen. Aber für die Innereien einer TYPO3 Instanz gibt es bislang noch keine anständige Lösung. Zwei Firmen aus Kiel und Hamburg haben sich zusammen getan und eine flexible und leistungsfähige Lösung geschaffen, die diese Anforderungen erfüllen soll:</p>
<ol>
<li>zentrales Testen und Überwachen von entfernten TYPO3 Instanzen, Extensions und Setups</li>
<li>Integration Tests (auf der Basis von Selenium)</li>
<li>Flexible und komfortable Verwaltung über TYPO3 Datensätze</li>
<li>Erweiterbarkeit des gesamten Systems</li>
</ol>
<h2>Caretaker</h2>
<p><a href="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker01.png"><img class="alignright size-full wp-image-7051" title="caretaker01" src="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker01.png" alt="" width="262" height="167" /></a>Herausgekommen ist der Caretaker, eine TYPO3 basierte Lösung. Hier eine kleine Auswahl der Features und Möglichkeiten:</p>
<ul>
<li>Prüfen der Erreichbarkeit (HTTP Status Code / Ping)</li>
<li>TYPO3 Core Version prüfen</li>
<li>unsichere Extensions finden</li>
<li>gezielte Prüfung einer Extension auf Versionsnummer</li>
<li>Blacklist für Benutzernamen und Passwörter</li>
<li>TYPO3 Core auf nicht autorisierte Änderungen am Code prüfen</li>
<li>(Nicht-)Existenz von Dateien prüfen,  z.B. ENABLE_INSTALL_TOOL</li>
<li>TYPO3_CONF_VARS prüfen,  z.B. auf Default Install Tool Passwort</li>
<li>verfügbare Extension Updates anzeigen</li>
<li>Benachrichtigungssytem</li>
<li>Integration von eigenen Test Services</li>
</ul>
<h2>Wie funktioniert der Caretaker?</h2>
<p>Das Caretaker Basis System wird zum einen auf einem zentralen Server als TYPO3 Extension installiert. Dazu kommt dann die Erweiterung caretaker_instance, die die eigentlichen Tests enthält. caretaker_instance kommuniziert über eine mit RSA verschlüsselte Verbindung mit den einzelnen TYPO3 Instanzen. Zusätzlich gibt es noch die Möglichkeit, per SNMP mit Instanzen zu kommunizieren.</p>
<div id="attachment_7059" class="wp-caption aligncenter" style="width: 410px"><a href="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker021.png"><img class="size-full wp-image-7059" title="caretaker02" src="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker021.png" alt="" width="400" height="387" /></a><p class="wp-caption-text">Funktionsweise von Caretaker</p></div>
<p>Der Caretaker Server kann dabei lediglich lesend auf die einzelnen TYPO3 Instanzen zugreifen. Updates können über Caretaker nicht automatisiert eingespielt werden, da die Gefahr zu groß ist, eine TYPO3 Instanz dadurch funktionsunfähig zu machen.</p>
<p>Die Informationen über die neuesten Änderungen bei TYPO3 Extensions bezieht Caretaker über einen Scheduler Task, der regelmäßig die Liste der Extensions aus dem TER bezieht. Dieser Scheduler Task ist seit TYPO3 4.5 Bestandteil von TYPO3. Die jeweils neuesten TYPO3 Versionsnummern werden aus einem <a href="http://sourceforge.net/api/file/index/project-id/20391/mtime/desc/limit/40/rss" target="_blank">RSS Feed von Sourceforge</a> ermittelt. Änderungen am TYPO3 Core werden durch Fingerprints erkannt. Die Extension caretaker_integrity liefert einige Fingerprints bereits mit. Für neue TYPO3 Versionen können die Fingerprints über einen Cronjob in caretaker_integrity generiert werden.</p>
<h2>Caretaker Backend</h2>
<p>Im TYPO3 Backend gibt es nach der Installation von Caretaker ein neues Modul, in dem die einzelnen Instanzen gepflegt werden können. Um die Übersichtlichkeit zu erhöhen, können TYPO3 Instanzen in Instanzgruppen zusammengefasst werden. Außerdem wird durch Farben (rot, gelb, grün) der Zustand der einzelnen Instanzen bzw. Tests angezeigt. Im TYPO3 Backend werden zudem die Tests und Testgruppen gepflegt und individuelle Einstellungen gemacht.</p>
<div id="attachment_7061" class="wp-caption aligncenter" style="width: 460px"><a href="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker03.png"><img class="size-full wp-image-7061" title="caretaker03" src="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker03.png" alt="" width="450" height="285" /></a><p class="wp-caption-text">Caretaker Modul im TYPO3 Backend</p></div>
<h2>Die wichtigsten Tests im Überblick</h2>
<p>Ein paar der Tests, die ich in meiner Caretaker Installation eingerichtet habe, möchte ich im Folgenden kurz vorstellen:</p>
<ul>
<li><strong>unsichere Extensions</strong><br />
Das TYPO3 Security Team markiert unsichere Extensions in der Extension Liste. Sobald der Caretaker feststellt, dass eine bestimmte Version einer Extension als unsicher markiert ist, wird Alarm geschlagen</li>
<li><strong>unsichere TYPO3 Version</strong><br />
In der Testkonfiguration kann festgelegt werden, welche Versionsnummer mindestens erfüllt sein muss. So kann schnell festgestellt werden, ob unsichere TYPO3 Versionen verwendet werden</li>
<li><strong>Source Integrity</strong><br />
Über die eingangs bereits erwähnten Fingerprints werden die Dateien des Core mit den Fingerprints verglichen. Dadurch können unerwünschte Änderungen an Core Dateien sofort erkannt werden</li>
<li><strong>Datei &#8220;ENABLE_INSTALL_TOOL&#8221; vorhanden<br />
</strong>Hier wird geprüft, ob die Datei in typo3conf vorhanden ist und jünger als 2 Stunden ist<strong><br />
</strong></li>
<li><strong>Standard Install Tool Password &#8220;joh316&#8243; ist aktiv<br />
</strong>TYPO3 weist zwar darauf hin, wenn das Standard Password noch aktiv ist, aber ich lasse das zusätzlich durch den Caretaker prüfen</li>
<li><strong>Prüfung der BE User Accounts auf verbotene Passwörter<br />
</strong>Prüft alle Backend Accounts auf verbotene Passwörter wie &#8220;password&#8221;, &#8220;12345678&#8243;, etc.<strong><br />
</strong></li>
<li><strong>Deprecation Log aktiv<br />
</strong>Prüft, ob das Deprecation Log noch aktiv ist<strong><br />
</strong></li>
<li><strong>Extension Updates verfügbar<br />
</strong>Dieser Test zeigt alle verfügbaren Extension Updates an<strong><br />
</strong></li>
<li><strong>HTTP / Ping Test<br />
</strong>Prüft die Erreichbarkeit der Webseite per Ping und wertet zusätzlich noch den Status Code einer Anfrage per HTTP aus<strong><br />
</strong></li>
</ul>
<h2>Weitere Test Services:</h2>
<ul>
<li>Logfile Analyzer Service</li>
<li>Redmine Testcase</li>
<li>Selenium Testcase</li>
</ul>
<h2>Caretaker Frontend</h2>
<p>Zusätzlich zum Backend bietet Caretaker auch eine Frontend Ausgabe der Test Ergebnisse. Diese Ausgabe kann zum Beispiel Kunden zugänglich gemacht werden.</p>
<div id="attachment_7068" class="wp-caption aligncenter" style="width: 460px"><a href="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker04.png"><img class="size-full wp-image-7068" title="caretaker04" src="http://typo3blogger.de/wp-content/uploads/2011/12/caretaker04.png" alt="" width="450" height="451" /></a><p class="wp-caption-text">Caretaker Frontend Ausgabe</p></div>
<h2 style="text-align: left;">Benachrichtigungen</h2>
<p>Caretaker liefer ein simples und ein erweitertes Benachrichtigungssystem per Mail gleich mit. Für das erweiterte Benachrichtigungssystem ist aber leider noch keine Dokumentation verfügbar. Tobias Liebig, einer der Caretaker Entwickler, hat aber bereits einen Blog Eintrag mit einer Anleitung <a href="https://twitter.com/#!/etobi/status/141311427955789824" target="_blank">angekündigt</a>!</p>
<h2 style="text-align: left;">Systemvoraussetzungen für den Einsatz von Caretaker</h2>
<p style="text-align: left;">Die TYPO3 Instanz mit dem Caretaker Server benötigt PHP 5.2 mit OpenSSL Unterstützung und TYPO3 4.3 oder höher.</p>
<p style="text-align: left;">Für die Instanzen reicht TYPO3 4.o oder höher, allerdings wird auch hier PHP 5.2 benötigt.</p>
<h2 style="text-align: left;">Download</h2>
<p style="text-align: left;">Caretaker ist zwar grundsätzlich auch im TER verfügbar, allerdings ist die veröffentlichte Version mehr als ein Jahr alt und hat sich seit dem schon wieder stark weiter entwickelt.</p>
<p style="text-align: left;">Es empfiehlt sich deshalb, den aktuellen Stand aus dem <a href="https://svn.typo3.org/TYPO3v4/Extensions/caretaker" target="_blank">Subversion Repository</a> auszuchecken.</p>
<h2 style="text-align: left;">Links zum Thema</h2>
<ul>
<li><strong>Extensions im TER:</strong></li>
<ul>
<li><a href="http://typo3.org/extensions/repository/view/caretaker/current/" target="_blank">typo3.org/extensions/repository/view/caretaker/current/</a></li>
<li><a href="http://typo3.org/extensions/repository/view/caretaker_instance/current/" target="_blank">typo3.org/extensions/repository/view/caretaker_instance/current/</a></li>
</ul>
<li><strong>Forge:</strong></li>
<ul>
<li><a href="http://forge.typo3.org/projects/extension-caretaker" target="_blank">forge.typo3.org/projects/extension-caretaker</a></li>
<li>SVN: <a href="https://svn.typo3.org/TYPO3v4/Extensions/caretaker" target="_blank">https://svn.typo3.org/TYPO3v4/Extensions/caretaker</a></li>
<li>Dokumentation: <a href="http://https://svn.typo3.org/TYPO3v4/Extensions/caretaker" target="_blank">forge.typo3.org/projects/extension-caretaker/wiki</a></li>
</ul>
<li><strong>Webseite:</strong></li>
<ul>
<li><a href="http://www.typo3-caretaker.org" target="_blank">typo3-caretaker.org</a></li>
</ul>
<li><strong>Mailingliste:</strong></li>
<ul>
<li><a href="http://lists.typo3.org/pipermail/typo3-project-caretaker/" target="_blank">http://lists.typo3.org/pipermail/typo3-project-caretaker/</a></li>
</ul>
<li><strong>Twitter:</strong></li>
<ul>
<li><a href="http://twitter.com/typo3_caretaker" target="_blank">@typo3_caretaker</a></li>
</ul>
</ul>
<h2>Support</h2>
<p>Unterstützung durch die Entwickler und andere User bekommt man über die oben genannte Mailingliste.</p>
<h2>Caretaker Entwicklung unterstützen</h2>
<p>Die an Caretaker beteiligten Entwickler und Firmen haben eine Menge Zeit und Geld in das Projekt investiert. Für weitere Features werden noch <a href="http://www.typo3-caretaker.org/index.php?id=25" target="_blank">Spenden gesucht</a>, um die Entwicklung zu finanzieren.</p>
<p>Auf meiner persönlichen Wunschliste steht vor allem die Möglichkeit, im Caretaker Backend Abfragen dieser Art zu starten: Filter alle Instanzen raus, die die Extension XYZ in Version 1.2.3 nutzen. Abfragen dieser Art sind bislang leider nicht möglich und das ist meiner Meinung nach das größte Manko von Caretaker, denn wenn z.B. das Security Team ein  Security Bulletin raus gibt, muss ich alle Instanzen (und ich verwalte mit Caretaker mittlerweile verdammt viele) von Hand kontrollieren.</p>
<p>Außerdem würde ich mir häufigere TER Releases wünschen, denn das würde sicher zur vermehrten Nutzung von Caretaker beitragen. Die aktuell im TER verfügbare Version ist soweit ich das in Erinnerung habe, nur bis TYPO3 4.4 kompatibel. Öftere Updates wären auch für die Extension caretaker_integrity mit den Fingerprints nötig. Der mitgelieferte Cronjob läuft zumindest bei mir noch nicht so ganz rund und es ist bei jedem TYPO3 Release Handarbeit angesagt, um die neuen Fingerprints zu erzeugen. Auch fehlen Fingerprints von vielen älteren TYPO3 Versionen, die mit dem aktuellen Cronjob leider nicht erzeugt werden können.</p>
<h2>Fazit</h2>
<p>Caretaker ist ein super System, um viele TYPO3 Instanzen zu überwachen. Zum aktuellen Zeitpunkt muss man beim Einsatz von Caretaker aber noch an diversen Stellen selber Hand anlegen und sich zum Beispiel die richtige Dokumentation zusammen suchen.</p>
<p>Gegenüber anderen auf TYPO3 spezialisieren Monitoring Systemen wie zum Beispiel <a href="http://t3manager.com" target="_blank">t3manager</a>, hat Caretaker aber den entscheidenden Vorteil, dass man das System auf einer eigenen Maschine installieren kann und die Daten über seine TYPO3 Instanzen nicht in fremde Hände geben muss. Außerdem kann Caretaker flexibel an eigene Wünsche angepast werden.</p>
<p>Bei genügend Interesse schreibe ich demächst einen weiteren Artikel, die die Installation und Einrichtung von Caretaker genauer beschreibt. Bitte das Interesse in den Kommentaren bekunden.</p>
<p>Mich würde jetzt noch interessieren, wer den Caretaker bereits einsetzt und welche Erfahrungen gemacht wurden.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/typo3-webseiten-mit-caretaker-uberwachen/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Formhandler 1.0 Release</title>
		<link>http://typo3blogger.de/formhandler-1-0-release/</link>
		<comments>http://typo3blogger.de/formhandler-1-0-release/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 20:47:59 +0000</pubDate>
		<dc:creator>Tim Lochmüller</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6962</guid>
		<description><![CDATA[Heute wurde der Formhandler in der Version 1.0 veröffentlicht (News). Die Extension ist eine Alternative zu der neuen Form Extension in TYPO3 4.6 und scheint auch einen enormen Umfang zu haben. Unter anderem stehen Data Exports, Multistep Forms, Error Checks und Security auf der Feature Liste. Parallel zum Release ist die neue Webseite typo3-formhandler.com online [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Heute wurde der Formhandler in der Version 1.0 veröffentlicht (<a href="http://forge.typo3.org/news/501" target="_blank">News</a>). Die Extension ist eine Alternative zu der neuen Form Extension in TYPO3 4.6 und scheint auch einen enormen Umfang zu haben. Unter anderem stehen Data Exports, Multistep Forms, Error Checks und Security auf der Feature Liste. Parallel zum Release ist die neue Webseite <a href="http://www.typo3-formhandler.com/" target="_blank">typo3-formhandler.com</a> online gegangen. Viel Spaß beim stöbern und probieren&#8230;</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/formhandler-1-0-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sicherheitslücke in der Extension t3blog</title>
		<link>http://typo3blogger.de/sicherheitslucke-in-der-extension-t3blog/</link>
		<comments>http://typo3blogger.de/sicherheitslucke-in-der-extension-t3blog/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 08:52:29 +0000</pubDate>
		<dc:creator>Peter Kraume</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6628</guid>
		<description><![CDATA[Das TYPO3 Security Team hat das Security Bulletin TYPO3-EXT-SA-2011-011 zur Extension t3blog herausgegeben. Demnach besteht in der bekannten Blog Extension eine Cross-Site Scripting Schwachstelle. Eine aktualisierte Version 1.1.2 steht im TER zum Download bereit. Ein Update ist wie immer angeraten! ------------------------------------------------------Dies ist ein Post vom TYPO3 Blog typo3blogger.de!<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Das TYPO3 Security Team hat das <a href="http://typo3.org/teams/security/security-bulletins/typo3-extensions/typo3-ext-sa-2011-013/" target="_blank">Security Bulletin TYPO3-EXT-SA-2011-011</a> zur Extension t3blog herausgegeben. Demnach besteht in der bekannten Blog Extension eine Cross-Site Scripting Schwachstelle. Eine aktualisierte Version <a href="http://http//typo3.org/extensions/repository/view/t3blog/1.1.2/" target="_blank">1.1.2</a> steht im TER zum Download bereit. Ein Update ist wie immer angeraten!</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/sicherheitslucke-in-der-extension-t3blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hilfetexte in Extension einbinden &#8211; Context Sensitive Help (CSH)</title>
		<link>http://typo3blogger.de/hilfetexte-in-extension-einbinden-context-sensitive-help-csh/</link>
		<comments>http://typo3blogger.de/hilfetexte-in-extension-einbinden-context-sensitive-help-csh/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 17:57:54 +0000</pubDate>
		<dc:creator>Christian Wolfram</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[myExt]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6606</guid>
		<description><![CDATA[Um Redakteuren das Leben mit TYPO3 zu vereinfachen bietet es sich an, in selbst entwickelten Extentions Hilfetexte zu den Eingabefeldern zu verfassen. Die Feldbezeichnung selbst, sollte schon Aussagekräftig genug sein, allerdings kann man an dieser Stelle nicht immer ausreichend Informationen hinerlassen. Um Context Sensitive Help nun aktivieren zu können, sind 2 Schritte nötig. Es muss [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Um Redakteuren das Leben mit TYPO3 zu vereinfachen bietet es sich an, in selbst entwickelten Extentions Hilfetexte zu den Eingabefeldern zu verfassen. Die Feldbezeichnung selbst, sollte schon Aussagekräftig genug sein, allerdings kann man an dieser Stelle nicht immer ausreichend Informationen hinerlassen.</p>
<p><span id="more-6606"></span>Um Context Sensitive Help nun aktivieren zu können, sind 2 Schritte nötig.</pre>
<ol>
<li>Es muss eine entsprechende Datei mit den Hilfetexten erstellen werden</li>
<li>Die Datei ext_tables.php der Extension muss modifiziert bzw. erweitert werden</li>
</ol>
<p>Im Root-Verzeichnis der Extension erstellt man sich eine XML-Datei oder kopiert sich die locallang.xml und benennt diese in "locallang_csh_ExtensionKey_DBTabelle.xml" um. In diese XML-Datei werden wie gewohnt die verschiedenen Übersetzungen der Sprachen angelegt. Lediglich die META-Angabe unterscheidet sich und sollte in etwa wie folgt aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;array&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>CSH for your own table.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>CSH<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;csh_table<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>tx_meineExtension_DBTabelle<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/csh_table<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/meta<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Der Index der Label-Tags setzt sich aus dem Tabellenfeld und ".description" zusammen, z.B.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label</span> <span style="color: #000066;">index</span>=<span style="color: #ff0000;">&quot;subtitle.description&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Eine Beschreibung für das Beschreibungsfeld.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Im zweiten Schritt muss die XML-Datei TYPO3 bekannt gemacht werden und dies erfolgt in der Datei ext_tables.php (ebenfalls im Root-Verzeichnis der Extension). Hier wird nun die folgende Zeile (bei mir am Ende der Datei) eingefügt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">t3lib_extMgm<span style="color: #339933;">::</span><span style="color: #004000;">addLLrefForTCAdescr</span><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'tx_meineExtension_DBTabelle'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'EXT:ExtensionKey/locallang_csh_ExtensionKey_DBTabelle.xml'</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Danach werden die Hilfetexte beim überfahren der Feldbeschriftung mit der Maus nachgeladen. Ich persönlich finde es nicht gerade praktisch, dass es keinen Hinweis in Form eines Icons mehr gibt. Dadurch muss man immer Raten hinter welcher Feldbezeichnung vll. auch eine Beschreibung verborgen ist.</p>
<p>Die genannten 2 Schritte kann man nun für weitere DB-Tabellen wiederholen und somit für jedes Eingabefeld eine entsprechende Beschreibung einbinden.</p>
<p>P.S.: Wer bereits mit Extbase programmiert, muss sich darum nicht mehr kümmern, sofern mit dem Extension Builder gearbeitet wird. Dieser erstellt die CSH-Dateien bereits beim anlegen der Extension unter /Resources/Private/Language/. Insofern braucht man nur noch die Beschreibungstexte tippen und hineinkopieren.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/hilfetexte-in-extension-einbinden-context-sensitive-help-csh/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Sicherheitslücke in phpmyadmin</title>
		<link>http://typo3blogger.de/sicherheitslucke-in-phpmyadmin-2/</link>
		<comments>http://typo3blogger.de/sicherheitslucke-in-phpmyadmin-2/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 19:12:28 +0000</pubDate>
		<dc:creator>Tim Lochmüller</dc:creator>
				<category><![CDATA[Extension]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6565</guid>
		<description><![CDATA[Erneut wurde eine Sicherheitslücke in phpmyadmin entdeckt. Die &#8220;mittel&#8221; eingestufte Lücke, ist eine von vielen in den letzten Wochen. Ich denke ich muss nicht mehr erwähnen, dass phpmyadmin in Live Systemen nicht installiert sein sollte. Dann kann man sich getrost zurück lehnen und muss nicht die Update-Prozedur alle paar Wochen durchspielen. Mehr Informationen zum Leck [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Erneut wurde eine Sicherheitslücke in phpmyadmin entdeckt. Die &#8220;mittel&#8221; eingestufte Lücke, ist eine von vielen in den letzten Wochen. Ich denke ich muss nicht mehr erwähnen, dass phpmyadmin in Live Systemen nicht installiert sein sollte. Dann kann man sich getrost zurück lehnen und muss nicht die Update-Prozedur alle paar Wochen durchspielen. Mehr Informationen zum Leck gibt es <a href="http://typo3.org/teams/security/security-bulletins/typo3-extensions/typo3-ext-sa-2011-011/" target="_blank">hier</a>.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/sicherheitslucke-in-phpmyadmin-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension socials veröffentlicht</title>
		<link>http://typo3blogger.de/extension-socials-veroffentlicht/</link>
		<comments>http://typo3blogger.de/extension-socials-veroffentlicht/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 04:21:08 +0000</pubDate>
		<dc:creator>Georg Ringer</dc:creator>
				<category><![CDATA[ExtBase/Fluid]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[myExt]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6546</guid>
		<description><![CDATA[Gestern habe ich eine weitere Extension namens &#8220;socials&#8221; im TER veröffentlicht. Diese soll als Sammeltopf für alle Belange im Socials-Sektor dienen. Ich gebe zu, ich habe nicht jede Extension des TER ausprobiert, die Facebook, Twitter &#38; Co in ihrem Namen hat, aber doch ein paar.  Das Ziel der Extension ist allerdings, alles bzw. soviel wie [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Gestern habe ich eine weitere Extension namens &#8220;<strong>socials</strong>&#8221; im TER veröffentlicht. Diese soll als Sammeltopf für alle Belange im Socials-Sektor dienen.</p>
<p><span id="more-6546"></span>Ich gebe zu, ich habe nicht jede Extension des TER ausprobiert, die Facebook, Twitter &amp; Co in ihrem Namen hat, aber doch ein paar.  Das Ziel der Extension ist allerdings, alles bzw. soviel wie möglich unter einen Hut zu bekommen. Die Extension steckt von den Featuren her noch in den Kinderschuhen, die Planungen sind allerdings schon weiter fortgeschritten.</p>
<p><strong>Aktuelle Features:</strong></p>
<ul>
<li>Share Buttons für Facebook, Twitter, Google+ auf Basis von Extbase  &amp; Fluid.</li>
<li>Integration der 2click-Variante von heise.de</li>
<li>Gut dokumentierte ViewHelper, die sich auch problemlos in andere Extensions integrieren lassen.</li>
</ul>
<div><strong>Geplante Features:</strong></div>
<div>
<ul>
<li>weitere Buttons wie Addthis</li>
<li>verbesserte Konfigurationsmöglichkeiten der ViewHelper über TypoScript</li>
<li>Integration der Twitter-API zum Sharen von Content via Backend</li>
<li>Integration der Facebook-API zum Sharen von Content via Backend</li>
<li>Integration von anderen Social-API-Funktionen wie das Einbinden von Fotoalben von FB</li>
</ul>
<div>Link zur Extension: <a href="http://typo3.org/extensions/repository/view/socials/current/">http://typo3.org/extensions/repository/view/socials/current/</a></div>
<div>Gerne werden weitere Wünsche entgegengenommen, sei es über die Kommentarfunktion hier oder über <a title="EXT:socials auf forge" href="http://forge.typo3.org/projects/extension-socials/issues" target="_blank">Forge</a>.</div>
</div>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/extension-socials-veroffentlicht/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Extension &#8220;news&#8221; im TER veröffentlicht</title>
		<link>http://typo3blogger.de/extension-news-veroffentlicht/</link>
		<comments>http://typo3blogger.de/extension-news-veroffentlicht/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 07:50:15 +0000</pubDate>
		<dc:creator>Georg Ringer</dc:creator>
				<category><![CDATA[ExtBase/Fluid]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[myExt]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6541</guid>
		<description><![CDATA[Vor wenigen Minuten habe ich mein aktuell größtes Projekt ins TER geladen, die Extension &#8220;news&#8221;, ehemalig als &#8220;news2&#8243; bekannt. Die Extension &#8220;news&#8221; basiert auf Extbase &#38; Fluid und ist für mich der Nachfolger von tt_ news, ist von dieser aber komplett unabhängig. Die wichtigsten Links: Forge: http://forge.typo3.org/projects/extension-news/issues Git: http://git.typo3.org/TYPO3v4/Extensions/news.git Die Features Basierend auf Extbase &#38; Fluid Minimierung [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Vor wenigen Minuten habe ich mein aktuell größtes Projekt ins TER geladen, die Extension &#8220;news&#8221;, ehemalig als &#8220;news2&#8243; bekannt.</p>
<p><span id="more-6541"></span>Die Extension &#8220;news&#8221; basiert auf Extbase &amp; Fluid und ist für mich der Nachfolger von tt_ news, ist von dieser aber komplett unabhängig. Die wichtigsten Links:</p>
<ul>
<li>Forge: <a href="http://forge.typo3.org/projects/extension-news/issues">http://forge.typo3.org/projects/extension-news/issues</a></li>
<li>Git: <a href="http://git.typo3.org/TYPO3v4/Extensions/news.git">http://git.typo3.org/TYPO3v4/Extensions/news.git</a></li>
</ul>
<div><strong>Die Features</strong></div>
<div>
<ul>
<li>Basierend auf Extbase &amp; Fluid</li>
<li>Minimierung auf das wesentliche: Es gibt kein List/Latest 1-10 sondern nur 1 Listenansicht</li>
<li>Medienelemente via Relation</li>
<li>Medienelemente default mit Videos &amp; HTML möglich, DAM bereits vorgesehen (noch ein Todo fürs Frontend)</li>
<li>Neuen Features wie der TCA-Tree</li>
<li>Social-Buttons für Facebook, Twitter, Google+ usw schon vorgesehen</li>
<li>&#8230;</li>
</ul>
<div>Die Extension wird schon von einigen Agenturen produktiv eingesetzt, ist also in der Praxis erprobt.</div>
<div>Ich freue mich auf Feature- und Bugreports, sonstige Tests und Meinungen</div>
</div>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/extension-news-veroffentlicht/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>So baut man Google Sitemaps heute?!</title>
		<link>http://typo3blogger.de/so-baut-man-google-sitemaps-heute/</link>
		<comments>http://typo3blogger.de/so-baut-man-google-sitemaps-heute/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 22:06:30 +0000</pubDate>
		<dc:creator>Tim Lochmüller</dc:creator>
				<category><![CDATA[ExtBase/Fluid]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[myExt]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6503</guid>
		<description><![CDATA[Lange Zeit habe ich mich über die Google Sitemap Extensions welche es im TER gibt aufgeregt. Teilweise sind diese sehr veraltetet und es sind keine klaren Programmierkonzepte zu erkennen. Zudem lassen sich die Erweiterungen schlecht ergänzen um eigene Extensions/Tabellen. Aus diesen Gründen habe ich vor kurzem mit der &#8220;Google Services&#8221; Extension begonnen (TER). Der erste [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Lange Zeit habe ich mich über die Google Sitemap Extensions welche es im <a href="http://typo3.org/extensions/repository/?tx_terfe_pi1%5Bview%5D=search&#038;no_cache=1&#038;tx_terfe_pi1%5Bsword%5D=Google+Sitemap">TER</a> gibt aufgeregt. Teilweise sind diese sehr veraltetet und es sind keine klaren Programmierkonzepte zu erkennen. Zudem lassen sich die Erweiterungen schlecht ergänzen um eigene Extensions/Tabellen.</p>
<p>Aus diesen Gründen habe ich vor kurzem mit der &#8220;Google Services&#8221; Extension begonnen (<a href="http://typo3.org/extensions/repository/view/google_services/current/">TER</a>). Der erste Service ist eine saubere und erweiterbare Sitemap Integration, welche ich euch vorstellen will. Zudem Suche ich weitere Möglichkeiten und Ideen für die Google Service Erweiterung. Doch wie wird eine Sitemap erstellt?<span id="more-6503"></span></p>
<h2>Extension Integration</h2>
<p>Nach der Installation sollte das Static Template der Extension integriert werden. Es wird eine neue Seite angelegt (es wird keine eID-Funktionalität für die Google Sitemap benutzt) und das Sitemap Plugin auf der Seite platziert. Es wird der passende Provider ausgewählt und die Daten-Quelle bestimmt. Nach einem &#8220;Speichern und Anschauen&#8221;, kann die generierte Erweiterung eingesehen werden. Die Extension baut dabei vollständig auf ExtBase / Fluid auf und versucht das Problem der Sitemap Generierung so weit wie möglich zu abstrahieren.</p>
<h2>Eigene Sitemap Erstellen</h2>
<p>Hierbei wird es interessant. Weder Hooks noch XClass sollte hier eine Rolle spielen. Stattdessen habe ich an eine aktive Registrierung ähnlich des Scheduler gedacht. Die Erweiterbarkeit der Sitemap liegt in dem SitemapProvider Service. Der SitemapProvider lässt sich aus jeder Extension befüllen und um weitere Provider ergänzen. Hier ein Beispiel:</p>
<p>Anpassungen an eurer ext_localconf.php:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>t3lib_extMgm<span style="color: #339933;">::</span><span style="color: #004000;">isLoaded</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'google_services'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span>t3lib_extMgm<span style="color: #339933;">::</span><span style="color: #004000;">extPath</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'google_services'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Classes/Service/SitemapProvider.php'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Tx_GoogleServices_Service_SitemapProvider<span style="color: #339933;">::</span><span style="color: #004000;">addProvider</span><span style="color: #009900;">&#40;</span>t3lib_extMgm<span style="color: #339933;">::</span><span style="color: #004000;">extPath</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'yourkey'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Classes/Service/SitemapProvider/ModelName.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Tx_Yourkey_Service_SitemapProvider_ModelName'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Eine neue Klasse z.B. Classes/Service/SitemapProvider/ModelName.php</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Tx_Yourkey_Service_SitemapProvider_ModelName implements Tx_GoogleServices_Service_SitemapProvider_SitemapProviderInterface <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getRecords<span style="color: #009900;">&#40;</span><span style="color: #000088;">$startPage</span><span style="color: #339933;">,</span> <span style="color: #000088;">$basePages</span><span style="color: #339933;">,</span> Tx_GoogleServices_Controller_SitemapController <span style="color: #000088;">$obj</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$nodes</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// Build up a $nodes Array of Tx_GoogleServices_Domain_Model_SitemapNode Objects</span>
        <span style="color: #666666; font-style: italic;">// Use $obj-&gt;getUriBuilder() to build valid FE URLs (incl. RealURL)</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$nodes</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ist die Klasse und der SitemapProvider passend bestückt, dann könnt Ihr den Provider nun mit in dem Plugin auswählen.</p>
<p>Was haltet ihr von diesem Ansatz? Video Sitemaps, News Sitemaps, Geo Sitemaps und Image Sitemaps sind in Arbeit. Weitere Idee und Ergänzungen sowohl in der Struktur als auch in der Funktionalität sind herzlich willkommen. Einfach kommentieren! Achtung: Die Extension befindet sich noch im Beta Status. Ihr findet die Extension bereits im <a href="http://typo3.org/extensions/repository/view/google_services/current/">TER</a>.</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/so-baut-man-google-sitemaps-heute/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Security Bulletin veröffentlicht</title>
		<link>http://typo3blogger.de/security-bulletin-veroffentlicht/</link>
		<comments>http://typo3blogger.de/security-bulletin-veroffentlicht/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 21:10:55 +0000</pubDate>
		<dc:creator>Tim Lochmüller</dc:creator>
				<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://typo3blogger.de/?p=6500</guid>
		<description><![CDATA[Es wurden gleich zwei Security Bulletins veröffentlicht. Das Erste betrifft das allgegenwärtige Sorgenkind phpmyadmin (Bulletin) und das zweite ist ein Sammel-Bulletin. Von dem zweiten sind die folgenden Extensions betroffen: MM DAM &#8211; FEFileList (mm_dam_filelist) Events (julle_events) WEC Staff Directory (wec_staffdirectory) TGM news (tgm_news) TGM media (tgm_media) TGM calendar module (tgm_cal) DAM Lightbox (damlightbox) Download system [...]<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></description>
			<content:encoded><![CDATA[<p>Es wurden gleich zwei Security Bulletins veröffentlicht. Das Erste betrifft das allgegenwärtige Sorgenkind phpmyadmin (<a href="http://typo3.org/teams/security/security-bulletins/typo3-extensions/typo3-ext-sa-2011-005/">Bulletin</a>) und das zweite ist ein <a href="http://typo3.org/teams/security/security-bulletins/typo3-extensions/typo3-ext-sa-2011-006/">Sammel-Bulletin</a>. Von dem zweiten sind die folgenden Extensions betroffen:</p>
<ul>
<li>MM DAM &#8211; FEFileList (mm_dam_filelist) </li>
<li>Events (julle_events) </li>
<li>WEC Staff Directory (wec_staffdirectory) </li>
<li>TGM news (tgm_news) </li>
<li>TGM media (tgm_media) </li>
<li>TGM calendar module (tgm_cal) </li>
<li>DAM Lightbox (damlightbox) </li>
<li>Download system (sb_downloader) </li>
<li>iwbase (iwbase) </li>
<li>Fussballtippspiel (toto) </li>
<li>Font resizer (fontsizer) </li>
<li>Adminer (t3adminer)</li>
</ul>
<p>Wenn Ihr betroffende Erweiterungen einsetzt heißt es wie immer, updaten oder eine andere Lösung finden&#8230;</p>
<p>------------------------------------------------------<br />Dies ist ein Post vom <a href="http://typo3blogger.de/">TYPO3 Blog</a> typo3blogger.de!</p>
]]></content:encoded>
			<wfw:commentRss>http://typo3blogger.de/security-bulletin-veroffentlicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

