<?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.32.69.151</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.32.69.151"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/91.32.69.151"/>
	<updated>2026-05-06T17:55:58Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=1068</id>
		<title>Typo3 - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=1068"/>
		<updated>2007-06-26T19:18:08Z</updated>

		<summary type="html">&lt;p&gt;91.32.69.151: /* Extension einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== Navigation ==&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;
=== 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;
&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;
== TypoScript - Basiswissen ==&lt;br /&gt;
[[Links mit TypoSkript anlegen]]&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifende einfache Suche ===&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifendes Suchfeld mit Indexed Search ===&lt;br /&gt;
&lt;br /&gt;
==== Extension einbinden ====&lt;br /&gt;
Indexed Search Engine (indexed_search)installieren&lt;br /&gt;
(Standardmäßig vorhanden)&lt;br /&gt;
&lt;br /&gt;
Translation Handling -&amp;gt; Übersetzungen aktualisieren&lt;br /&gt;
&lt;br /&gt;
==== HTML-Template &amp;amp; CSS ====&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Einschränken des Suchbereichs im Template =====&lt;br /&gt;
Im Template werden folgende Marker eingesetzt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_begin--&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_end--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sind keine Marker vorhanden wird alles Durchsucht ist nur einer der Marker vorhanden wird alles nach (begin Marker) bzw. vor (end Marker) dem Marker durchsucht&lt;br /&gt;
&lt;br /&gt;
===== CSS =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#searchBox input{&lt;br /&gt;
  width: 140px;&lt;br /&gt;
}&lt;br /&gt;
#searchBox input.searchBox-button{&lt;br /&gt;
position: relative;&lt;br /&gt;
border: none;&lt;br /&gt;
width: auto;&lt;br /&gt;
top: 2px;&lt;br /&gt;
}&lt;br /&gt;
div.tx-indexedsearch-whatis{&lt;br /&gt;
padding-left: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Extension ====&lt;br /&gt;
&lt;br /&gt;
TypoScript indexedSearch-config (V1.1)&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;
searchRoot = 1&lt;br /&gt;
searchResultPage = 4&lt;br /&gt;
searchPic = fileadmin/common/images/lupe.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;
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE &amp;gt;&lt;br /&gt;
page.config.index_enable = 1&lt;br /&gt;
config{&lt;br /&gt;
   # Index-Suche einschalten&lt;br /&gt;
   index_enable = 1 &lt;br /&gt;
   # Externe Dateien auch durchsuchen (pdf,doc...benötigt Erweiterungen)       &lt;br /&gt;
   index_externals = 0&lt;br /&gt;
}&lt;br /&gt;
plugin.tx_indexedsearch{&lt;br /&gt;
   # Startpunkte der Suche (12,45...)&lt;br /&gt;
   search.rootPidList = {$searchRoot}&lt;br /&gt;
   # Diverse Optionen zur Anzeige im Frontend...&lt;br /&gt;
   show.rules = 0&lt;br /&gt;
   show.resultNumber = 0&lt;br /&gt;
   blind.sections = 1&lt;br /&gt;
   show.L1sections = 0&lt;br /&gt;
   show.L2sections = 0&lt;br /&gt;
   show.advancedSearchLink = 0&lt;br /&gt;
&lt;br /&gt;
   # auf bestimmte Medientypen einschränken&lt;br /&gt;
   # search.mediaList = pdf, doc&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Temporäres Objekt für das Suchfeld (in neueren Versionen auch Templates möglich &lt;br /&gt;
# es kann auch die macina Searchbox eingesetzt werden (Template Support Mehrsprachigkeit...)&lt;br /&gt;
&lt;br /&gt;
temp.searchBox = TEXT&lt;br /&gt;
temp.searchBox.insertData = 1&lt;br /&gt;
temp.searchBox.value (&lt;br /&gt;
&amp;lt;div class=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;index.php?id={$searchResultPage}&amp;amp;tx_indexedsearch[sword]&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;tx_indexedsearch[sword]&amp;quot; value=&amp;quot;Suche&amp;quot; class=&amp;quot;searchBox-field&amp;quot; title=&amp;quot;Suche&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;{$searchPic}&amp;quot; alt=&amp;quot;Start&amp;quot; title=&amp;quot;Start&amp;quot; class=&amp;quot;searchBox-button&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;stype&amp;quot; value=&amp;quot;L0&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;scols&amp;quot; value=&amp;quot;tt_content.header-bodytext-imagecaption&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;locationData&amp;quot; value=&amp;quot;{$searchResultPage}:pages:{$searchResultPage}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#plugin.tx_macinasearchbox_pi1.pidSearchpage = {$searchResultPage}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== im Main Template ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ### SearchBox ###&lt;br /&gt;
 subparts.searchBox &amp;lt; temp.searchBox&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.32.69.151</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=971</id>
		<title>Typo3 - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=971"/>
		<updated>2007-06-26T15:32:28Z</updated>

		<summary type="html">&lt;p&gt;91.32.69.151: /* CSS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== Navigation ==&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;
=== 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;
&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;
== TypoScript - Basiswissen ==&lt;br /&gt;
[[Links mit TypoSkript anlegen]]&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifende einfache Suche ===&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifendes Suchfeld mit Indexed Search ===&lt;br /&gt;
&lt;br /&gt;
==== Extension einbinden ====&lt;br /&gt;
Indexed Search Engine (indexed_search)installieren&lt;br /&gt;
(Standardmäßig vorhanden) &lt;br /&gt;
&lt;br /&gt;
==== HTML-Template &amp;amp; CSS ====&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Einschränken des Suchbereichs im Template =====&lt;br /&gt;
Im Template werden folgende Marker eingesetzt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_begin--&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_end--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sind keine Marker vorhanden wird alles Durchsucht ist nur einer der Marker vorhanden wird alles nach (begin Marker) bzw. vor (end Marker) dem Marker durchsucht&lt;br /&gt;
&lt;br /&gt;
===== CSS =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#searchBox input{&lt;br /&gt;
  width: 140px;&lt;br /&gt;
}&lt;br /&gt;
#searchBox input.searchBox-button{&lt;br /&gt;
position: relative;&lt;br /&gt;
border: none;&lt;br /&gt;
width: auto;&lt;br /&gt;
top: 2px;&lt;br /&gt;
}&lt;br /&gt;
div.tx-indexedsearch-whatis{&lt;br /&gt;
padding-left: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Extension ====&lt;br /&gt;
&lt;br /&gt;
TypoScript indexedSearch-config (V1.1)&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;
searchRoot = 1&lt;br /&gt;
searchResultPage = 4&lt;br /&gt;
searchPic = fileadmin/common/images/lupe.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;
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE &amp;gt;&lt;br /&gt;
page.config.index_enable = 1&lt;br /&gt;
config{&lt;br /&gt;
   # Index-Suche einschalten&lt;br /&gt;
   index_enable = 1 &lt;br /&gt;
   # Externe Dateien auch durchsuchen (pdf,doc...benötigt Erweiterungen)       &lt;br /&gt;
   index_externals = 0&lt;br /&gt;
}&lt;br /&gt;
plugin.tx_indexedsearch{&lt;br /&gt;
   # Startpunkte der Suche (12,45...)&lt;br /&gt;
   search.rootPidList = {$searchRoot}&lt;br /&gt;
   # Diverse Optionen zur Anzeige im Frontend...&lt;br /&gt;
   show.rules = 0&lt;br /&gt;
   show.resultNumber = 0&lt;br /&gt;
   blind.sections = 1&lt;br /&gt;
   show.L1sections = 0&lt;br /&gt;
   show.L2sections = 0&lt;br /&gt;
   show.advancedSearchLink = 0&lt;br /&gt;
&lt;br /&gt;
   # auf bestimmte Medientypen einschränken&lt;br /&gt;
   # search.mediaList = pdf, doc&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Temporäres Objekt für das Suchfeld (in neueren Versionen auch Templates möglich &lt;br /&gt;
# es kann auch die macina Searchbox eingesetzt werden (Template Support Mehrsprachigkeit...)&lt;br /&gt;
&lt;br /&gt;
temp.searchBox = TEXT&lt;br /&gt;
temp.searchBox.insertData = 1&lt;br /&gt;
temp.searchBox.value (&lt;br /&gt;
&amp;lt;div class=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;index.php?id={$searchResultPage}&amp;amp;tx_indexedsearch[sword]&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;tx_indexedsearch[sword]&amp;quot; value=&amp;quot;Suche&amp;quot; class=&amp;quot;searchBox-field&amp;quot; title=&amp;quot;Suche&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;{$searchPic}&amp;quot; alt=&amp;quot;Start&amp;quot; title=&amp;quot;Start&amp;quot; class=&amp;quot;searchBox-button&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;stype&amp;quot; value=&amp;quot;L0&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;scols&amp;quot; value=&amp;quot;tt_content.header-bodytext-imagecaption&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;locationData&amp;quot; value=&amp;quot;{$searchResultPage}:pages:{$searchResultPage}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#plugin.tx_macinasearchbox_pi1.pidSearchpage = {$searchResultPage}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== im Main Template ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ### SearchBox ###&lt;br /&gt;
 subparts.searchBox &amp;lt; temp.searchBox&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.32.69.151</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=970</id>
		<title>Typo3 - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=970"/>
		<updated>2007-06-26T15:26:44Z</updated>

		<summary type="html">&lt;p&gt;91.32.69.151: /* Suche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== Navigation ==&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;
=== 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;
&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;
== TypoScript - Basiswissen ==&lt;br /&gt;
[[Links mit TypoSkript anlegen]]&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifende einfache Suche ===&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifendes Suchfeld mit Indexed Search ===&lt;br /&gt;
&lt;br /&gt;
==== Extension einbinden ====&lt;br /&gt;
Indexed Search Engine (indexed_search)installieren&lt;br /&gt;
(Standardmäßig vorhanden) &lt;br /&gt;
&lt;br /&gt;
==== HTML-Template &amp;amp; CSS ====&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Einschränken des Suchbereichs im Template =====&lt;br /&gt;
Im Template werden folgende Marker eingesetzt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_begin--&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_end--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sind keine Marker vorhanden wird alles Durchsucht ist nur einer der Marker vorhanden wird alles nach (begin Marker) bzw. vor (end Marker) dem Marker durchsucht&lt;br /&gt;
&lt;br /&gt;
==== CSS ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Extension ====&lt;br /&gt;
&lt;br /&gt;
TypoScript indexedSearch-config (V1.1)&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;
searchRoot = 1&lt;br /&gt;
searchResultPage = 4&lt;br /&gt;
searchPic = fileadmin/common/images/lupe.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;
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE &amp;gt;&lt;br /&gt;
page.config.index_enable = 1&lt;br /&gt;
config{&lt;br /&gt;
   # Index-Suche einschalten&lt;br /&gt;
   index_enable = 1 &lt;br /&gt;
   # Externe Dateien auch durchsuchen (pdf,doc...benötigt Erweiterungen)       &lt;br /&gt;
   index_externals = 0&lt;br /&gt;
}&lt;br /&gt;
plugin.tx_indexedsearch{&lt;br /&gt;
   # Startpunkte der Suche (12,45...)&lt;br /&gt;
   search.rootPidList = {$searchRoot}&lt;br /&gt;
   # Diverse Optionen zur Anzeige im Frontend...&lt;br /&gt;
   show.rules = 0&lt;br /&gt;
   show.resultNumber = 0&lt;br /&gt;
   blind.sections = 1&lt;br /&gt;
   show.L1sections = 0&lt;br /&gt;
   show.L2sections = 0&lt;br /&gt;
   show.advancedSearchLink = 0&lt;br /&gt;
&lt;br /&gt;
   # auf bestimmte Medientypen einschränken&lt;br /&gt;
   # search.mediaList = pdf, doc&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Temporäres Objekt für das Suchfeld (in neueren Versionen auch Templates möglich &lt;br /&gt;
# es kann auch die macina Searchbox eingesetzt werden (Template Support Mehrsprachigkeit...)&lt;br /&gt;
&lt;br /&gt;
temp.searchBox = TEXT&lt;br /&gt;
temp.searchBox.insertData = 1&lt;br /&gt;
temp.searchBox.value (&lt;br /&gt;
&amp;lt;div class=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;index.php?id={$searchResultPage}&amp;amp;tx_indexedsearch[sword]&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;tx_indexedsearch[sword]&amp;quot; value=&amp;quot;Suche&amp;quot; class=&amp;quot;searchBox-field&amp;quot; title=&amp;quot;Suche&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;{$searchPic}&amp;quot; alt=&amp;quot;Start&amp;quot; title=&amp;quot;Start&amp;quot; class=&amp;quot;searchBox-button&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;stype&amp;quot; value=&amp;quot;L0&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;scols&amp;quot; value=&amp;quot;tt_content.header-bodytext-imagecaption&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;locationData&amp;quot; value=&amp;quot;{$searchResultPage}:pages:{$searchResultPage}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#plugin.tx_macinasearchbox_pi1.pidSearchpage = {$searchResultPage}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== im Main Template ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ### SearchBox ###&lt;br /&gt;
 subparts.searchBox &amp;lt; temp.searchBox&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.32.69.151</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=969</id>
		<title>Typo3 - Baukasten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Typo3_-_Baukasten&amp;diff=969"/>
		<updated>2007-06-26T15:24:21Z</updated>

		<summary type="html">&lt;p&gt;91.32.69.151: /* Seitenübergreifendes Suchfeld mit Indexed Search */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== Navigation ==&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;
