<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.47.54.137</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.47.54.137"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/91.47.54.137"/>
	<updated>2026-05-06T17:58:16Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Real_URL_(realurl)&amp;diff=1430</id>
		<title>Real URL (realurl)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Real_URL_(realurl)&amp;diff=1430"/>
		<updated>2008-05-29T14:13:43Z</updated>

		<summary type="html">&lt;p&gt;91.47.54.137: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Tipps ==&lt;br /&gt;
&lt;br /&gt;
Alte Simulatic Links von außen erhalten...&lt;br /&gt;
 RewriteRule ([0-9]+)\.([0-9]+)\.html$ http:///index.php?id=$1&amp;amp;type=$2  [R=301,L]&lt;br /&gt;
&lt;br /&gt;
== Quickinfo ==&lt;br /&gt;
* Configure Apache&lt;br /&gt;
* Deactivate SimulateStaticDocs&lt;br /&gt;
* TypoScript&lt;br /&gt;
* Edit localconf.php (or use another tool like aeurltools or etarget realurlconfiguration&lt;br /&gt;
&lt;br /&gt;
eventually use &lt;br /&gt;
aeurltool or realurlsettings&lt;br /&gt;
for easy configuration (without editing localconf.php)&lt;br /&gt;
&lt;br /&gt;
== Configure Apache ==&lt;br /&gt;
RealURLs work by providing &amp;#039;virtual paths&amp;#039; to &amp;#039;virtual files&amp;#039;. These don&amp;#039;t actually exist on the file-system, so you must tell Apache to let a PHP-script handle the request if it can&amp;#039;t find the file. This way, all URLs to pages (like www.server.com/products/product1/left.html) will be &amp;#039;redirected&amp;#039; to /index.php, which will handle the translation of the URL into GET parameters. Real files (like images, the TYPO3 backend, static html-files, etc.) will still be handled by Apache itself though.&lt;br /&gt;
&lt;br /&gt;
You should put the supplied sample .htaccess file (called _.htaccess) in the root of your TYPO3-installation.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could include the following lines in your httpd.conf, probably in the VirtualHost-section. Here is an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost 127.0.0.1&amp;gt;&lt;br /&gt;
DocumentRoot /var/www/typo3/dev/testsite-3/&lt;br /&gt;
ServerName www.test1.intra&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^/typo3$ - [L]&lt;br /&gt;
RewriteRule ^/typo3/.*$ - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
RewriteRule .* /index.php&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTICE: USING httpd.conf is currently known not to work since t3lib_div::getIndpEnv(&amp;#039;TYPO3_SITE_URL&amp;#039;) is not correct. Solution remains to be found.&lt;br /&gt;
&lt;br /&gt;
If you put it into a .htaccess file it has to look slightly different, basically stripping the leading slashes (“/”):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^typo3$ - [L]&lt;br /&gt;
RewriteRule ^typo3/.*$ - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
RewriteRule .* index.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Apache that it should rewrite every URL that&amp;#039;s not a filename, directory or symlink. It leaves everything starting with /typo3/ alone too.&lt;br /&gt;
&lt;br /&gt;
Notice: For this work you need the Apache module “mod_rewrite”!&lt;br /&gt;
&lt;br /&gt;
Also refer to the Appendix for extended information on mod_rewrite issues.&lt;br /&gt;
&lt;br /&gt;
== TS Config ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config.simulateStaticDocuments = 0&lt;br /&gt;
config.baseURL = http://mydomain.com/&lt;br /&gt;
config.tx_realurl_enable = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== localconf.php Configuration ==&lt;br /&gt;
with the variable $TYPO3_CONF_VARS[&amp;#039;EXTCONF&amp;#039;][&amp;#039;realurl&amp;#039;]&lt;/div&gt;</summary>
		<author><name>91.47.54.137</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Real_URL_(realurl)&amp;diff=1398</id>
		<title>Real URL (realurl)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Real_URL_(realurl)&amp;diff=1398"/>
		<updated>2008-05-29T14:13:29Z</updated>

		<summary type="html">&lt;p&gt;91.47.54.137: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tipps&lt;br /&gt;
Alte Simulatic Links von außen erhalten...&lt;br /&gt;
RewriteRule ([0-9]+)\.([0-9]+)\.html$ http:///index.php?id=$1&amp;amp;type=$2  [R=301,L]&lt;br /&gt;
&lt;br /&gt;
== Quickinfo ==&lt;br /&gt;
* Configure Apache&lt;br /&gt;
* Deactivate SimulateStaticDocs&lt;br /&gt;
* TypoScript&lt;br /&gt;
* Edit localconf.php (or use another tool like aeurltools or etarget realurlconfiguration&lt;br /&gt;
&lt;br /&gt;
eventually use &lt;br /&gt;
aeurltool or realurlsettings&lt;br /&gt;
for easy configuration (without editing localconf.php)&lt;br /&gt;
&lt;br /&gt;
== Configure Apache ==&lt;br /&gt;
RealURLs work by providing &amp;#039;virtual paths&amp;#039; to &amp;#039;virtual files&amp;#039;. These don&amp;#039;t actually exist on the file-system, so you must tell Apache to let a PHP-script handle the request if it can&amp;#039;t find the file. This way, all URLs to pages (like www.server.com/products/product1/left.html) will be &amp;#039;redirected&amp;#039; to /index.php, which will handle the translation of the URL into GET parameters. Real files (like images, the TYPO3 backend, static html-files, etc.) will still be handled by Apache itself though.&lt;br /&gt;
&lt;br /&gt;
You should put the supplied sample .htaccess file (called _.htaccess) in the root of your TYPO3-installation.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could include the following lines in your httpd.conf, probably in the VirtualHost-section. Here is an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost 127.0.0.1&amp;gt;&lt;br /&gt;
DocumentRoot /var/www/typo3/dev/testsite-3/&lt;br /&gt;
ServerName www.test1.intra&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^/typo3$ - [L]&lt;br /&gt;
RewriteRule ^/typo3/.*$ - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
RewriteRule .* /index.php&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTICE: USING httpd.conf is currently known not to work since t3lib_div::getIndpEnv(&amp;#039;TYPO3_SITE_URL&amp;#039;) is not correct. Solution remains to be found.&lt;br /&gt;
&lt;br /&gt;
If you put it into a .htaccess file it has to look slightly different, basically stripping the leading slashes (“/”):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^typo3$ - [L]&lt;br /&gt;
RewriteRule ^typo3/.*$ - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
RewriteRule .* index.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell Apache that it should rewrite every URL that&amp;#039;s not a filename, directory or symlink. It leaves everything starting with /typo3/ alone too.&lt;br /&gt;
&lt;br /&gt;
Notice: For this work you need the Apache module “mod_rewrite”!&lt;br /&gt;
&lt;br /&gt;
Also refer to the Appendix for extended information on mod_rewrite issues.&lt;br /&gt;
&lt;br /&gt;
== TS Config ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config.simulateStaticDocuments = 0&lt;br /&gt;
config.baseURL = http://mydomain.com/&lt;br /&gt;
config.tx_realurl_enable = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== localconf.php Configuration ==&lt;br /&gt;
with the variable $TYPO3_CONF_VARS[&amp;#039;EXTCONF&amp;#039;][&amp;#039;realurl&amp;#039;]&lt;/div&gt;</summary>
		<author><name>91.47.54.137</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=1599</id>
		<title>Typo3 - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=1599"/>
		<updated>2008-05-29T12:55:43Z</updated>

		<summary type="html">&lt;p&gt;91.47.54.137: /* xhtml optimierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;weitere Infos unter [[Typo3 - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
== Auf Daten zugreifen ==&lt;br /&gt;
Beispiele gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[TypoScript - Daten auslesen]]&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - stdWrap]]&lt;br /&gt;
&lt;br /&gt;
Die stdWrap Eigenschaft steht vielen Objekten zur Verfügung. Wenn Sie vorhanden ist ist Sie der Problemlöser für fast alle Probleme :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - TSFE]]&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Das Media Feld]]&lt;br /&gt;
&lt;br /&gt;
== Standardeinstellungen ==&lt;br /&gt;
[[Typo3 - Standardeinstellungen]]&lt;br /&gt;
&lt;br /&gt;
== Quellcode aufräumen - Sourcecode verbessern - valides XHTML ==&lt;br /&gt;
Der Core produziert seit 4.0 valides XHTML&lt;br /&gt;
&lt;br /&gt;
weitere Hilfen wenn Extensions nicht valide arbeiten bieten:&lt;br /&gt;
&lt;br /&gt;
Installation von Tidy auf dem SErver (aktivieren im Install-Tool)&lt;br /&gt;
&lt;br /&gt;
HTML Cleaner http://typo3.org/extensions/repository/view/qcom_htmlcleaner/2.4.0/&lt;br /&gt;
&lt;br /&gt;
Das Bordeigene HTML-Cleaning: config.xhtml_cleaning = all&lt;br /&gt;
&lt;br /&gt;
Vorsicht bei den Cleanern wenn JavaScript im Spiel ist weil dieser z.T. zerstört werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel aus dem Forum zum Quelltext aufräumen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Einstellen des DocType auf XHTML Transitional&lt;br /&gt;
config.doctype = xhtml_trans&lt;br /&gt;
#XHTML Cleaning aktivieren&lt;br /&gt;
config.xhtml_cleaning = all&lt;br /&gt;
#Default Javascripts in externes File auslagern&lt;br /&gt;
config.removeDefaultJS = 1&lt;br /&gt;
config.removeDefaultJS = external&lt;br /&gt;
#&amp;lt;?xml... ?&amp;gt; Prolog deaktivieren&lt;br /&gt;
config.xmlprologue = none&lt;br /&gt;
#CSS Datei in externes File auslagern&lt;br /&gt;
config.inlineStyle2TempFile = 1&lt;br /&gt;
config.disablePrefixComment = 1&lt;br /&gt;
&lt;br /&gt;
#RTE Tuning&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.DIV.class &amp;gt;&lt;br /&gt;
#Angabe von Tags, die nicht mit einem zusätzlichen wrap umgeben werden dürfen&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList = cite, div, p, pre, h1, h2, h3, h4, h5, h6&lt;br /&gt;
&lt;br /&gt;
#Entfernt die zusätzlichen CSS-Klassen&lt;br /&gt;
lib.stdheader.3 = LOAD_REGISTER&lt;br /&gt;
lib.stdheader.3.headerClass =&lt;br /&gt;
lib.stdheader.3.headerClass.noTrimWrap = |&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap = |&lt;br /&gt;
&lt;br /&gt;
#Standard-Headings aufräumen&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap =&lt;br /&gt;
lib.stdheader.10.1.fontTag = &amp;lt;h1&amp;gt;|&amp;lt;/h1&amp;gt;&lt;br /&gt;
lib.stdheader.10.2.fontTag = &amp;lt;h2&amp;gt;|&amp;lt;/h2&amp;gt;&lt;br /&gt;
lib.stdheader.10.3.fontTag = &amp;lt;h3&amp;gt;|&amp;lt;/h3&amp;gt;&lt;br /&gt;
lib.stdheader.10.4.fontTag = &amp;lt;h4&amp;gt;|&amp;lt;/h4&amp;gt;&lt;br /&gt;
lib.stdheader.10.5.fontTag = &amp;lt;h5&amp;gt;|&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Content Elemente aufräumen und Kommentare entfernen&lt;br /&gt;
tt_content.stdWrap.dataWrap &amp;gt;&lt;br /&gt;
tt_content.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.header.20.dataWrap &amp;gt;&lt;br /&gt;
tt_content.header.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.default.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.textpic.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.table.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.mailform.20.stdWrap.wrap &amp;gt;&lt;br /&gt;
tt_content.menu.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.image.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.list.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
=== Klassisches List Menu ===&lt;br /&gt;
Dieses Menü kann als Grundbaustein für alle möglichen Menüs verwendet werden. Man kopiert sich das Menü in ein neues Objekt und modifiziert dort die Eigenschaften wie man sie braucht. Als Alternative gibt es noch das [[Menue als CSS formatierte Liste]] in dem ein fixer Startpunkt vorgegeben ist:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accessible ====&lt;br /&gt;
benötigt cronaccessiblemenues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.listMenu = HMENU&lt;br /&gt;
&lt;br /&gt;
# Falls das Menü nicht bei der obersten Ebene anfangen soll&lt;br /&gt;
 temp.listMenu.entryLevel = 1&lt;br /&gt;
&lt;br /&gt;
# Bei Bedarf einzelne Seiten aus dem Menü ausschließen&lt;br /&gt;
#temp.listMenu.excludeUidList = 1,2,3&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.1 = TMENU&lt;br /&gt;
temp.listMenu.1 {&lt;br /&gt;
  wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
  noBlur = 1&lt;br /&gt;
  IProcFunc = user_cronaccessiblemenus-&amp;gt;makeAccessible&lt;br /&gt;
&lt;br /&gt;
//NO.after = xyz&lt;br /&gt;
# Access Keys einschalten&lt;br /&gt;
  IProcFunc.accessKeys = 1&lt;br /&gt;
&lt;br /&gt;
# Hierarchische Nummerierung der Menüpunkte einschalten&lt;br /&gt;
  IProcFunc.dfn = 1&lt;br /&gt;
  IProcFunc.accessKeyWrap = &amp;lt;span class=&amp;quot;accessKey&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt;&lt;br /&gt;
  IProcFunc.appendWrap = &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;&amp;amp;nbsp;(ALT-|)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Die folgenden Accesskeys nicht verwenden (bereits belegt)&lt;br /&gt;
&lt;br /&gt;
  IProcFunc.forbiddenKeys = 0,D,B,A,F,X,m,p&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für nicht-aktive Seiten&lt;br /&gt;
&lt;br /&gt;
  NO {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;NO&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;|*|&amp;lt;li class=&amp;quot;NO last&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
#    stdWrap.wrap = |abc&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für Seiten, die sich in der Rootline befinden&lt;br /&gt;
&lt;br /&gt;
  ACT = 1&lt;br /&gt;
  ACT {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;ACT&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;ACT last&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für die aktuelle Seite&lt;br /&gt;
&lt;br /&gt;
  CUR = 1&lt;br /&gt;
  CUR {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;CUR&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;CUR last&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    doNotLinkIt = 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Gleiche Einstellungen für die nächsten Ebenen&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.2 = TMENU&lt;br /&gt;
temp.listMenu.2 &amp;lt; temp.listMenu.1&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.3 = TMENU&lt;br /&gt;
temp.listMenu.3 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.4 = TMENU&lt;br /&gt;
temp.listMenu.4 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Classic (not accessible) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.listMenu = HMENU&lt;br /&gt;
&lt;br /&gt;
# Falls das Menü nicht bei der obersten Ebene anfangen soll&lt;br /&gt;
 temp.listMenu.entryLevel = 1&lt;br /&gt;
&lt;br /&gt;
# Bei Bedarf einzelne Seiten aus dem Menü ausschließen&lt;br /&gt;
#temp.listMenu.excludeUidList = 1,2,3&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.1 = TMENU&lt;br /&gt;
temp.listMenu.1 {&lt;br /&gt;
  wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
  noBlur = 1&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für nicht-aktive Seiten&lt;br /&gt;
&lt;br /&gt;
  NO {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;NO&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;|*|&amp;lt;li class=&amp;quot;NO last&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für Seiten, die sich in der Rootline befinden&lt;br /&gt;
&lt;br /&gt;
  ACT = 1&lt;br /&gt;
  ACT {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;ACT&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;ACT last&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für die aktuelle Seite&lt;br /&gt;
&lt;br /&gt;
  CUR = 1&lt;br /&gt;
  CUR {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;CUR&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;CUR last&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    doNotLinkIt = 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Gleiche Einstellungen für die nächsten Ebenen&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.2 = TMENU&lt;br /&gt;
temp.listMenu.2 &amp;lt; temp.listMenu.1&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.3 = TMENU&lt;br /&gt;
temp.listMenu.3 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.4 = TMENU&lt;br /&gt;
temp.listMenu.4 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multilanguage Menu ===&lt;br /&gt;
[[Typo3 - Multilanguage Menu]]&lt;br /&gt;
=== Bilder Menü ===&lt;br /&gt;
siehe: [[Typo3 - Bildermenü]]&lt;br /&gt;
=== Einfaches Menü mit 1 Ebene (CSS) ===&lt;br /&gt;
siehe: [[Menue als CSS formatierte Liste]]&lt;br /&gt;
&lt;br /&gt;
=== Menü mit 2 Ebenen als verschachtelte Liste ===&lt;br /&gt;
Dieses Menü ist besonders für vertikale Navigationen geeignet&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Einstieg Level 1&lt;br /&gt;
navi-L12-startID = 1&lt;br /&gt;
navi-L12-delimiter = &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
navi-L12-delimiter =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Top Navigation ###&lt;br /&gt;
temp.navi-L12 = HMENU&lt;br /&gt;
temp.navi-L12 {&lt;br /&gt;
  #stdWrap.case = lower&lt;br /&gt;
  special = directory&lt;br /&gt;
  # Seitenid für den Einstieg&lt;br /&gt;
  special.value = {$navi-L12-startID}&lt;br /&gt;
  # Ebene für den Einstieg (nicht vergessen wg. 2. Level)&lt;br /&gt;
  entryLevel = 1&lt;br /&gt;
  1 = TMENU&lt;br /&gt;
  1{&lt;br /&gt;
    noBlur = 1&lt;br /&gt;
    wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
    NO = 1&lt;br /&gt;
    NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
    ACT = 1&lt;br /&gt;
    ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
    ACTIFSUB = 1&lt;br /&gt;
    #Wenn Unterpunkte dann li aufmachen&lt;br /&gt;
    ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&lt;br /&gt;
  }&lt;br /&gt;
  2 = TMENU&lt;br /&gt;
  2{&lt;br /&gt;
   noBlur = 1&lt;br /&gt;
   NO = 1&lt;br /&gt;
   #Unterpunkt also neue ul und danach li zu (von L1 geöffnet)&lt;br /&gt;
   wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
   ACT = 1&lt;br /&gt;
   ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  #ACTIFSUB = 1&lt;br /&gt;
  #ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Menü mit 2 Ebenen als separate Listen ===&lt;br /&gt;
Dieses Menü ist besonders für horizontale Navigationen geeignet. &lt;br /&gt;
&lt;br /&gt;
Da die 2. Ebene relativ angegeben wird muß man bei mehreren Navigationsbäumen aufpassen, daß evt. ein Untermenü einer anderen Navigation (anderer Baum) ebenfalls angezeigt wird. Das läßt sich z.B. umgehen in dem man das Navitemplate erst im Unterbaum setzt oder indem man im Hauptbaum eine Bedingung setzt ([PIDinRootline = 123])&lt;br /&gt;
&lt;br /&gt;
Ebene 1 ist im Prinzip eine einfache Liste:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Navi nur Level1&lt;br /&gt;
#Startpunkt&lt;br /&gt;
navi_startID = 1&lt;br /&gt;
&lt;br /&gt;
#Trennzeichen für horizontale Navi:&lt;br /&gt;
naviL1-delimiter = &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Top Navigation ###&lt;br /&gt;
temp.naviL1 = HMENU&lt;br /&gt;
temp.naviL1 {&lt;br /&gt;
  #stdWrap.case = lower&lt;br /&gt;
  special = directory&lt;br /&gt;
  # Seitenid für den Einstieg&lt;br /&gt;
  special.value = {$navi_startID}&lt;br /&gt;
  1 = TMENU&lt;br /&gt;
  1.noBlur = 1&lt;br /&gt;
  1.wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
  1.NO = 1&lt;br /&gt;
  1.NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$naviL1-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
  1.ACT = 1&lt;br /&gt;
  1.ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$naviL1-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
  #1.ACTIFSUB = 1&lt;br /&gt;
  #1.ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Ebene 2 wird eine weitere Liste generiert wenn man sich in einem bestimmten Level befindet:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Navigation nur ab Level x  als ul (Standard entry Level1=2.Level)&lt;br /&gt;
&lt;br /&gt;
#Trennzeichen für horizontale Navi:&lt;br /&gt;
naviLx-delimiter = &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
naviLx-entryLevel = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.naviLx = HMENU&lt;br /&gt;
temp.naviLx {&lt;br /&gt;
  # Seitenbaumebene ab Level 1 darstellen (2. Ebene)&lt;br /&gt;
   entryLevel = {$naviLx-entryLevel}&lt;br /&gt;
# Level 2&lt;br /&gt;
   1 = TMENU&lt;br /&gt;
   1{&lt;br /&gt;
      noBlur = 1&lt;br /&gt;
      wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
      NO = 1&lt;br /&gt;
   # Für horizontale Navi mit delimiter bei vertikal einfach nichts setzen&lt;br /&gt;
      NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$naviLx-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      ACT = 1&lt;br /&gt;
   # Für vertikale Navi ohne delimiter...      &lt;br /&gt;
      #ACT.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
   # und horizontal mit delimiter&lt;br /&gt;
      ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$naviLx-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
      #ACTIFSUB = 1&lt;br /&gt;
      #ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Menü als CSS formatierte Liste (allgemein) ===&lt;br /&gt;
[[Menue als CSS formatierte Liste]]&lt;br /&gt;
=== CSS-Flyout Menü ===&lt;br /&gt;
[[Typo3 - CSS-Flyout Menü]]&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
=== Autoparser (automaketemplate und Templateswitcher (tx_rlmptmplselector) konfigurieren ===&lt;br /&gt;
Der Template - Switcher benötigt automaketemplate (oder man arbeitet direkt mit TS-Templates). &lt;br /&gt;
Am besten gleich beide in einem Basis Template konfigurieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### SET UP TEMPLATE SELECTOR ###&lt;br /&gt;
plugin.tx_rlmptmplselector_pi1 {&lt;br /&gt;
&lt;br /&gt;
// Define the paths leading to our HTML template files&lt;br /&gt;
   templatePathMain = fileadmin/dinos/templates/main/&lt;br /&gt;
   templatePathSub = fileadmin/dinos/templates/sub/&lt;br /&gt;
&lt;br /&gt;
      // Define the filenames used as the default HTML templates&lt;br /&gt;
   defaultTemplateFileNameMain = main.html&lt;br /&gt;
   defaultTemplateFileNameSub = sub01.html&lt;br /&gt;
&lt;br /&gt;
      // If there is a page having no template selected, use a template&lt;br /&gt;
      // selected earlier in the rootline. If there is none, use the default&lt;br /&gt;
    inheritMainTemplates = 1&lt;br /&gt;
    inheritSubTemplates = 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
### Autoparser Konfigurieren (alle IDs als Marker) ###&lt;br /&gt;
&lt;br /&gt;
plugin.tx_automaketemplate_pi1{&lt;br /&gt;
#  content = FILE&lt;br /&gt;
#  content.file = fileadmin/templates/main/main.html&lt;br /&gt;
&lt;br /&gt;
  content &amp;lt; plugin.tx_rlmptmplselector_pi1&lt;br /&gt;
  elements {&lt;br /&gt;
    BODY.all = 1&lt;br /&gt;
    BODY.all.subpartMarker = DOCUMENT_BODY&lt;br /&gt;
    HEAD.all = 1&lt;br /&gt;
    HEAD.all.subpartMarker = DOCUMENT_HEADER&lt;br /&gt;
    HEAD.all.rmTagSections = title&lt;br /&gt;
    DIV.all = 1&lt;br /&gt;
    TD.all = 1&lt;br /&gt;
  }&lt;br /&gt;
    relPathPrefix = fileadmin/dinos/templates/main/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== News - Modul ===&lt;br /&gt;
Hier gibt es fertige Konfigurationen:&lt;br /&gt;
[[News (tt_news)]]&lt;br /&gt;
&lt;br /&gt;
=== eCards - sr_sendcard ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The Fast Way:&lt;br /&gt;
# plugin.tx_srsendcard_pi1._CSS_DEFAULT_STYLE = @import url(&amp;quot;fileadmin/dinos/templates/css/srsendcard.css&amp;quot;);&lt;br /&gt;
# But better is this (more flexible lesser Overhead)&lt;br /&gt;
&lt;br /&gt;
plugin.tx_srsendcard_pi1._CSS_DEFAULT_STYLE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[PIDinRootline = 14]&lt;br /&gt;
page.includeCSS.file2 = fileadmin/dinos/templates/srsendcard/srsendcard.css&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
plugin.tx_srsendcard_pi1{&lt;br /&gt;
&lt;br /&gt;
templateFile = fileadmin/dinos/templates/srsendcard/srsendcard.tmpl&lt;br /&gt;
locale_all = de_DE&lt;br /&gt;
oldYear = 2006&lt;br /&gt;
# Vorschauseite (wenn gewünscht)&lt;br /&gt;
# previewPID = your_page_id&lt;br /&gt;
enableHTMLMail = 1&lt;br /&gt;
siteEmail = info@start-reutlingen.de&lt;br /&gt;
siteName = Erben der Dinos&lt;br /&gt;
# musicDir = EXT:sr_sendcard/music&lt;br /&gt;
#cardMusicFiles = autumnleaves.mid, OverTheRainbow.mid, Pomp_and_Circumstance.mid&lt;br /&gt;
disableMusic = 1&lt;br /&gt;
maxCol = 2&lt;br /&gt;
imageSmallWidth = 150&lt;br /&gt;
imageSmallHeight = 150&lt;br /&gt;
imageBigWidth = 300&lt;br /&gt;
imageBigHeight = 300&lt;br /&gt;
#logo&lt;br /&gt;
#logoAlignHor = right&lt;br /&gt;
#logoAlignVert = bottom&lt;br /&gt;
#useAlternateImageOnPrint&lt;br /&gt;
### For use with other pids use this one too&lt;br /&gt;
#createPID&lt;br /&gt;
#formPID&lt;br /&gt;
#previewPID&lt;br /&gt;
#useCAPTCHA = 0&lt;br /&gt;
#viewPID&lt;br /&gt;
#printPID&lt;br /&gt;
### Erscheinungsbild ###&lt;br /&gt;
cardStamp = fileadmin/dinos/templates/srsendcard/stamp.gif&lt;br /&gt;
#date_stdWrap&lt;br /&gt;
disableSendDate = 1&lt;br /&gt;
cardBgcolors = #FFFFFF,#A00A1C,#FF993F&lt;br /&gt;
cardFontcolors = #000000, #FFFFFF,#A00A1C&lt;br /&gt;
#disableFontcolors&lt;br /&gt;
#disableFontfaces&lt;br /&gt;
#disableCardOptions&lt;br /&gt;
#graphicMess&lt;br /&gt;
#graphicMessWidth&lt;br /&gt;
#graphicMessFontFiles&lt;br /&gt;
#graphicMessFontSizes&lt;br /&gt;
#fontDir&lt;br /&gt;
#doNotShowCardCaptions&lt;br /&gt;
cardPresentationOrder = manual&lt;br /&gt;
salutation = informal&lt;br /&gt;
#disableBgcolors = 1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zufallsbild tx_ccrandomimage ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript - Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### zufallsbild erzeugen ###&lt;br /&gt;
includeLibs.tx_ccrandomimage = EXT:cc_random_image/pi1/class.tx_ccrandomimage_pi1.php&lt;br /&gt;
&lt;br /&gt;
// USER_INT means &amp;#039;no caching&amp;#039;&lt;br /&gt;
temp.randomImage = USER_INT&lt;br /&gt;
temp.randomImage{&lt;br /&gt;
  userFunc = tx_ccrandomimage_pi1-&amp;gt;main&lt;br /&gt;
  path = fileadmin/randomImage/&lt;br /&gt;
  fileExt = jpg,jpeg,gif,png&lt;br /&gt;
  #Das Render Objekt ist ein content object array (COA) mit einem Bild&lt;br /&gt;
  #Vor dem Rendern werden die ###FILE_x### marker mit den Bildern aus path ersetzt&lt;br /&gt;
  renderObj = COA&lt;br /&gt;
  renderObj {&lt;br /&gt;
    10 = IMAGE&lt;br /&gt;
    10.file = ###FILE_1###&lt;br /&gt;
    // ... weitere Bilder wenn benötigt&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nützliche TS-Templates ==&lt;br /&gt;
=== xhtml optimierung ===&lt;br /&gt;
Einiges davon braucht man in Version 4+ nicht mehr...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################################&lt;br /&gt;
############ XHTML optimieren&lt;br /&gt;
#######################################################&lt;br /&gt;
&lt;br /&gt;
#Default Javascripts in externes File auslagern&lt;br /&gt;
config.removeDefaultJS = 1&lt;br /&gt;
config.removeDefaultJS = external&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;?xml... ?&amp;gt; Prolog deaktivieren&lt;br /&gt;
config.xmlprologue = none&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;html lang=&amp;quot;de&amp;quot; xml:lang=&amp;quot;de&amp;quot;&amp;gt; auf de setzen&lt;br /&gt;
config.htmlTag_langKey = de&lt;br /&gt;
&lt;br /&gt;
#CSS Datei in externes File auslagern&lt;br /&gt;
config.inlineStyle2TempFile = 1&lt;br /&gt;
config.disablePrefixComment = 1&lt;br /&gt;
&lt;br /&gt;
#RTE Tuning&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.DIV.class &amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Angabe von Tags, die nicht mit einem zusätzlichen wrap umgeben werden dürfen&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList =  div, p, h1, h2, h3, h4, h5, h6&lt;br /&gt;
&lt;br /&gt;
#Entfernt die zusätzlichen CSS-Klassen&lt;br /&gt;
lib.stdheader.3 = LOAD_REGISTER&lt;br /&gt;
lib.stdheader.3.headerClass =&lt;br /&gt;
lib.stdheader.3.headerClass.noTrimWrap = |&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap = |&lt;br /&gt;
&lt;br /&gt;
#Standard-Headings aufräumen&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap =&lt;br /&gt;
lib.stdheader.10.1.fontTag = &amp;lt;h1&amp;gt;|&amp;lt;/h1&amp;gt;&lt;br /&gt;
lib.stdheader.10.2.fontTag = &amp;lt;h2&amp;gt;|&amp;lt;/h2&amp;gt;&lt;br /&gt;
lib.stdheader.10.3.fontTag = &amp;lt;h3&amp;gt;|&amp;lt;/h3&amp;gt;&lt;br /&gt;
lib.stdheader.10.4.fontTag = &amp;lt;h4&amp;gt;|&amp;lt;/h4&amp;gt;&lt;br /&gt;
lib.stdheader.10.5.fontTag = &amp;lt;h5&amp;gt;|&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Content Elemente aufräumen und Kommentare entfernen&lt;br /&gt;
#tt_content.stdWrap.dataWrap &amp;gt;&lt;br /&gt;
tt_content.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
#tt_content.header.20.dataWrap &amp;gt;&lt;br /&gt;
tt_content.header.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.default.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.textpic.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.table.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.mailform.20.stdWrap.wrap &amp;gt;&lt;br /&gt;
tt_content.menu.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.image.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.list.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Cleargif entfernen&lt;br /&gt;
tt_content.image.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.header.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.spaceBefore = 0&lt;br /&gt;
tt_content.stdWrap.spaceAfter = 0&lt;br /&gt;
lib.stdheader.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
#Auch hinter den Headlines&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
# Sicherstellen, dass nonTypoTagStdWrap nur im Inhalt außerhalb von&lt;br /&gt;
#&amp;lt;typolist&amp;gt; und &amp;lt;typohead&amp;gt; arbeitet:&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typolist.breakoutTypoTagContent = 1&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.breakoutTypoTagContent = 1&lt;br /&gt;
&lt;br /&gt;
# ... und kein &amp;lt;BR&amp;gt; vor dem typohead.&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.stdWrap.wrap &amp;gt;&lt;br /&gt;
# Einstellen von nonTypoTagStdWrap, dass der Text mit P-Tags umschlossen wird.&lt;br /&gt;
tt_content.text.20.parseFunc.nonTypoTagStdWrap &amp;gt;&lt;br /&gt;
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines {&lt;br /&gt;
encapsTagList = div, p&lt;br /&gt;
remapTag.DIV = P&lt;br /&gt;
wrapNonWrappedLines = |&lt;br /&gt;
innerStdWrap_all.ifEmpty =&lt;br /&gt;
innerStdWrap_all.textStyle &amp;lt; tt_content.text.20.textStyle&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Schließlich noch Entfernen der alten textstyle-Formatierung des gesamten Haupttextes.&lt;br /&gt;
tt_content.text.20.textStyle &amp;gt;&lt;br /&gt;
&lt;br /&gt;
# ... und der &amp;lt;BR&amp;gt;-Tag nach dem Inhalt wird auch nicht mehr gebraucht...&lt;br /&gt;
tt_content.text.20.wrap &amp;gt;&lt;br /&gt;
&lt;br /&gt;
# clear.gif entfernen&lt;br /&gt;
tt_content.image.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.header.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.spaceBefore = 0&lt;br /&gt;
tt_content.stdWrap.spaceAfter = 0&lt;br /&gt;
lib.stdheader.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
# clear.gif hinter den Überschriften entfernen&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
#Attribute für p- und pre-tags entfernen&lt;br /&gt;
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes {&lt;br /&gt;
P.style=&lt;br /&gt;
PRE.style=&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Unterdrückt den Umbruch &amp;lt; br &amp;gt;&lt;br /&gt;
lib.stdheader.10.stdWrap.wrap = |&lt;br /&gt;
tt_content.textpic.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.image.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.textpic.20.noStretchAndMarginCells = 1&lt;br /&gt;
tt_content.image.20.noStretchAndMarginCells = 1&lt;br /&gt;
&lt;br /&gt;
# Setup Anker-Tags entfernen&lt;br /&gt;
tt_content.noANameTagForFirstRecord = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inhalte von Backend-Feldern ausgeben ===&lt;br /&gt;
Hinweise dazu findest du unter:&lt;br /&gt;
&lt;br /&gt;
[[TypoScript - Daten auslesen]]&lt;br /&gt;
&lt;br /&gt;
=== Ein Breadcrumb Menü (Rootline-Menü) ===&lt;br /&gt;
Constants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#[begin-level] | [end-level]&lt;br /&gt;
# Variante 1: Seite 1 | Seite 2 | Seite 3&lt;br /&gt;
rootlineDelimiter = &amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&lt;br /&gt;
# Variante 2: Seite 1 &amp;gt; Seite 2 &amp;gt; Seite 3&lt;br /&gt;
# delimiter = &amp;amp;nbsp;&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.rootline = HMENU&lt;br /&gt;
temp.rootline {&lt;br /&gt;
   special = rootline&lt;br /&gt;
&lt;br /&gt;
# zeige komplette rootline an&lt;br /&gt;
   special.range = 2|-1&lt;br /&gt;
&lt;br /&gt;
# Variation: zeige Link auf die übergeordnete Seite&lt;br /&gt;
   #special.range = -2|-2&lt;br /&gt;
&lt;br /&gt;
# Text vor dem Rootline Menü&lt;br /&gt;
   wrap = Sie sind hier:&amp;amp;nbsp;|&lt;br /&gt;
&lt;br /&gt;
   special.targets.3 = page&lt;br /&gt;
   1 = TMENU&lt;br /&gt;
   1.target = _top&lt;br /&gt;
   1.NO {&lt;br /&gt;
   	ATagBeforeWrap = 0&lt;br /&gt;
   	stdWrap.htmlSpecialChars = 1&lt;br /&gt;
   	linkWrap = |{$rootlineDelimiter}|*||*| |&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
temp.rootline.wrap = You are here:&amp;amp;nbsp;|&lt;br /&gt;
[GLOBAL]&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 2]&lt;br /&gt;
temp.rootline.wrap = Vous êtes ici:&amp;amp;nbsp;|&lt;br /&gt;
[GLOBAL]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein CSS-Template mit Markern nutzen ===&lt;br /&gt;
Ein CSS File wird eingelesen, enthaltene Marker dynamisch ersetzt und die Styles im Headerbereich der Seite als Inline-Styles eingebunden.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
color1 = FFE292&lt;br /&gt;
color2 = F68D6F&lt;br /&gt;
color3 = FABD9E&lt;br /&gt;
&lt;br /&gt;
backgroundImage = fileadmin/templates/main/images/navBack-grey.gif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Setup &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# das Objekt zunächst als Bibliothek zur späteren Verwendung&lt;br /&gt;
lib.stylesheet.default = TEMPLATE&lt;br /&gt;
lib.stylesheet.default {&lt;br /&gt;
# template einlesen&lt;br /&gt;
  template = FILE&lt;br /&gt;
  template.file=fileadmin/templates/main/colors.css&lt;br /&gt;
# Platzhalter ersetzten&lt;br /&gt;
  marks{&lt;br /&gt;
     COLOR1 = TEXT&lt;br /&gt;
     COLOR1.value = {$color1}&lt;br /&gt;
     COLOR2 = TEXT&lt;br /&gt;
     COLOR2.value = {$color2}&lt;br /&gt;
     COLOR3 = TEXT&lt;br /&gt;
     COLOR3.value = {$color3}&lt;br /&gt;
     &lt;br /&gt;
     NAVBACK = TEXT&lt;br /&gt;
     NAVBACK.value = {$backgroundImage}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Stylesheet in Header eintragen&lt;br /&gt;
page.headerData{&lt;br /&gt;
   90 = COA&lt;br /&gt;
   90{&lt;br /&gt;
      wrap = &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&amp;lt;!-- | --&amp;gt;&amp;lt;/style&amp;gt;&lt;br /&gt;
      50 &amp;lt; lib.stylesheet.default&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bild aus Media-Feld auslesen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.mediaFieldImage=IMAGE&lt;br /&gt;
temp.mediaFieldImage.file {  &lt;br /&gt;
  import.data = levelmedia: 2,slide  &lt;br /&gt;
  import = uploads/media/  &lt;br /&gt;
  import.listNum = 0  &lt;br /&gt;
  #width = 270  &lt;br /&gt;
  #height= 300&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bild aus Ressourcen Feld auslesen ===&lt;br /&gt;
Hinweis Seiteneigenschaften &amp;gt; Resourcen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 temp.mein Bild = IMG_RESSOURCE&lt;br /&gt;
 temp.mein Bild{&lt;br /&gt;
  file = hintergrund*.jpg&lt;br /&gt;
  stdWrap.wrap = &amp;lt;div style=&amp;quot;background-image: | ; padding: 5px;&amp;quot;&amp;gt; ein Kasten &amp;lt;/div&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis: Typo3 vergibt beim vervielfältigen automatisch eine Endung. Damit das Bild trotzdem immer gefunden wird, ein Sternchen setzen (Joker)&lt;br /&gt;
&lt;br /&gt;
=== Bild automatisch mit Alt-Tag versehen ===&lt;br /&gt;
Dieses TypoScript füllt das Alt-Tag Feld mit Daten aus dem Bildnamen z.B. wird Unser_Urlaubsort.jpg zu Unser Urlaubsort&lt;br /&gt;
&lt;br /&gt;
[[Bild automatisch mit Alt-Tag versehen]]&lt;br /&gt;
&lt;br /&gt;
=== Logo mit Verlinkung auf die Homepage (1.2)===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Link für das Logo&lt;br /&gt;
# Zahl (Seiten-ID), URL (www.zielseite.de) oder Email-Adresse&lt;br /&gt;
logoLink = 1&lt;br /&gt;
logoFile = fileadmin/templates/images/logo.gif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Setup &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Fügt ein Logo mit Link ein&lt;br /&gt;
&lt;br /&gt;
temp.logo = IMAGE&lt;br /&gt;
temp.logo {&lt;br /&gt;
   #file = /fileadmin/dinos/templates/main/images/logo-rt.gif&lt;br /&gt;
   file = {$logoFile}&lt;br /&gt;
   stdWrap.typolink.parameter = {$logoLink}&lt;br /&gt;
}   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright mit immer aktuellem Jahr ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.copyright = COA&lt;br /&gt;
temp.copyright{&lt;br /&gt;
   5= TEXT&lt;br /&gt;
   5.value = &amp;amp;copy;&amp;amp;nbsp;&lt;br /&gt;
   10 = TEXT&lt;br /&gt;
   #HeUte Timestamp einlesen&lt;br /&gt;
   10.data = date:U&lt;br /&gt;
   10.data.strftime = %Y &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein anderes Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
subparts.footer{&lt;br /&gt;
   10 = TEXT&lt;br /&gt;
   10.data = date:Y&lt;br /&gt;
   10.wrap = &amp;lt;p class=&amp;quot;footer&amp;quot;&amp;gt;&amp;amp;copy;&amp;amp;nbsp;|&amp;amp;nbsp;Ich&amp;lt;/p&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum der letzten Änderung anzeigen ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 lastChangePrefix = Letzte Änderung:&amp;amp;nbsp;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.lastChange = COA&lt;br /&gt;
temp.lastChange.5 = TEXT&lt;br /&gt;
temp.lastChange.5.value={$lastChangePrefix}&lt;br /&gt;
temp.lastChange.10 = TEXT&lt;br /&gt;
temp.lastChange.10.register:SYS_LASTCHANGED&lt;br /&gt;
temp.lastChange.10.strftime = %d.%m.%Y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Variante ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.lastChange = TEXT&lt;br /&gt;
temp.lastChange {&lt;br /&gt;
  data = page:lastUpdated&lt;br /&gt;
  if.isTrue.data = page:lastUpdated&lt;br /&gt;
  date = d.m.Y&lt;br /&gt;
  wrap = Letzte Änderung:&amp;amp;nbsp;|&lt;br /&gt;
  wrap2 = |&lt;br /&gt;
  data = register : SYS_LASTCHANGED&lt;br /&gt;
  if &amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Seiten IDs im Seitenbaum anzeigen ===&lt;br /&gt;
UserTS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
  pageTree.showPageIdWithTitle = 1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Die Ausgabe von Inhalten verändern ==&lt;br /&gt;
&lt;br /&gt;
=== Layout-Rahmen verändern===&lt;br /&gt;
[[Typo3 - Rahmen (Frames)]]&lt;br /&gt;
&lt;br /&gt;
=== Rendering von Inhalten ===&lt;br /&gt;
&lt;br /&gt;
=== Ausgeben von Informationen im head der Seite ===&lt;br /&gt;
Wie kann man Stylesheet angaben, Metatags, Skripte etc. im Header ausgeben&lt;br /&gt;
[[Typo3 - Tipps und Tricks]] (page.head Objekt)&lt;br /&gt;
&lt;br /&gt;
=== Unnötige Ausgaben im Quelltext verhindern ===&lt;br /&gt;
[[TYPO3 - Unnötige Ausgaben im Quelltext verhindern]]&lt;br /&gt;
&lt;br /&gt;
== TypoScript - Basiswissen ==&lt;br /&gt;
[[Links mit TypoSkript anlegen]]&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
&lt;br /&gt;
weitere Infos zu Indexed Search:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - indexed search]]&lt;br /&gt;
&lt;br /&gt;
== Benutzer ==&lt;br /&gt;
=== Autor-Feld bei neuen Seiten automatisch anlegen ===&lt;br /&gt;
 TCAdefaults.pages.author = &amp;lt;Name des Redakteurs&amp;gt;&lt;br /&gt;
 TCAdefaults.pages.author_email = &amp;lt;EMail-Adresse des Redakteurs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das funktioniert aber nur dann wenn eine Seite neu angelegt wird. Will man viele Seiten einem Redakteur zuordnen kann man das über eien MySQL abfrage machen:&lt;br /&gt;
&lt;br /&gt;
 UPDATE `pages` SET `author` = &amp;#039;&amp;lt;Name des Redakteurs&amp;gt;&amp;#039;, `author_email` =&lt;br /&gt;
 &amp;#039;&amp;lt;EMail-Adresse des Redakteurs&amp;gt;&amp;#039;&lt;br /&gt;
 WHERE 1 AND `perms_userid` = &amp;lt;UserId des Redakteurs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in perms_userid steht die ID des Besitzers der Seite, deshalb kann man diesen mit Hilfe des Whereclause ausfiltern.&lt;br /&gt;
&lt;br /&gt;
=== Author Feld, Email-Feld und News Author automatisch anlegen ===&lt;br /&gt;
Als weitere Möglichkeit gibt es die Extension cron_setdefaultauthor die genau diese Aufgaben übernimmt. Sie arbeitet im Prinzip wie oben angeführt.&lt;/div&gt;</summary>
		<author><name>91.47.54.137</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=1396</id>
		<title>Typo3 - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=1396"/>
		<updated>2008-05-29T12:55:03Z</updated>

		<summary type="html">&lt;p&gt;91.47.54.137: /* Nützliche TS-Templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;weitere Infos unter [[Typo3 - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
== Auf Daten zugreifen ==&lt;br /&gt;
Beispiele gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[[TypoScript - Daten auslesen]]&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - stdWrap]]&lt;br /&gt;
&lt;br /&gt;
Die stdWrap Eigenschaft steht vielen Objekten zur Verfügung. Wenn Sie vorhanden ist ist Sie der Problemlöser für fast alle Probleme :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - TSFE]]&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - Das Media Feld]]&lt;br /&gt;
&lt;br /&gt;
== Standardeinstellungen ==&lt;br /&gt;
[[Typo3 - Standardeinstellungen]]&lt;br /&gt;
&lt;br /&gt;
== Quellcode aufräumen - Sourcecode verbessern - valides XHTML ==&lt;br /&gt;
Der Core produziert seit 4.0 valides XHTML&lt;br /&gt;
&lt;br /&gt;
weitere Hilfen wenn Extensions nicht valide arbeiten bieten:&lt;br /&gt;
&lt;br /&gt;
Installation von Tidy auf dem SErver (aktivieren im Install-Tool)&lt;br /&gt;
&lt;br /&gt;
HTML Cleaner http://typo3.org/extensions/repository/view/qcom_htmlcleaner/2.4.0/&lt;br /&gt;
&lt;br /&gt;
Das Bordeigene HTML-Cleaning: config.xhtml_cleaning = all&lt;br /&gt;
&lt;br /&gt;
Vorsicht bei den Cleanern wenn JavaScript im Spiel ist weil dieser z.T. zerstört werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel aus dem Forum zum Quelltext aufräumen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Einstellen des DocType auf XHTML Transitional&lt;br /&gt;
config.doctype = xhtml_trans&lt;br /&gt;
#XHTML Cleaning aktivieren&lt;br /&gt;
config.xhtml_cleaning = all&lt;br /&gt;
#Default Javascripts in externes File auslagern&lt;br /&gt;
config.removeDefaultJS = 1&lt;br /&gt;
config.removeDefaultJS = external&lt;br /&gt;
#&amp;lt;?xml... ?&amp;gt; Prolog deaktivieren&lt;br /&gt;
config.xmlprologue = none&lt;br /&gt;
#CSS Datei in externes File auslagern&lt;br /&gt;
config.inlineStyle2TempFile = 1&lt;br /&gt;
config.disablePrefixComment = 1&lt;br /&gt;
&lt;br /&gt;
#RTE Tuning&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.DIV.class &amp;gt;&lt;br /&gt;
#Angabe von Tags, die nicht mit einem zusätzlichen wrap umgeben werden dürfen&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList = cite, div, p, pre, h1, h2, h3, h4, h5, h6&lt;br /&gt;
&lt;br /&gt;
#Entfernt die zusätzlichen CSS-Klassen&lt;br /&gt;
lib.stdheader.3 = LOAD_REGISTER&lt;br /&gt;
lib.stdheader.3.headerClass =&lt;br /&gt;
lib.stdheader.3.headerClass.noTrimWrap = |&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap = |&lt;br /&gt;
&lt;br /&gt;
#Standard-Headings aufräumen&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap =&lt;br /&gt;
lib.stdheader.10.1.fontTag = &amp;lt;h1&amp;gt;|&amp;lt;/h1&amp;gt;&lt;br /&gt;
lib.stdheader.10.2.fontTag = &amp;lt;h2&amp;gt;|&amp;lt;/h2&amp;gt;&lt;br /&gt;
lib.stdheader.10.3.fontTag = &amp;lt;h3&amp;gt;|&amp;lt;/h3&amp;gt;&lt;br /&gt;
lib.stdheader.10.4.fontTag = &amp;lt;h4&amp;gt;|&amp;lt;/h4&amp;gt;&lt;br /&gt;
lib.stdheader.10.5.fontTag = &amp;lt;h5&amp;gt;|&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Content Elemente aufräumen und Kommentare entfernen&lt;br /&gt;
tt_content.stdWrap.dataWrap &amp;gt;&lt;br /&gt;
tt_content.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.header.20.dataWrap &amp;gt;&lt;br /&gt;
tt_content.header.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.default.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.textpic.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.table.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.mailform.20.stdWrap.wrap &amp;gt;&lt;br /&gt;
tt_content.menu.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.image.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.list.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
=== Klassisches List Menu ===&lt;br /&gt;
Dieses Menü kann als Grundbaustein für alle möglichen Menüs verwendet werden. Man kopiert sich das Menü in ein neues Objekt und modifiziert dort die Eigenschaften wie man sie braucht. Als Alternative gibt es noch das [[Menue als CSS formatierte Liste]] in dem ein fixer Startpunkt vorgegeben ist:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accessible ====&lt;br /&gt;
benötigt cronaccessiblemenues&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.listMenu = HMENU&lt;br /&gt;
&lt;br /&gt;
# Falls das Menü nicht bei der obersten Ebene anfangen soll&lt;br /&gt;
 temp.listMenu.entryLevel = 1&lt;br /&gt;
&lt;br /&gt;
# Bei Bedarf einzelne Seiten aus dem Menü ausschließen&lt;br /&gt;
#temp.listMenu.excludeUidList = 1,2,3&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.1 = TMENU&lt;br /&gt;
temp.listMenu.1 {&lt;br /&gt;
  wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
  noBlur = 1&lt;br /&gt;
  IProcFunc = user_cronaccessiblemenus-&amp;gt;makeAccessible&lt;br /&gt;
&lt;br /&gt;
//NO.after = xyz&lt;br /&gt;
# Access Keys einschalten&lt;br /&gt;
  IProcFunc.accessKeys = 1&lt;br /&gt;
&lt;br /&gt;
# Hierarchische Nummerierung der Menüpunkte einschalten&lt;br /&gt;
  IProcFunc.dfn = 1&lt;br /&gt;
  IProcFunc.accessKeyWrap = &amp;lt;span class=&amp;quot;accessKey&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt;&lt;br /&gt;
  IProcFunc.appendWrap = &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;&amp;amp;nbsp;(ALT-|)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Die folgenden Accesskeys nicht verwenden (bereits belegt)&lt;br /&gt;
&lt;br /&gt;
  IProcFunc.forbiddenKeys = 0,D,B,A,F,X,m,p&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für nicht-aktive Seiten&lt;br /&gt;
&lt;br /&gt;
  NO {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;NO&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;|*|&amp;lt;li class=&amp;quot;NO last&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
#    stdWrap.wrap = |abc&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für Seiten, die sich in der Rootline befinden&lt;br /&gt;
&lt;br /&gt;
  ACT = 1&lt;br /&gt;
  ACT {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;ACT&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;ACT last&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für die aktuelle Seite&lt;br /&gt;
&lt;br /&gt;
  CUR = 1&lt;br /&gt;
  CUR {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;CUR&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;CUR last&amp;quot;&amp;gt; | &amp;lt;span class=&amp;quot;invisible&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    doNotLinkIt = 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Gleiche Einstellungen für die nächsten Ebenen&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.2 = TMENU&lt;br /&gt;
temp.listMenu.2 &amp;lt; temp.listMenu.1&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.3 = TMENU&lt;br /&gt;
temp.listMenu.3 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.4 = TMENU&lt;br /&gt;
temp.listMenu.4 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Classic (not accessible) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.listMenu = HMENU&lt;br /&gt;
&lt;br /&gt;
# Falls das Menü nicht bei der obersten Ebene anfangen soll&lt;br /&gt;
 temp.listMenu.entryLevel = 1&lt;br /&gt;
&lt;br /&gt;
# Bei Bedarf einzelne Seiten aus dem Menü ausschließen&lt;br /&gt;
#temp.listMenu.excludeUidList = 1,2,3&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.1 = TMENU&lt;br /&gt;
temp.listMenu.1 {&lt;br /&gt;
  wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
  noBlur = 1&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für nicht-aktive Seiten&lt;br /&gt;
&lt;br /&gt;
  NO {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;NO&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;|*|&amp;lt;li class=&amp;quot;NO last&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für Seiten, die sich in der Rootline befinden&lt;br /&gt;
&lt;br /&gt;
  ACT = 1&lt;br /&gt;
  ACT {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;ACT&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;ACT last&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    ATagTitle.field = abstract // description&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
# Einstellungen für die aktuelle Seite&lt;br /&gt;
&lt;br /&gt;
  CUR = 1&lt;br /&gt;
  CUR {&lt;br /&gt;
    wrapItemAndSub = |*| &amp;lt;li class=&amp;quot;CUR&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;CUR last&amp;quot;&amp;gt; | &amp;lt;/li&amp;gt;&lt;br /&gt;
    stdWrap.htmlSpecialChars = 1&lt;br /&gt;
    doNotLinkIt = 0&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Gleiche Einstellungen für die nächsten Ebenen&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.2 = TMENU&lt;br /&gt;
temp.listMenu.2 &amp;lt; temp.listMenu.1&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.3 = TMENU&lt;br /&gt;
temp.listMenu.3 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
temp.listMenu.4 = TMENU&lt;br /&gt;
temp.listMenu.4 &amp;lt; temp.listMenu.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Multilanguage Menu ===&lt;br /&gt;
[[Typo3 - Multilanguage Menu]]&lt;br /&gt;
=== Bilder Menü ===&lt;br /&gt;
siehe: [[Typo3 - Bildermenü]]&lt;br /&gt;
=== Einfaches Menü mit 1 Ebene (CSS) ===&lt;br /&gt;
siehe: [[Menue als CSS formatierte Liste]]&lt;br /&gt;
&lt;br /&gt;
=== Menü mit 2 Ebenen als verschachtelte Liste ===&lt;br /&gt;
Dieses Menü ist besonders für vertikale Navigationen geeignet&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Einstieg Level 1&lt;br /&gt;
navi-L12-startID = 1&lt;br /&gt;
navi-L12-delimiter = &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
navi-L12-delimiter =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Top Navigation ###&lt;br /&gt;
temp.navi-L12 = HMENU&lt;br /&gt;
temp.navi-L12 {&lt;br /&gt;
  #stdWrap.case = lower&lt;br /&gt;
  special = directory&lt;br /&gt;
  # Seitenid für den Einstieg&lt;br /&gt;
  special.value = {$navi-L12-startID}&lt;br /&gt;
  # Ebene für den Einstieg (nicht vergessen wg. 2. Level)&lt;br /&gt;
  entryLevel = 1&lt;br /&gt;
  1 = TMENU&lt;br /&gt;
  1{&lt;br /&gt;
    noBlur = 1&lt;br /&gt;
    wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
    NO = 1&lt;br /&gt;
    NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
    ACT = 1&lt;br /&gt;
    ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
    ACTIFSUB = 1&lt;br /&gt;
    #Wenn Unterpunkte dann li aufmachen&lt;br /&gt;
    ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&lt;br /&gt;
  }&lt;br /&gt;
  2 = TMENU&lt;br /&gt;
  2{&lt;br /&gt;
   noBlur = 1&lt;br /&gt;
   NO = 1&lt;br /&gt;
   #Unterpunkt also neue ul und danach li zu (von L1 geöffnet)&lt;br /&gt;
   wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
   ACT = 1&lt;br /&gt;
   ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$navi-L12-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  #ACTIFSUB = 1&lt;br /&gt;
  #ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Menü mit 2 Ebenen als separate Listen ===&lt;br /&gt;
Dieses Menü ist besonders für horizontale Navigationen geeignet. &lt;br /&gt;
&lt;br /&gt;
Da die 2. Ebene relativ angegeben wird muß man bei mehreren Navigationsbäumen aufpassen, daß evt. ein Untermenü einer anderen Navigation (anderer Baum) ebenfalls angezeigt wird. Das läßt sich z.B. umgehen in dem man das Navitemplate erst im Unterbaum setzt oder indem man im Hauptbaum eine Bedingung setzt ([PIDinRootline = 123])&lt;br /&gt;
&lt;br /&gt;
Ebene 1 ist im Prinzip eine einfache Liste:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Navi nur Level1&lt;br /&gt;
#Startpunkt&lt;br /&gt;
navi_startID = 1&lt;br /&gt;
&lt;br /&gt;
#Trennzeichen für horizontale Navi:&lt;br /&gt;
naviL1-delimiter = &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Top Navigation ###&lt;br /&gt;
temp.naviL1 = HMENU&lt;br /&gt;
temp.naviL1 {&lt;br /&gt;
  #stdWrap.case = lower&lt;br /&gt;
  special = directory&lt;br /&gt;
  # Seitenid für den Einstieg&lt;br /&gt;
  special.value = {$navi_startID}&lt;br /&gt;
  1 = TMENU&lt;br /&gt;
  1.noBlur = 1&lt;br /&gt;
  1.wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
  1.NO = 1&lt;br /&gt;
  1.NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$naviL1-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
  1.ACT = 1&lt;br /&gt;
  1.ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$naviL1-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
  #1.ACTIFSUB = 1&lt;br /&gt;
  #1.ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Ebene 2 wird eine weitere Liste generiert wenn man sich in einem bestimmten Level befindet:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Navigation nur ab Level x  als ul (Standard entry Level1=2.Level)&lt;br /&gt;
&lt;br /&gt;
#Trennzeichen für horizontale Navi:&lt;br /&gt;
naviLx-delimiter = &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
naviLx-entryLevel = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.naviLx = HMENU&lt;br /&gt;
temp.naviLx {&lt;br /&gt;
  # Seitenbaumebene ab Level 1 darstellen (2. Ebene)&lt;br /&gt;
   entryLevel = {$naviLx-entryLevel}&lt;br /&gt;
# Level 2&lt;br /&gt;
   1 = TMENU&lt;br /&gt;
   1{&lt;br /&gt;
      noBlur = 1&lt;br /&gt;
      wrap = &amp;lt;ul&amp;gt;|&amp;lt;/ul&amp;gt;&lt;br /&gt;
      NO = 1&lt;br /&gt;
   # Für horizontale Navi mit delimiter bei vertikal einfach nichts setzen&lt;br /&gt;
      NO.linkWrap = |*| &amp;lt;li&amp;gt;|{$naviLx-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      ACT = 1&lt;br /&gt;
   # Für vertikale Navi ohne delimiter...      &lt;br /&gt;
      #ACT.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;&lt;br /&gt;
   # und horizontal mit delimiter&lt;br /&gt;
      ACT.linkWrap =  |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|{$naviLx-delimiter}&amp;lt;/li&amp;gt; |*| &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&amp;lt;/li&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
      #ACTIFSUB = 1&lt;br /&gt;
      #ACTIFSUB.linkWrap = &amp;lt;li class=&amp;quot;on&amp;quot;&amp;gt;|&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Menü als CSS formatierte Liste (allgemein) ===&lt;br /&gt;
[[Menue als CSS formatierte Liste]]&lt;br /&gt;
=== CSS-Flyout Menü ===&lt;br /&gt;
[[Typo3 - CSS-Flyout Menü]]&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
=== Autoparser (automaketemplate und Templateswitcher (tx_rlmptmplselector) konfigurieren ===&lt;br /&gt;
Der Template - Switcher benötigt automaketemplate (oder man arbeitet direkt mit TS-Templates). &lt;br /&gt;
Am besten gleich beide in einem Basis Template konfigurieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### SET UP TEMPLATE SELECTOR ###&lt;br /&gt;
plugin.tx_rlmptmplselector_pi1 {&lt;br /&gt;
&lt;br /&gt;
// Define the paths leading to our HTML template files&lt;br /&gt;
   templatePathMain = fileadmin/dinos/templates/main/&lt;br /&gt;
   templatePathSub = fileadmin/dinos/templates/sub/&lt;br /&gt;
&lt;br /&gt;
      // Define the filenames used as the default HTML templates&lt;br /&gt;
   defaultTemplateFileNameMain = main.html&lt;br /&gt;
   defaultTemplateFileNameSub = sub01.html&lt;br /&gt;
&lt;br /&gt;
      // If there is a page having no template selected, use a template&lt;br /&gt;
      // selected earlier in the rootline. If there is none, use the default&lt;br /&gt;
    inheritMainTemplates = 1&lt;br /&gt;
    inheritSubTemplates = 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
### Autoparser Konfigurieren (alle IDs als Marker) ###&lt;br /&gt;
&lt;br /&gt;
plugin.tx_automaketemplate_pi1{&lt;br /&gt;
#  content = FILE&lt;br /&gt;
#  content.file = fileadmin/templates/main/main.html&lt;br /&gt;
&lt;br /&gt;
  content &amp;lt; plugin.tx_rlmptmplselector_pi1&lt;br /&gt;
  elements {&lt;br /&gt;
    BODY.all = 1&lt;br /&gt;
    BODY.all.subpartMarker = DOCUMENT_BODY&lt;br /&gt;
    HEAD.all = 1&lt;br /&gt;
    HEAD.all.subpartMarker = DOCUMENT_HEADER&lt;br /&gt;
    HEAD.all.rmTagSections = title&lt;br /&gt;
    DIV.all = 1&lt;br /&gt;
    TD.all = 1&lt;br /&gt;
  }&lt;br /&gt;
    relPathPrefix = fileadmin/dinos/templates/main/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== News - Modul ===&lt;br /&gt;
Hier gibt es fertige Konfigurationen:&lt;br /&gt;
[[News (tt_news)]]&lt;br /&gt;
&lt;br /&gt;
=== eCards - sr_sendcard ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The Fast Way:&lt;br /&gt;
# plugin.tx_srsendcard_pi1._CSS_DEFAULT_STYLE = @import url(&amp;quot;fileadmin/dinos/templates/css/srsendcard.css&amp;quot;);&lt;br /&gt;
# But better is this (more flexible lesser Overhead)&lt;br /&gt;
&lt;br /&gt;
plugin.tx_srsendcard_pi1._CSS_DEFAULT_STYLE &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[PIDinRootline = 14]&lt;br /&gt;
page.includeCSS.file2 = fileadmin/dinos/templates/srsendcard/srsendcard.css&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
plugin.tx_srsendcard_pi1{&lt;br /&gt;
&lt;br /&gt;
templateFile = fileadmin/dinos/templates/srsendcard/srsendcard.tmpl&lt;br /&gt;
locale_all = de_DE&lt;br /&gt;
oldYear = 2006&lt;br /&gt;
# Vorschauseite (wenn gewünscht)&lt;br /&gt;
# previewPID = your_page_id&lt;br /&gt;
enableHTMLMail = 1&lt;br /&gt;
siteEmail = info@start-reutlingen.de&lt;br /&gt;
siteName = Erben der Dinos&lt;br /&gt;
# musicDir = EXT:sr_sendcard/music&lt;br /&gt;
#cardMusicFiles = autumnleaves.mid, OverTheRainbow.mid, Pomp_and_Circumstance.mid&lt;br /&gt;
disableMusic = 1&lt;br /&gt;
maxCol = 2&lt;br /&gt;
imageSmallWidth = 150&lt;br /&gt;
imageSmallHeight = 150&lt;br /&gt;
imageBigWidth = 300&lt;br /&gt;
imageBigHeight = 300&lt;br /&gt;
#logo&lt;br /&gt;
#logoAlignHor = right&lt;br /&gt;
#logoAlignVert = bottom&lt;br /&gt;
#useAlternateImageOnPrint&lt;br /&gt;
### For use with other pids use this one too&lt;br /&gt;
#createPID&lt;br /&gt;
#formPID&lt;br /&gt;
#previewPID&lt;br /&gt;
#useCAPTCHA = 0&lt;br /&gt;
#viewPID&lt;br /&gt;
#printPID&lt;br /&gt;
### Erscheinungsbild ###&lt;br /&gt;
cardStamp = fileadmin/dinos/templates/srsendcard/stamp.gif&lt;br /&gt;
#date_stdWrap&lt;br /&gt;
disableSendDate = 1&lt;br /&gt;
cardBgcolors = #FFFFFF,#A00A1C,#FF993F&lt;br /&gt;
cardFontcolors = #000000, #FFFFFF,#A00A1C&lt;br /&gt;
#disableFontcolors&lt;br /&gt;
#disableFontfaces&lt;br /&gt;
#disableCardOptions&lt;br /&gt;
#graphicMess&lt;br /&gt;
#graphicMessWidth&lt;br /&gt;
#graphicMessFontFiles&lt;br /&gt;
#graphicMessFontSizes&lt;br /&gt;
#fontDir&lt;br /&gt;
#doNotShowCardCaptions&lt;br /&gt;
cardPresentationOrder = manual&lt;br /&gt;
salutation = informal&lt;br /&gt;
#disableBgcolors = 1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zufallsbild tx_ccrandomimage ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript - Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### zufallsbild erzeugen ###&lt;br /&gt;
includeLibs.tx_ccrandomimage = EXT:cc_random_image/pi1/class.tx_ccrandomimage_pi1.php&lt;br /&gt;
&lt;br /&gt;
// USER_INT means &amp;#039;no caching&amp;#039;&lt;br /&gt;
temp.randomImage = USER_INT&lt;br /&gt;
temp.randomImage{&lt;br /&gt;
  userFunc = tx_ccrandomimage_pi1-&amp;gt;main&lt;br /&gt;
  path = fileadmin/randomImage/&lt;br /&gt;
  fileExt = jpg,jpeg,gif,png&lt;br /&gt;
  #Das Render Objekt ist ein content object array (COA) mit einem Bild&lt;br /&gt;
  #Vor dem Rendern werden die ###FILE_x### marker mit den Bildern aus path ersetzt&lt;br /&gt;
  renderObj = COA&lt;br /&gt;
  renderObj {&lt;br /&gt;
    10 = IMAGE&lt;br /&gt;
    10.file = ###FILE_1###&lt;br /&gt;
    // ... weitere Bilder wenn benötigt&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nützliche TS-Templates ==&lt;br /&gt;
=== xhtml optimierung ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#######################################################&lt;br /&gt;
############ XHTML optimieren&lt;br /&gt;
#######################################################&lt;br /&gt;
&lt;br /&gt;
#Default Javascripts in externes File auslagern&lt;br /&gt;
config.removeDefaultJS = 1&lt;br /&gt;
config.removeDefaultJS = external&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;?xml... ?&amp;gt; Prolog deaktivieren&lt;br /&gt;
config.xmlprologue = none&lt;br /&gt;
&lt;br /&gt;
#&amp;lt;html lang=&amp;quot;de&amp;quot; xml:lang=&amp;quot;de&amp;quot;&amp;gt; auf de setzen&lt;br /&gt;
config.htmlTag_langKey = de&lt;br /&gt;
&lt;br /&gt;
#CSS Datei in externes File auslagern&lt;br /&gt;
config.inlineStyle2TempFile = 1&lt;br /&gt;
config.disablePrefixComment = 1&lt;br /&gt;
&lt;br /&gt;
#RTE Tuning&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag &amp;gt;&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.DIV.class &amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Angabe von Tags, die nicht mit einem zusätzlichen wrap umgeben werden dürfen&lt;br /&gt;
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.encapsTagList =  div, p, h1, h2, h3, h4, h5, h6&lt;br /&gt;
&lt;br /&gt;
#Entfernt die zusätzlichen CSS-Klassen&lt;br /&gt;
lib.stdheader.3 = LOAD_REGISTER&lt;br /&gt;
lib.stdheader.3.headerClass =&lt;br /&gt;
lib.stdheader.3.headerClass.noTrimWrap = |&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap = |&lt;br /&gt;
&lt;br /&gt;
#Standard-Headings aufräumen&lt;br /&gt;
lib.stdheader.stdWrap.dataWrap =&lt;br /&gt;
lib.stdheader.10.1.fontTag = &amp;lt;h1&amp;gt;|&amp;lt;/h1&amp;gt;&lt;br /&gt;
lib.stdheader.10.2.fontTag = &amp;lt;h2&amp;gt;|&amp;lt;/h2&amp;gt;&lt;br /&gt;
lib.stdheader.10.3.fontTag = &amp;lt;h3&amp;gt;|&amp;lt;/h3&amp;gt;&lt;br /&gt;
lib.stdheader.10.4.fontTag = &amp;lt;h4&amp;gt;|&amp;lt;/h4&amp;gt;&lt;br /&gt;
lib.stdheader.10.5.fontTag = &amp;lt;h5&amp;gt;|&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Content Elemente aufräumen und Kommentare entfernen&lt;br /&gt;
#tt_content.stdWrap.dataWrap &amp;gt;&lt;br /&gt;
tt_content.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
#tt_content.header.20.dataWrap &amp;gt;&lt;br /&gt;
tt_content.header.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.default.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.text.20.prefixComment &amp;gt;&lt;br /&gt;
tt_content.textpic.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.table.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.mailform.20.stdWrap.wrap &amp;gt;&lt;br /&gt;
tt_content.menu.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.image.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
tt_content.list.20.stdWrap.prefixComment &amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Cleargif entfernen&lt;br /&gt;
tt_content.image.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.header.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.spaceBefore = 0&lt;br /&gt;
tt_content.stdWrap.spaceAfter = 0&lt;br /&gt;
lib.stdheader.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
#Auch hinter den Headlines&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
# Sicherstellen, dass nonTypoTagStdWrap nur im Inhalt außerhalb von&lt;br /&gt;
#&amp;lt;typolist&amp;gt; und &amp;lt;typohead&amp;gt; arbeitet:&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typolist.breakoutTypoTagContent = 1&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.breakoutTypoTagContent = 1&lt;br /&gt;
&lt;br /&gt;
# ... und kein &amp;lt;BR&amp;gt; vor dem typohead.&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.stdWrap.wrap &amp;gt;&lt;br /&gt;
# Einstellen von nonTypoTagStdWrap, dass der Text mit P-Tags umschlossen wird.&lt;br /&gt;
tt_content.text.20.parseFunc.nonTypoTagStdWrap &amp;gt;&lt;br /&gt;
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines {&lt;br /&gt;
encapsTagList = div, p&lt;br /&gt;
remapTag.DIV = P&lt;br /&gt;
wrapNonWrappedLines = |&lt;br /&gt;
innerStdWrap_all.ifEmpty =&lt;br /&gt;
innerStdWrap_all.textStyle &amp;lt; tt_content.text.20.textStyle&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Schließlich noch Entfernen der alten textstyle-Formatierung des gesamten Haupttextes.&lt;br /&gt;
tt_content.text.20.textStyle &amp;gt;&lt;br /&gt;
&lt;br /&gt;
# ... und der &amp;lt;BR&amp;gt;-Tag nach dem Inhalt wird auch nicht mehr gebraucht...&lt;br /&gt;
tt_content.text.20.wrap &amp;gt;&lt;br /&gt;
&lt;br /&gt;
# clear.gif entfernen&lt;br /&gt;
tt_content.image.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.header.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.space = 0|0&lt;br /&gt;
tt_content.stdWrap.spaceBefore = 0&lt;br /&gt;
tt_content.stdWrap.spaceAfter = 0&lt;br /&gt;
lib.stdheader.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
# clear.gif hinter den Überschriften entfernen&lt;br /&gt;
tt_content.text.20.parseFunc.tags.typohead.stdWrap.space = 0|0&lt;br /&gt;
&lt;br /&gt;
#Attribute für p- und pre-tags entfernen&lt;br /&gt;
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes {&lt;br /&gt;
P.style=&lt;br /&gt;
PRE.style=&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Unterdrückt den Umbruch &amp;lt; br &amp;gt;&lt;br /&gt;
lib.stdheader.10.stdWrap.wrap = |&lt;br /&gt;
tt_content.textpic.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.image.20.spaceBelowAbove = 0&lt;br /&gt;
tt_content.textpic.20.noStretchAndMarginCells = 1&lt;br /&gt;
tt_content.image.20.noStretchAndMarginCells = 1&lt;br /&gt;
&lt;br /&gt;
# Setup Anker-Tags entfernen&lt;br /&gt;
tt_content.noANameTagForFirstRecord = 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inhalte von Backend-Feldern ausgeben ===&lt;br /&gt;
Hinweise dazu findest du unter:&lt;br /&gt;
&lt;br /&gt;
[[TypoScript - Daten auslesen]]&lt;br /&gt;
&lt;br /&gt;
=== Ein Breadcrumb Menü (Rootline-Menü) ===&lt;br /&gt;
Constants&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#[begin-level] | [end-level]&lt;br /&gt;
# Variante 1: Seite 1 | Seite 2 | Seite 3&lt;br /&gt;
rootlineDelimiter = &amp;amp;nbsp;&amp;amp;#124;&amp;amp;nbsp;&lt;br /&gt;
# Variante 2: Seite 1 &amp;gt; Seite 2 &amp;gt; Seite 3&lt;br /&gt;
# delimiter = &amp;amp;nbsp;&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setup&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.rootline = HMENU&lt;br /&gt;
temp.rootline {&lt;br /&gt;
   special = rootline&lt;br /&gt;
&lt;br /&gt;
# zeige komplette rootline an&lt;br /&gt;
   special.range = 2|-1&lt;br /&gt;
&lt;br /&gt;
# Variation: zeige Link auf die übergeordnete Seite&lt;br /&gt;
   #special.range = -2|-2&lt;br /&gt;
&lt;br /&gt;
# Text vor dem Rootline Menü&lt;br /&gt;
   wrap = Sie sind hier:&amp;amp;nbsp;|&lt;br /&gt;
&lt;br /&gt;
   special.targets.3 = page&lt;br /&gt;
   1 = TMENU&lt;br /&gt;
   1.target = _top&lt;br /&gt;
   1.NO {&lt;br /&gt;
   	ATagBeforeWrap = 0&lt;br /&gt;
   	stdWrap.htmlSpecialChars = 1&lt;br /&gt;
   	linkWrap = |{$rootlineDelimiter}|*||*| |&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 1]&lt;br /&gt;
temp.rootline.wrap = You are here:&amp;amp;nbsp;|&lt;br /&gt;
[GLOBAL]&lt;br /&gt;
&lt;br /&gt;
[globalVar = GP:L = 2]&lt;br /&gt;
temp.rootline.wrap = Vous êtes ici:&amp;amp;nbsp;|&lt;br /&gt;
[GLOBAL]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ein CSS-Template mit Markern nutzen ===&lt;br /&gt;
Ein CSS File wird eingelesen, enthaltene Marker dynamisch ersetzt und die Styles im Headerbereich der Seite als Inline-Styles eingebunden.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
color1 = FFE292&lt;br /&gt;
color2 = F68D6F&lt;br /&gt;
color3 = FABD9E&lt;br /&gt;
&lt;br /&gt;
backgroundImage = fileadmin/templates/main/images/navBack-grey.gif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Setup &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# das Objekt zunächst als Bibliothek zur späteren Verwendung&lt;br /&gt;
lib.stylesheet.default = TEMPLATE&lt;br /&gt;
lib.stylesheet.default {&lt;br /&gt;
# template einlesen&lt;br /&gt;
  template = FILE&lt;br /&gt;
  template.file=fileadmin/templates/main/colors.css&lt;br /&gt;
# Platzhalter ersetzten&lt;br /&gt;
  marks{&lt;br /&gt;
     COLOR1 = TEXT&lt;br /&gt;
     COLOR1.value = {$color1}&lt;br /&gt;
     COLOR2 = TEXT&lt;br /&gt;
     COLOR2.value = {$color2}&lt;br /&gt;
     COLOR3 = TEXT&lt;br /&gt;
     COLOR3.value = {$color3}&lt;br /&gt;
     &lt;br /&gt;
     NAVBACK = TEXT&lt;br /&gt;
     NAVBACK.value = {$backgroundImage}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Stylesheet in Header eintragen&lt;br /&gt;
page.headerData{&lt;br /&gt;
   90 = COA&lt;br /&gt;
   90{&lt;br /&gt;
      wrap = &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&amp;lt;!-- | --&amp;gt;&amp;lt;/style&amp;gt;&lt;br /&gt;
      50 &amp;lt; lib.stylesheet.default&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bild aus Media-Feld auslesen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.mediaFieldImage=IMAGE&lt;br /&gt;
temp.mediaFieldImage.file {  &lt;br /&gt;
  import.data = levelmedia: 2,slide  &lt;br /&gt;
  import = uploads/media/  &lt;br /&gt;
  import.listNum = 0  &lt;br /&gt;
  #width = 270  &lt;br /&gt;
  #height= 300&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bild aus Ressourcen Feld auslesen ===&lt;br /&gt;
Hinweis Seiteneigenschaften &amp;gt; Resourcen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 temp.mein Bild = IMG_RESSOURCE&lt;br /&gt;
 temp.mein Bild{&lt;br /&gt;
  file = hintergrund*.jpg&lt;br /&gt;
  stdWrap.wrap = &amp;lt;div style=&amp;quot;background-image: | ; padding: 5px;&amp;quot;&amp;gt; ein Kasten &amp;lt;/div&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis: Typo3 vergibt beim vervielfältigen automatisch eine Endung. Damit das Bild trotzdem immer gefunden wird, ein Sternchen setzen (Joker)&lt;br /&gt;
&lt;br /&gt;
=== Bild automatisch mit Alt-Tag versehen ===&lt;br /&gt;
Dieses TypoScript füllt das Alt-Tag Feld mit Daten aus dem Bildnamen z.B. wird Unser_Urlaubsort.jpg zu Unser Urlaubsort&lt;br /&gt;
&lt;br /&gt;
[[Bild automatisch mit Alt-Tag versehen]]&lt;br /&gt;
&lt;br /&gt;
=== Logo mit Verlinkung auf die Homepage (1.2)===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Link für das Logo&lt;br /&gt;
# Zahl (Seiten-ID), URL (www.zielseite.de) oder Email-Adresse&lt;br /&gt;
logoLink = 1&lt;br /&gt;
logoFile = fileadmin/templates/images/logo.gif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Setup &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Fügt ein Logo mit Link ein&lt;br /&gt;
&lt;br /&gt;
temp.logo = IMAGE&lt;br /&gt;
temp.logo {&lt;br /&gt;
   #file = /fileadmin/dinos/templates/main/images/logo-rt.gif&lt;br /&gt;
   file = {$logoFile}&lt;br /&gt;
   stdWrap.typolink.parameter = {$logoLink}&lt;br /&gt;
}   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright mit immer aktuellem Jahr ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TypoScript Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.copyright = COA&lt;br /&gt;
temp.copyright{&lt;br /&gt;
   5= TEXT&lt;br /&gt;
   5.value = &amp;amp;copy;&amp;amp;nbsp;&lt;br /&gt;
   10 = TEXT&lt;br /&gt;
   #HeUte Timestamp einlesen&lt;br /&gt;
   10.data = date:U&lt;br /&gt;
   10.data.strftime = %Y &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ein anderes Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
subparts.footer{&lt;br /&gt;
   10 = TEXT&lt;br /&gt;
   10.data = date:Y&lt;br /&gt;
   10.wrap = &amp;lt;p class=&amp;quot;footer&amp;quot;&amp;gt;&amp;amp;copy;&amp;amp;nbsp;|&amp;amp;nbsp;Ich&amp;lt;/p&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum der letzten Änderung anzeigen ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Constants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 lastChangePrefix = Letzte Änderung:&amp;amp;nbsp;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.lastChange = COA&lt;br /&gt;
temp.lastChange.5 = TEXT&lt;br /&gt;
temp.lastChange.5.value={$lastChangePrefix}&lt;br /&gt;
temp.lastChange.10 = TEXT&lt;br /&gt;
temp.lastChange.10.register:SYS_LASTCHANGED&lt;br /&gt;
temp.lastChange.10.strftime = %d.%m.%Y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Variante ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temp.lastChange = TEXT&lt;br /&gt;
temp.lastChange {&lt;br /&gt;
  data = page:lastUpdated&lt;br /&gt;
  if.isTrue.data = page:lastUpdated&lt;br /&gt;
  date = d.m.Y&lt;br /&gt;
  wrap = Letzte Änderung:&amp;amp;nbsp;|&lt;br /&gt;
  wrap2 = |&lt;br /&gt;
  data = register : SYS_LASTCHANGED&lt;br /&gt;
  if &amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Seiten IDs im Seitenbaum anzeigen ===&lt;br /&gt;
UserTS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
  pageTree.showPageIdWithTitle = 1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Die Ausgabe von Inhalten verändern ==&lt;br /&gt;
&lt;br /&gt;
=== Layout-Rahmen verändern===&lt;br /&gt;
[[Typo3 - Rahmen (Frames)]]&lt;br /&gt;
&lt;br /&gt;
=== Rendering von Inhalten ===&lt;br /&gt;
&lt;br /&gt;
=== Ausgeben von Informationen im head der Seite ===&lt;br /&gt;
Wie kann man Stylesheet angaben, Metatags, Skripte etc. im Header ausgeben&lt;br /&gt;
[[Typo3 - Tipps und Tricks]] (page.head Objekt)&lt;br /&gt;
&lt;br /&gt;
=== Unnötige Ausgaben im Quelltext verhindern ===&lt;br /&gt;
[[TYPO3 - Unnötige Ausgaben im Quelltext verhindern]]&lt;br /&gt;
&lt;br /&gt;
== TypoScript - Basiswissen ==&lt;br /&gt;
[[Links mit TypoSkript anlegen]]&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
&lt;br /&gt;
weitere Infos zu Indexed Search:&lt;br /&gt;
&lt;br /&gt;
[[Typo3 - indexed search]]&lt;br /&gt;
&lt;br /&gt;
== Benutzer ==&lt;br /&gt;
=== Autor-Feld bei neuen Seiten automatisch anlegen ===&lt;br /&gt;
 TCAdefaults.pages.author = &amp;lt;Name des Redakteurs&amp;gt;&lt;br /&gt;
 TCAdefaults.pages.author_email = &amp;lt;EMail-Adresse des Redakteurs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das funktioniert aber nur dann wenn eine Seite neu angelegt wird. Will man viele Seiten einem Redakteur zuordnen kann man das über eien MySQL abfrage machen:&lt;br /&gt;
&lt;br /&gt;
 UPDATE `pages` SET `author` = &amp;#039;&amp;lt;Name des Redakteurs&amp;gt;&amp;#039;, `author_email` =&lt;br /&gt;
 &amp;#039;&amp;lt;EMail-Adresse des Redakteurs&amp;gt;&amp;#039;&lt;br /&gt;
 WHERE 1 AND `perms_userid` = &amp;lt;UserId des Redakteurs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in perms_userid steht die ID des Besitzers der Seite, deshalb kann man diesen mit Hilfe des Whereclause ausfiltern.&lt;br /&gt;
&lt;br /&gt;
=== Author Feld, Email-Feld und News Author automatisch anlegen ===&lt;br /&gt;
Als weitere Möglichkeit gibt es die Extension cron_setdefaultauthor die genau diese Aufgaben übernimmt. Sie arbeitet im Prinzip wie oben angeführt.&lt;/div&gt;</summary>
		<author><name>91.47.54.137</name></author>
	</entry>
</feed>