=== 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;
&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;
== TypoScript - Basiswissen ==&lt;br /&gt;
[[Links mit TypoSkript anlegen]]&lt;br /&gt;
&lt;br /&gt;
== Suche ==&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifende einfache Suche ===&lt;br /&gt;
&lt;br /&gt;
=== Seitenübergreifendes Suchfeld mit Indexed Search ===&lt;br /&gt;
&lt;br /&gt;
==== Extension einbinden ====&lt;br /&gt;
Indexed Search Engine (indexed_search)installieren&lt;br /&gt;
(Standardmäßig vorhanden) &lt;br /&gt;
&lt;br /&gt;
==== HTML-Template &amp;amp; CSS ====&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== Einschränken des Suchbereichs im Template =====&lt;br /&gt;
Im Template werden folgende Marker eingesetzt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_begin--&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;!--TYPO3SEARCH_end--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sind keine Marker vorhanden wird alles Durchsucht ist nur einer der Marker vorhanden wird alles nach (begin Marker) bzw. vor (end Marker) dem Marker durchsucht&lt;br /&gt;
&lt;br /&gt;
==== CSS ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Konfiguration der Extension ====&lt;br /&gt;
&lt;br /&gt;
TypoScript indexedSearch-config (V1.02)&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;
# Startposition(en) im Seitenbaum &lt;br /&gt;
searchRoot = 1&lt;br /&gt;
searchResultPage = 4&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;
config{&lt;br /&gt;
   # Index-Suche einschalten&lt;br /&gt;
   index_enable = 1 &lt;br /&gt;
   # Externe Dateien auch durchsuchen (pdf,doc...benötigt Erweiterungen)       &lt;br /&gt;
   index_externals = 0&lt;br /&gt;
}&lt;br /&gt;
plugin.tx_indexedsearch{&lt;br /&gt;
   # Startpunkte der Suche (12,45...)&lt;br /&gt;
   search.rootPidList = {$searchRoot}&lt;br /&gt;
   # Diverse Optionen zur Anzeige im Frontend...&lt;br /&gt;
   show.rules = 0&lt;br /&gt;
   show.resultNumber = 0&lt;br /&gt;
   blind.sections = 1&lt;br /&gt;
   show.L1sections = 0&lt;br /&gt;
&lt;br /&gt;
   # auf bestimmte Medientypen einschränken&lt;br /&gt;
   # search.mediaList = pdf, doc&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Temporäres Objekt für das Suchfeld (in neueren Versionen auch Templates möglich &lt;br /&gt;
# es kann auch die macina Searchbox eingesetzt werden (Template Support Mehrsprachigkeit...)&lt;br /&gt;
&lt;br /&gt;
temp.searchBox = TEXT&lt;br /&gt;
temp.searchBox.insertData = 1&lt;br /&gt;
temp.searchBox.value (&lt;br /&gt;
&amp;lt;div class=&amp;quot;searchBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;index.php?id={$searchResultPage}&amp;amp;amp;tx_indexedsearch[sword]&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;tx_indexedsearch[sword]&amp;quot; value=&amp;quot;Suche&amp;quot; class=&amp;quot;searchBox-field&amp;quot; title=&amp;quot;Suche&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;image&amp;quot; src=&amp;quot;fileadmin/templates/img/lupe.gif&amp;quot; alt=&amp;quot;Start&amp;quot; title=&amp;quot;Start&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;stype&amp;quot; value=&amp;quot;L0&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;scols&amp;quot; value=&amp;quot;tt_content.header-bodytext-imagecaption&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;locationData&amp;quot; value=&amp;quot;{$searchResultPage}:pages:{$searchResultPage}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#plugin.tx_macinasearchbox_pi1.pidSearchpage = {$searchResultPage}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== im Main Template ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setup:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ### SearchBox ###&lt;br /&gt;
 subparts.searchBox &amp;lt; temp.searchBox&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.32.69.151</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=1524</id>
		<title>PHP - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=PHP_-_Tipps_und_Tricks&amp;diff=1524"/>
		<updated>2007-06-26T11:37:24Z</updated>

		<summary type="html">&lt;p&gt;91.32.69.151: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Weiterleitung mit PHP ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 header(&amp;quot;Location: http://www.myHomepage.net&amp;quot;);&lt;br /&gt;
 exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ausgaben zwischenspeichern oder in Variablen umleiten ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Problem: Die Ausgabe von echo oder von includes soll zuerst in einer Variablen gespeichert werden, damit Sie nicht gleich ausgegeben werden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
Das läßt sich lösen indem man die Ausgabe zunächst puffert und dann den Puffer in eine Variable lädt.&lt;br /&gt;
 basicartsstudios at hotmail dot com&lt;br /&gt;
21-Jan-2007 10:39&lt;br /&gt;
Sometimes you might not want to include a php-file under the specifications defined in the functions include() or require(), but you might want to have in return the string that the script in the file &amp;quot;echoes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Include() and require() both directly put out the evaluated code.&lt;br /&gt;
&lt;br /&gt;
For avoiding this, try output-buffering:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
eval(file_get_contents($file));&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
ob_start();&lt;br /&gt;
include($file);&lt;br /&gt;
$result = ob_get_contents();&lt;br /&gt;
ob_end_clean();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which i consider the same, correct me if I&amp;#039;m wrong.&lt;br /&gt;
&lt;br /&gt;
Best regards, BasicArtsStudios&lt;/div&gt;</summary>
		<author><name>91.32.69.151</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Htaccess&amp;diff=988</id>
		<title>Htaccess</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Htaccess&amp;diff=988"/>
		<updated>2007-06-26T11:36:01Z</updated>

		<summary type="html">&lt;p&gt;91.32.69.151: /* Weiterleitung mit .htaccess */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Anwendung von .htaccess - Dateien ==&lt;br /&gt;
=== Weiterführende Links: ===&lt;br /&gt;
http://httpd.apache.org/docs/1.3/howto/htaccess.html&lt;br /&gt;
&lt;br /&gt;
von: http://www.uni-duesseldorf.de/Service/Webmaster/htaccess.php3 Juli 2006&lt;br /&gt;
&lt;br /&gt;
Referenz: Apache Manual: http://www.uni-duesseldorf.de/apache-manual/&lt;br /&gt;
&lt;br /&gt;
=== Wozu braucht man das ?===&lt;br /&gt;
An wen ein HTTP-Server Dokumente herausgibt, welche spezielle Verarbeitung er u.U. bei einer spezifischen Anforderung (einem request) durchführt - all das wird zunächst durch eine von der Server-Software abhängigen Konfiguration bestimmt, die ein Administrator - ein Webmaster - eingerichtet hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft ist es aber wünschenswert, daß einzelne Verantwortliche für eine Dokumentenhierarchie auf dem Web-Server selbst ohne Intervention des Webmasters Setzungen vornehmen können, daß z.B. auf einzelne Dokumente oder alle in einem bestimmten Verzeichnis nur ein Zugriff aus bestimmten Domains oder mit verifiziertem Usernamen möglich ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim Apache-HTTP-Server wie seinem Vorgänger, dem NCSA-httpd, gibt es diese Möglichkeiten durch die Einrichtung von .htaccess-Dateien in dem jeweiligen Verzeichnis. In der folgenden Darstellung wird als Referenz jeweils ein Verweis auf den entsprechenden Abschnitt in der lokale Kopie der Apache-Dokumentation für die Version 1.2 gegeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Achtung:&amp;#039;&amp;#039;&amp;#039; In der Server-Konfiguration kann ein anderer Name als .htaccess vereinbart sein (AccesFileName-Direkt ive).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Zweiter Hinweis:&amp;#039;&amp;#039;&amp;#039; Die Datei muß für den HTTP-Server lesbar sein, z.B. dadurch erreicht, daß sie öffentlich lesbar ist:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 .htaccess &lt;br /&gt;
&lt;br /&gt;
=== Zugriffsbeschränkung auf eine Domain === &lt;br /&gt;
==== für alle Dateien in einem Verzeichnis ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;.htaccess&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 order deny,allow&lt;br /&gt;
 deny  from all&lt;br /&gt;
 allow from .uni-duesseldorf.de 134.99 &lt;br /&gt;
&lt;br /&gt;
Alle Dateien in dem Verzeichnis werden nur an Clients ausgeliefert, die eine IP-Adresse beginnend mit 134.99 oder einen Hostnamen endend mit uni-duesseldorf.de besitzen; anderenfalls erfolgt eine Fehlermeldung des Servers (403 Forbidden).&lt;br /&gt;
&lt;br /&gt;
Natürlich genügt in vielen Fällen eine der Alternativen. Beachten Sie dabei die Unterschiede:&lt;br /&gt;
&lt;br /&gt;
* Die Angabe des Domain-Namens allein schließt - bewußt oder nicht - den Zugriff von PC&amp;#039;s aus, die nicht im Domain Name System (DNS) registriert sind.&lt;br /&gt;
* Die Angabe des IP-Subnetzes allein kann andere ausschließen, die organisatorisch zur gleichen Domain gehören, technisch aber in einem anderen Subnetz hängen. &lt;br /&gt;
&lt;br /&gt;
Wie lässt sich diese Zugriffsbeschränkung testen? Normalerweise benötigt man dazu einen Internet-Zugang über einen anderen Provider (T-Online, AOL, Compuserve etc.). Oder man benutzt einen Browser auf dem Server selbst z.B. in folgender Weise:&lt;br /&gt;
&lt;br /&gt;
 lynx http://localhost/Service/Webmaster/htaccess.phtml &lt;br /&gt;
&lt;br /&gt;
Der Zugriff erfolgt dann über das Loopback-Interface mit der IP-Adresse 127.0.0.1.&lt;br /&gt;
&lt;br /&gt;
Referenz: order, deny, allow. &lt;br /&gt;
&lt;br /&gt;
==== für einzelne Dateien ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;.htaccess&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files huh*.html&amp;gt;&lt;br /&gt;
 order deny,allow&lt;br /&gt;
 deny  from all&lt;br /&gt;
 allow from .uni-duesseldorf.de 134.99&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugriffsbeschränkung wie oben gilt jetzt nur für die Dateien, deren Namen auf das hinter Files angegebene Muster passen. Es kann ein einzelner Name angegeben werden oder ein Muster mit den Wildcard-Zeichen ? für ein beliebiges einzelnes Zeichen oder * für eine beliebige Folge von Zeichen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schließlich sind auch feinere Muster über reguläre Ausdrücke möglich. Die Syntax der Files-Direktive dafür ist:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files ~ &amp;quot;regexp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Referenz: &amp;lt;Files&amp;gt;, order, deny, allow.&lt;br /&gt;
&lt;br /&gt;
=== Zugriffsbeschränkung über Passwort ===&lt;br /&gt;
==== für ein Verzeichnis ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;.htaccess&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName MeyersLeute&lt;br /&gt;
 AuthUserFile /home/meyer/passwd&lt;br /&gt;
 require valid-user&lt;br /&gt;
&lt;br /&gt;
Dokumente in einem Verzeichnis mit dieser .htaccess-Datei (oder einem Unterverzeichnis) können erst nach Eingabe eines gültigen Benutzernamen und Passwortes gelesen werden. Der Wert hinter AuthName wird vom Browser in der Dialog-Box für die Passwortabfrage angezeigt und dient gleichzeitig dazu, andere Dokumente mit dem gleichen Schutz zu erkennen und einmal eingelesene Werte für Username und Password ohne erneute Abfrage unmittelbar zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Hinter AuthUserFile steht der Pfad der Passwortdatei, die die Benutzernamen und (verschlüsselten) Passwörter enthält. Sie sieht etwa so aus:&lt;br /&gt;
&lt;br /&gt;
 /home/meyer/passwd&lt;br /&gt;
&lt;br /&gt;
 meyer:xm.kPd4VJc3Fo&lt;br /&gt;
 mueller:eJFQCL8GftDXI&lt;br /&gt;
&lt;br /&gt;
Auch die Passwortdatei muß für den HTTP-Server lesbar sein. Gerade deshalb sollte sie niemals in demselben Bereich liegen wie die vom Server bedienten Dokumente, da sonst zumindest die gültigen Benutzernamen lesbar wären. (Aus diesem Grund müssen Sie aber u.U. daran denken, auch das entsprechende Verzeichnis - wie /home/meyer im Beispiel - für den HTTP-Server zumindest suchbar zu setzen, also etwa:&lt;br /&gt;
&lt;br /&gt;
    chmod 711 /home/meyer &lt;br /&gt;
&lt;br /&gt;
Angelegt und gepflegt werden kann die Passwortdatei mit dem Programm htpasswd:&lt;br /&gt;
&lt;br /&gt;
    htpasswd -c /home/meyer/passwd meyer&lt;br /&gt;
    htpasswd /home/meyer/passwd mueller &lt;br /&gt;
&lt;br /&gt;
Referenz: AuthType, AuthName, AuthUserFile, require.&lt;br /&gt;
&lt;br /&gt;
==== für einzelne Dateien ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;.htaccess&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 AuthType Basic&lt;br /&gt;
 AuthName MeyersLeute&lt;br /&gt;
 AuthUserFile /home/meyer/passwd&lt;br /&gt;
 &amp;lt;Files Huh*.html&amp;gt;&lt;br /&gt;
 require user meyer mueller&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Kombination von 2. und 3. - Passwortschutz für einzelne Dateien in dem aktuellen Verzeichnis. Beim require wird hier noch eine andere Alternative gezeigt: die Aufzählung einzelner Benutzernamen aus der Passwortdatei. Wenn neue Benutzer in der Passwortdatei ergänzt werden, haben diese noch keinen Zugriff auf die so geschützten Seiten.&lt;br /&gt;
&lt;br /&gt;
Wenn die gleiche Liste von Benutzern an mehreren Stellen verwendet werden soll, ist die Definition der Liste über eine Gruppendatei empfehlenswert. Für diese dritte Alternative bzgl. der require-Direktive sind fogende Änderungen notwendig:&lt;br /&gt;
&lt;br /&gt;
1. In der .htaccess-Datei wird eine Gruppendatei angegeben:&lt;br /&gt;
 AuthGrouprFile /home/meyer/groups&lt;br /&gt;
Für den Ort der Ablage dieser Datei gelten dieselben Erwägungen wie für die Passwortdatei oben.&lt;br /&gt;
2. In der require-Direktive wird jetzt auf eine Gruppendefinition in der Gruppendatei Bezug genommen:&lt;br /&gt;
 require group meyers&lt;br /&gt;
3. Die Gruppendatei ist eine einfache Textdatei mit je einer Gruppendefinition pro Zeile in folgender Form: &lt;br /&gt;
&lt;br /&gt;
 /home/meyer/groups&lt;br /&gt;
 meyers: meyer mueller&lt;br /&gt;
&lt;br /&gt;
Referenz: AuthType, AuthName, AuthUserFile, AuthGroupFile, &amp;lt;Files&amp;gt;, require. &lt;br /&gt;
&lt;br /&gt;
===Spezielle Optionen===&lt;br /&gt;
==== automatischer Index (Directory Listing)====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;.htaccess&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 Options +Indexes&lt;br /&gt;
&lt;br /&gt;
Mittels der Options-Direktive können - so von der globalen Server-Konfiguration her erlaubt - Voreinstellungen für Verarbeitungsoptionen für das aktuelle Verzeichnis und Unterverzeichnisse überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
Die gezeigte Variante weist den Server an, bei der Referenz auf das aktuelle Verzeichnis oder ein Unterverzeichnis ein Directory-Listing als Index-Datei automatisch zu generieren. Er macht dies allerdings nur, wenn nicht schon eine Index-Datei (mit vordefiniertem Namen wie index.html) vorhanden ist. Ggf. kann man die hier bekannten Namen mit der Direktive&lt;br /&gt;
&lt;br /&gt;
    DirectoryIndex Welcome.html &lt;br /&gt;
&lt;br /&gt;
einschränken.&lt;br /&gt;
&lt;br /&gt;
Referenz: Options, DirectoryIndex.&lt;br /&gt;
&lt;br /&gt;
=== Weiterleitung mit .htaccess ===&lt;br /&gt;
&lt;br /&gt;
Hinweis: eine Alternative hierfür ist eine PHP Weiterleitung ([[PHP - Tipps und Tricks]])&lt;br /&gt;
Quelle Dr.Web 28.12.2006&lt;br /&gt;
&lt;br /&gt;
Sie können sowohl Zugriffe auf bestimmte Dateien als auch auf Verzeichnisse bequem weiterleiten. Das klappt innerhalb der eigenen Domain, aber auch mit externen Verweisen.&lt;br /&gt;
&lt;br /&gt;
Die Datei .htaccess kann mit jedem Text-Editor bearbeitet werden. Eine Umleitung könnte so aussehen:&lt;br /&gt;
&lt;br /&gt;
 Redirect /beispielverzeichnis http://www.drweb.de&lt;br /&gt;
&lt;br /&gt;
Ruft jemand die URL http://www.drweb.de/beispielverzeichnis auf landet er ohne weiteren Zwischenstopp direkt auf der Startseite.&lt;br /&gt;
&lt;br /&gt;
Mit Einzeldateien klappt es auch:&lt;br /&gt;
&lt;br /&gt;
 Redirect /beispielseite.shtml http://www.drweb.de&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
 Redirect /beispielseite.shtml neueseite.shtml&lt;br /&gt;
&lt;br /&gt;
Wer mag, kann die gesamte Domain auf eine andere umleiten&lt;br /&gt;
&lt;br /&gt;
 Redirect / http://www.drweb.de/&lt;br /&gt;
&lt;br /&gt;
Nützlich während Bauarbeiten, bei Reparaturen oder wenn Dateien durch andere ersetzt wurden. Da die Umleitung serverseitig geschieht, spielt der Browser des Besuchers keine Rolle.&lt;/div&gt;</summary>
		<author><name>91.32.69.151</name></author>
	</entry>
</feed>