Typo3 - Tipps und Tricks: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 70: Zeile 70:
  
 
== Metatags ==
 
== Metatags ==
 +
Stand 2016 am besten mit der metaseo Extension.
 +
 
=== Extended Metatags ===
 
=== Extended Metatags ===
bis dato (Version 4.1.3) Unverzichtbar
+
Extended Metatags ist veraltet. Besser metaseo verwenden (Stand Ende 2016)
 +
bis dato (Version 4.1.3) Unverzichtbar.
  
 
=== Title Tag ===
 
=== Title Tag ===
Zeile 102: Zeile 105:
  
 
Wie man im obenstehenden Beispiel sieht, lässt sich durch den TypoScript-Code sowohl vor als auch nach dem eigentlichen Seitentitel ein Text platzieren. Ausserdem können Sie bei Bedarf auch ein anderes Datenbankfeld ('field') anzeigen lassen, indem Sie in Zeile 10 einfach die Angabe 'title' durch einen anderen Wert ersetzen - z.B. 'nav_title', um den Navigationstitel der aktuellen Seite zu bekommen.
 
Wie man im obenstehenden Beispiel sieht, lässt sich durch den TypoScript-Code sowohl vor als auch nach dem eigentlichen Seitentitel ein Text platzieren. Ausserdem können Sie bei Bedarf auch ein anderes Datenbankfeld ('field') anzeigen lassen, indem Sie in Zeile 10 einfach die Angabe 'title' durch einen anderen Wert ersetzen - z.B. 'nav_title', um den Navigationstitel der aktuellen Seite zu bekommen.
 +
=== Beispiel tt_news Titel im title Tag ===
 +
<syntaxhighlight lang="typoscript">
 +
config.titleTagFunction >
 +
# [globalVar = TSFE:id = {$newsSinglePid}]
 +
 +
# Nachrichtentitel generieren ##
 +
temp.newsTitle = COA
 +
temp.newsTitle {
 +
  10 = RECORDS
 +
  10 {
 +
    source = {GP:tx_ttnews|tt_news}
 +
    source.insertData = 1
 +
    tables = tt_news
 +
    conf.tt_news >
 +
    conf.tt_news = TEXT
 +
    conf.tt_news.field=title
 +
    wrap = <title>|</title>
 +
  }
 +
}
 +
 +
page.config.noPageTitle = 2
 +
page.headerData.15 >
 +
page.headerData.15 < temp.newsTitle
 +
# [global]
 +
</syntaxhighlight>
  
 
== Rendering von Content Elementen und HTML ==
 
== Rendering von Content Elementen und HTML ==
Zeile 228: Zeile 256:
  
 
==== Daten einfügen ====
 
==== Daten einfügen ====
Allgemein kann man im Header beliebiges einbauen:
+
Allgemein kann man im Header über das Objekt page.headerData beliebiges einfügen. Oft muß man aber checken ob z.B. eine andere Extension schon etwas verarbeitet.
 +
==== Beispiel - Title Tag mit News Titel füllen ====
 +
<syntaxhighlight lang="typoscript">
 +
config.titleTagFunction >
 +
# [globalVar = TSFE:id = {$newsSinglePid}]
 +
 
 +
# Nachrichtentitel generieren ##
 +
temp.newsTitle = COA
 +
temp.newsTitle {
 +
  10 = RECORDS
 +
  10 {
 +
    source = {GP:tx_ttnews|tt_news}
 +
    source.insertData = 1
 +
    tables = tt_news
 +
    conf.tt_news >
 +
    conf.tt_news = TEXT
 +
    conf.tt_news.field=title
 +
    wrap = <title>TEST|</title>
 +
  }
 +
}
  
 +
page.config.noPageTitle = 2
 +
page.headerData.15 >
 +
page.headerData.15 < temp.newsTitle
 +
# [global]
 +
</syntaxhighlight>
 
<pre>
 
<pre>
 
### Header-Data ###
 
### Header-Data ###
Zeile 516: Zeile 568:
  
 
=== body Tag ===
 
=== body Tag ===
 +
https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html?highlight=page#bodytag
  
 
Im Page Objekt kann man das REndering des body tag beeinflussen:
 
Im Page Objekt kann man das REndering des body tag beeinflussen:
Zeile 1.031: Zeile 1.084:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===== Code Schnipplets =====
+
===== Code Snippets =====
  
 
<code>
 
<code>
Zeile 1.086: Zeile 1.139:
 
     MEINTEXT.20.text = Hallo Welt
 
     MEINTEXT.20.text = Hallo Welt
 
</code>
 
</code>
 
  
 
===== CSS styled content =====
 
===== CSS styled content =====

Aktuelle Version vom 13. Oktober 2016, 10:58 Uhr

mehr auf Typo3 - TS Templates

Typo3 - Wichtige TypoScript Einstellungen

Typo3 - Baukasten

Ausgabe aus der locallang_tca.xml Datei mit TypoScript verändern[Bearbeiten]

Beispiel:

plugin.tt_news._LOCAL_LANG.de.latestHeader = Aktuelles

Mit TypoScript auf die Datenbank zugreifen[Bearbeiten]

temp.veranstaltungstitel=TEXT
temp.veranstaltungstitel.data = DB:tabelle:uid:feldname

die uid kannst Du Dir aus der Url auslesen, z.B.

temp.veranstaltungstitel=TEXT
temp.veranstaltungstitel.data = DB:tt_news:{GPvar:tx_ttnews|tt_news}:title

Mit TypoScript auf POST und GET Variablen zugreifen[Bearbeiten]

Quelle: http://typo3-blog.net/tutorials/news/cookie-typoscript.html (8/2011)

TSRef: http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/2/2/

Mit .data Attribut des Typoscript TEXT-Objekts GET- und POST Variablen anzeigen[Bearbeiten]

GET- und POST Variablen, z.B. aus Ergebnissen von Formulareingaben können ebenfalls über data angezeigt werden:

temp.mycookie = TEXT
temp.mycookie.data = GPvar : formular
temp.mycookie.ifEmpty = Formular wurde noch nicht abgesendet
GPvar unterscheidet leider nicht zwischen POST- und GET Variablen was bei standardmäßig vorhandenen GET-Variablen (z.B. id und type) zu Verwirrungen führen kann. Deshalb sollte man solche Benennungen vermeiden.

Bei GP-Variablen, die als Array übergeben werden, z.B. ...&tx_cal_event[uid]=1&..., können die einzelnen Elemente so abgefragt werden:

temp.myVar = TEXT
temp.myVar.data = GPVar:tx_cal_event|uid

Mit TypoScript auf Cookies zugreifen[Bearbeiten]

Quelle: http://typo3-blog.net/tutorials/news/cookie-typoscript.html (8/2011)

TSRef: http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/2/2/


Cookies in TYPO3 per Typoscript anzeigen[Bearbeiten]

temp.mycookie = TEXT
temp.mycookie.data = global : HTTP_COOKIE_VARS | mycookie
temp.mycookie.ifEmpty = Cookie "mycookie" war nicht gesetzt

Dieser Typoscript Code gibt den Inhalt des Cookies Namens "mycookie" aus, wenn dieser gesetzt war. Ansonsten gibt er den alternativen Text 'Cookie "mycookie" war nicht gesetzt' aus.

Zeichensatz[Bearbeiten]

TYPO3 vollständig auf utf-8 umstellen[Bearbeiten]

TYPO3 auf utf-8 umstellen

Sonderzeichen wie Kaufmannsund wird nicht korrekt umgesetzt[Bearbeiten]

stdWrap.htmlSpecialChars = 1

Pipe Symbol und andere Sonderzeichen verwenden[Bearbeiten]

Das Pipesymbol wird in Wraps ja als Trennzeichen verwendet. Um es als Zeichen auszugeben kann man auch das HTML Entity verwenden (& #124;-siehe Quellcode) das Funktioniert natürlich auch mit anderen Sonderzeichen.

http://de.selfhtml.org/html/referenz/zeichen.htm

Zeilenumbruch im Quelltext[Bearbeiten]

Dies läßt sich mit der stdWrap Eigenschaft char erreichen:

myObject.stdWrap.char = 10

Metatags[Bearbeiten]

Stand 2016 am besten mit der metaseo Extension.

Extended Metatags[Bearbeiten]

Extended Metatags ist veraltet. Besser metaseo verwenden (Stand Ende 2016) bis dato (Version 4.1.3) Unverzichtbar.

Title Tag[Bearbeiten]

aus: http://www.jochen-froehlich.de/typo3-cms/service/typoscript-snippet/title-tag-im-html-header-dynamisch-erweitern/ Datum des Zugriffs: 30.10.2008 ypo3 setzt den Titel einer Seite (HTML-Tag 'title') standardmäßig auf den Seitentitel der aktuellen Seite. Es gibt jedoch Fälle, bei denen es von Vorteil sein kann, zusätzliche Informationen im Titel anzugeben: Beispielsweise ist es aussagekräftiger, wenn eine Seite im Ergebnis einer Suchmaschine wie Google erscheint und der Titel dabei nicht nur 'Kontakt' sondern z.B. 'Winkelmann GmbH - Kontakt' lautet.

Mit folgendem TypoScript-Code lässt sich der Seitentitel dynamisch ändern:

SETUP

 config {
   # <title>-Tag entfernen
   noPageTitle = 1
 }
 
 page {
   headerData {
     10 = TEXT
     10 {
       field = title
       wrap = <title>Titel: | - Text dahinter</title>
     }
   }
}

Es gibt noch eine andere Möglichkeit, den Seitentitel zu ändern, indem Sie unter Web/Template direkt das Feld Sitetitle ausfüllen.

Allerdings wird hierdurch nur ermöglicht, einen Text vor den Seitentitel zu bringen.

Wie man im obenstehenden Beispiel sieht, lässt sich durch den TypoScript-Code sowohl vor als auch nach dem eigentlichen Seitentitel ein Text platzieren. Ausserdem können Sie bei Bedarf auch ein anderes Datenbankfeld ('field') anzeigen lassen, indem Sie in Zeile 10 einfach die Angabe 'title' durch einen anderen Wert ersetzen - z.B. 'nav_title', um den Navigationstitel der aktuellen Seite zu bekommen.

Beispiel tt_news Titel im title Tag[Bearbeiten]

config.titleTagFunction >
# [globalVar = TSFE:id = {$newsSinglePid}]

# Nachrichtentitel generieren ##
temp.newsTitle = COA
temp.newsTitle {
  10 = RECORDS
  10 {
    source = {GP:tx_ttnews|tt_news}
    source.insertData = 1
    tables = tt_news
    conf.tt_news >
    conf.tt_news = TEXT
    conf.tt_news.field=title
    wrap = <title>|</title>
  }
}

page.config.noPageTitle = 2
page.headerData.15 >
page.headerData.15 < temp.newsTitle
# [global]

Rendering von Content Elementen und HTML[Bearbeiten]

weitere Infos unter:

Bilder werden in TYPO3 >6 zu dunkel gerendert[Bearbeiten]

https://webdesign-forum.net/thread-3858-post-17659.html (2016-07)

  • Graphics Magic verwenden wenn vorhanden
  • Installtool (LocalConfiguration.php) 'colorspace' => 'sRGB' eintragen, Systemcache löschen, normale Caches löschen
  • wenn trotz Umstellung nichts hilft in der DB mal sys_file_processedfile leeren, damit die Bilder neu generiert werden.

Typo3 - Content Elemente anpassen

Zeilenumbruch in Überschriften erlauben[Bearbeiten]

lib.stdheader.10.setCurrent.htmlSpecialChars = 0

Content auf allen Seiten einbinden[Bearbeiten]

  • Als erstes legen wir in einem separaten SysOrdner die benötigten Inhaltselemente an.
  • In einem kleinen Extension Template fügen wir die gewünschten Inhalte in einen Marker ein (hier FOOTER)

Setup:

page.10.subparts.FOOTER = RECORDS
page.10.subparts.FOOTER {
   tables = tt_content
   source = 105, 56
   dontCheckPid = 1
}

Erklärung: Aus der Tabelle tt_content in der alle Inhaltselemente gespeichert sind werden die Elemente mit der id 1105 und 56 ausgelesen und in den Subpart FOOTER geschrieben. Der Subpart ist vom Typ RECORDS und kann somit beliebige Inhaltselemente enthalten. Mit der Angabe dontCheckPid = 1 werden die Inhalte auch dann angezeigt, wenn die Seite versteckt ist.

Die ids der Elemente erfährt man, wenn man mit der Maus über den Content Element Symbolen in der List-Ansicht verharrt.

Wenn man auf einer Unterseite das Element nicht anzeigen will leert man einfach in einem Extension Template das Objekt:

page.10.subparts.FOOTER >

Content zusätzlich auf Unterseiten anzeigen (Vererbung von Inhalten)[Bearbeiten]

In älteren Versionen (< 4.0) konnte man dazu die Extension KB Content Slide nutzen. In neueren Versionen gibt es die Vererbung von Content Elementen. Sprich Unterseiten erben die Inhalte der Mutterseite.

Und so Funktioniert es:

Ein Content Element bekommt die Eigenschaft slide. Das führt dazu, daß z.B. die Inhaltselemente einer Spalte auch auf den Nachfolgenden Unterseiten angezeigt wird (z.B. eine Newsbox in der Randspalte) Es kann eingestellt werden ob bei vorhandensein eines Inhalts auf einer Unterseite dieser ersetzt wird, oder alle beide Inhalte angezeigt (gesammelt) werden.

Zusätzliche Eigenschaften für das cObject "CONTENT" Eigenschaft Datentyp Beschreibung

slide           integer         Aktiviert die Content-Vererbung. 
                                Die Anzahl der Ebenen muss angegeben werden, 
                                die nach oben hin gesucht werden soll. 
                                Bei -1 wird  bis zur Root-Seite  nach 
                                Inhalten gesucht. 
                                Bei der ersten Seite auf der etwas gefunden wird, wird gestoppt.

slide.collect   integer         Aktiviert das Sammeln von Inhalten. 
                                Die Anzahl der Ebenen muss angegeben werden, von denen der Inhalt 
                                gesammelt werden soll. Bei -1 wird bis zur Root-Seite gesucht.

                                Wenn sowohl collect als auch slide.collect mit einem anderen Wert als -1 
                                angegeben wurden, wird der kleinere Wert für das Sammeln genommen.
	
slide.collectReverse boolean    Normalerweise werden beim Sammeln der Content-Elemente die Inhalte der 
                                aktuellen Seite oben gezeigt und dann erst die der übergeordneten Seiten. 
                                Mit diesem Flag kann dies umgekehrt dargestellt werden.
	
slide.collectFuzzy boolean      Dieses Flag ist nur nützlich, wenn die Inhalte gesammelt werden. 
                                Wenn keine Inhalte bis zur angegebenen Ebene gefunden wurden, versucht TYPO3 
                                weiter einen Inhalt zu finden.
	
[tsref:(cObject).CONTENT]

Auch mit TemplaVoila funktioniert es: Content Slide mit TemplaVoila

Beispiele[Bearbeiten]

Beispiele aus: http://www.oliver-thiele.de/cms-typo3/tutorials/content-slide.html 12.11.2007

Das erste Beispiel aktiviert die Content-Vererbung für die rechte Spalte.

styles.content.getRight.slide = -1

2. Beispiel

styles.content.getRight.slide = -1
styles.content.getRight.slide {
    collect = -1
    # collectReverse = 1
}

Beispiel 2 ohne Verwendung von styles.content.get

   page.10.marks.CONTENT_NORMAL = CONTENT
   page.10.marks.CONTENT_NORMAL {
      table = tt_content
      slide = -1
      slide {
         collect = -1
         collectReverse = 1
      }
      select {
         where = colPos=0
         orderBy = sorting
         languageField = sys_language_uid
     }
  } 

Bei diesem Beispiel ist die Inhalts-Ausgabe auf dem Marker ###CONTENT_NORMAL### gemacht worden. Das Objekt 10 ist demnach das cObject "Template". styles.content.get ist demnach nur eine vereinfachte Schreibweise, die auch erst nach dem Hinzufügen der Statischen Templates css_styled_content oder damals content(default) funktionierte.

3. Beispiel Sourcecode für Text-Editor optimiert zeigen.

styles.content.getRight.slide = -1
styles.content.getRight.slide {
    collect = 2
    # collectReverse = 1
}

Daten im Header <head>[Bearbeiten]

Daten einfügen[Bearbeiten]

Allgemein kann man im Header über das Objekt page.headerData beliebiges einfügen. Oft muß man aber checken ob z.B. eine andere Extension schon etwas verarbeitet.

Beispiel - Title Tag mit News Titel füllen[Bearbeiten]

config.titleTagFunction >
# [globalVar = TSFE:id = {$newsSinglePid}]

# Nachrichtentitel generieren ##
temp.newsTitle = COA
temp.newsTitle {
  10 = RECORDS
  10 {
    source = {GP:tx_ttnews|tt_news}
    source.insertData = 1
    tables = tt_news
    conf.tt_news >
    conf.tt_news = TEXT
    conf.tt_news.field=title
    wrap = <title>TEST|</title>
  }
}

page.config.noPageTitle = 2
page.headerData.15 >
page.headerData.15 < temp.newsTitle
# [global]
### Header-Data ###
page.headerData{
   90 = COA
   90{
      50 = TEXT

      50.value (
<style type="text/css" media="all">
 @import "/fileadmin/templates/multiMenu/multimenu.css";

</style>

<!-- Multimenu js needed for it to work start-->
<script type="text/javascript" >
function init(){
    activateMenu('nav');
/*    activateMenu('vertnav');*/
}
</script>
 
<script src="/fileadmin/templates/multiMenu/multimenu.js" 
type="text/javascript">
</script>
<!-- Multimenu js end -->

      )
   }
}

Es geht oft auch einfacher z.B. mit JavaScript

page.includeJS {
  file1 = fileadmin/helloworld.js
  file1.type = application/x-javascript
  file2 = javascript_uploaded_to_template*.js
  file3 = EXT:meineextension/res/js/meinJS.js (nicht getestet)
}

oder CSS Dateien

includeCSS {
  file1 = fileadmin/mystylesheet1.css
  file2 = stylesheet_uploaded_to_template*.css
  file2.title = High contrast
  file2.media = print
}

Datum einfügen[Bearbeiten]

z.B. als Marker im Template und dann im TS-Setup so:

### datum ###
marks.DATE = COA_INT 
marks.DATE { 
  10 = TEXT 
  10.data = date:U
  10.strftime = %A, %d.%m.%Y
  10.wrap =  | 
}

Neuste Inhalte anzeigen[Bearbeiten]

Quelle: http://typo3.umloud.dk/index.php?id=360 22.5.2006

This shows the content elements in the normal column of the page last created/edited.

Note: "tstamp" ONLY get changed/set when you create a new page, or edit the page header NOT when you insert a content element on a page..

lib.newestContent = COA
lib.newestContent {
  # First we collect the uids on all levels of the site
 
  # Gets the uids on 1st level
  10 = LOAD_REGISTER
  10.level1uids.cObject = CONTENT
  10.level1uids.cObject {
    table = pages
    select.pidInList.data = leveluid:0
    renderObj = TEXT
    renderObj.field = uid
    renderObj.wrap = |,
  }

  # Gets the uids on 2nd level
  20 = LOAD_REGISTER
  20.level2uids.cObject = CONTENT
  20.level2uids.cObject {
    table = pages
    select.pidInList.cObject = TEXT
    select.pidInList.cObject.data = register:level1uids
    renderObj = TEXT
    renderObj.field = uid
    renderObj.wrap = |,
  }

  # Gets the uids on 3rd level
  30 = LOAD_REGISTER
  30.level3uids.cObject = CONTENT
  30.level3uids.cObject {
    table = pages
    select.pidInList.cObject = TEXT
    select.pidInList.cObject.data = register:level2uids
    renderObj = TEXT
    renderObj.field = uid
    renderObj.wrap = |,
  }

  # Gets the uids on 4th level
  40 = LOAD_REGISTER
  40.level4uids.cObject = CONTENT
  40.level4uids.cObject {
    table = pages
    select.pidInList.cObject = TEXT
    select.pidInList.cObject.data = register:level3uids
    renderObj = TEXT
    renderObj.field = uid
    renderObj.wrap = |,
  }

  # Gets the uids on 5th level
  50 = LOAD_REGISTER
  50.level5uids.cObject = CONTENT
  50.level5uids.cObject {
    table = pages
    select.pidInList.cObject = TEXT
    select.pidInList.cObject.data = register:level4uids
    renderObj = TEXT
    renderObj.field = uid
    renderObj.wrap = |,
  }

  # Gets the uids on 6th level
  60 = LOAD_REGISTER
  60.level5uids.cObject = CONTENT
  60.level5uids.cObject {
    table = pages
    select.pidInList.cObject = TEXT
    select.pidInList.cObject.data = register:level5uids
    renderObj = TEXT
    renderObj.field = uid
    renderObj.wrap = |,
  }

  # next we combine all of them into one list of uids
  70 = LOAD_REGISTER
  70.alluids.cObject = COA
  70.alluids.cObject {
    10 = TEXT
    10.data = register:level1uids

    20 = TEXT
    20.data = register:level2uids

    30 = TEXT
    30.data = register:level3uids

    40 = TEXT
    40.data = register:level4uids

    50 = TEXT
    50.data = register:level5uids

    60 = TEXT
    60.data = register:level6uids

    70 = TEXT
    70.data = leveluid:0
  }

  # Test output
  #75 = TEXT
  #75.data = register:alluids
  #75.wrap = [|]<br>

  # More Testoutput
  80 = CONTENT
  80 {
    table = pages
    select {
      pidInList.data = register:alluids
      orderBy = tstamp DESC
      max = 1
    }
    renderObj = COA
    renderObj {
      10 = TEXT
      10.field = title
      10.wrap = The newest page is: <b>|</b> 
      20 = TEXT
      20.field = tstamp
      20.strftime = %d-%b-%Y %H:%M:%S
      20.wrap = which was last edited: |<br>
    }
  }

  # And the final output of the content elements
  90 = COA
  90 {
    wrap = And here are the content in the normal column of that page:<hr>|<hr>
    10 = CONTENT
    10 {
      table = tt_content
      select {
        orderBy = sorting
        where = colPos=0
        languageField = sys_language_uid
        pidInList.cObject = CONTENT
        pidInList.cObject {
          table = pages
          select {
            pidInList.data = register:alluids
            orderBy = tstamp DESC
            max = 1
          }
          renderObj = TEXT
          renderObj.field = uid
        }
      }
    }
  }
}


Einstellungen für Bilder[Bearbeiten]

Größe (maximal, minimal, Popups, Skalierung, Bildunterschriften...)

Border Attribut loswerden[Bearbeiten]

config.config.disableImgBorderAttr = 1

Wichtig wenn man mit CSS arbeiten möchte.

Bilder Popup Funktion ändern[Bearbeiten]

Beispiel 1 Popup mit Topup

Das Beispiel zeigt nur wie die Popupfunktion verändert werden kann. Zusätzlich müssen die benötigten JavaScript Dateien eingebunden werden.

// Override Popup Images for use with topup

temp.imageLinkWrap = 1
temp.imageLinkWrap {
   enable.field = image_zoom
   enable.ifEmpty.typolink.parameter.field = image_link
   enable.ifEmpty.typolink.parameter.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
   enable.ifEmpty.typolink.returnLast = url

   typolink {
      target = {$styles.content.links.target}
      extTarget = {$styles.content.links.extTarget}

      # Link zum Bild
      parameter.cObject = IMG_RESOURCE
      parameter.cObject.file.import.data = TSFE:lastImageInfo|origFile
      parameter.cObject.file.maxW = {$styles.content.imgtext.linkWrap.width}

      # wenn image_link nicht leer parameter ueberschreiben
      parameter.override.field = image_link
      parameter.override.listNum.stdWrap.data = register : IMAGE_NUM_CURRENT
      parameter.override.if.isTrue.field = image_link

      ATagParams = title={field:header}
      ATagParams.override = title={field:header} class="top_up"
      ATagParams.insertData = 1
      ATagParams.if.isTrue.field = image_zoom
   }
}
// Alte Konfiguration löschen und mit neuer ersetzen
tt_content.image.20.1.imageLinkWrap >
tt_content.image.20.1.imageLinkWrap < temp.imageLinkWrap 
 

Link to Top[Bearbeiten]

Darstellung von Tabellen[Bearbeiten]

Betrifft hauptsächlich das static Template content(default)

clear.gif und Absätze loswerden[Bearbeiten]

content(default)

# Entfernen der <img src="clear.gif' ...>
content.headerSpace = 0|0
content.space = 0|0

body Tag[Bearbeiten]

https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html?highlight=page#bodytag

Im Page Objekt kann man das REndering des body tag beeinflussen:

page.bodyTag = <body>

Diverse Attribute für das body Tag

page {
    bodyTagCObject >
    bodyTagCObject = COA
    bodyTagCObject {

        ### id of page in root level:
        10 = TEXT
        10.data = levelfield:1, uid
        10.dataWrap =  id="pid{TSFE:id}" class="be-{TSFE:beUserLogin} rpid|

        ### current level/depth of page
        20 = TEXT
        20.data = level:1
        20.noTrimWrap = | level| |

        ### if page has subpages
        30 = TEXT
        30.value = has-subs
        30.if.isTrue.numRows {
            table = pages
            where = pid=this
        }

        ### if page has NO subpages
        40 = TEXT
        40.value = no-subs
        40.if.negate = 1
        40.if.isTrue.numRows {
            table = pages
            where = pid=this
        }

        50 = TEXT 
        50.value = "

        stdWrap.noTrimWrap = |<body |>|   
    }
}

externe Links[Bearbeiten]

_self oder _blank, aussehen...

styles.content.links.extTarget (bei css_styled_content)

Links und Sitemap[Bearbeiten]

Die Links einer eingebundenen Sitemap sind standardmäßig auf den Wert 'page' eingestellt (Typo 3.8). Das macht nur bei Framesets Sinn.

Die relevanten Setup-Werte die man ändern muß (je nach ausgewählter Sitemap):

tt_content.menu.20.1.1.target = _self
tt_content.menu.20.2. [...]

Link Target und Anzeige bei Downloadlisten (Filelinks)[Bearbeiten]

So kann man z.B. bei der Extension cssfilelinks das aussehen der Links vernünftig einstellen:

 tt_content.uploads.20.layout.fileSize.desc = Byte|kB|MB
 tt_content.uploads.20.layout.fileSize.char = none
 tt_content.uploads.20.layout.file = <div class="###CLASS###"><span><a href="###URL###" target="_blank">###TITLE###</a> ###FILESIZE###  ###CRID### ###MYMARK###</span><span>###DESCRIPTION###</span></div>

Listenpunkte und Aufzählungen[Bearbeiten]

Layoutauswahl[Bearbeiten]

siehe Typo3 - Rahmen (Frames) für Rahmen

und Typo3 - Backend anpassen für Header (Überschriften)

Inline CSS loswerden[Bearbeiten]

Bei vielen Extensions und bei CSS Styled ImgText liegt das CSS Inline. Besser wäre ist es das CSS komplett in eigene Dateien auszulagern.

# Inline Styles auslagern
config.inlineStyle2TempFile = true

JavaScript in externe Datei auslagern[Bearbeiten]

Z.B. der kleine JavaScript Schnipsel für das Blur im IE auslagern. Wie bindet man externes JavaScript ein...

siehe unter Typo3 - HTML Code optimieren

eine gute Beispielanwendung:

Typo3 - CSS-Flyout Menü

weitere Anwendungen:

- Ajax Gallery auf baum-und-garten.de

Ausgabe einer Spalte Wrappen[Bearbeiten]

Beispiel:

 #Inhalt rechts
 subparts.CONTENT_RIGHT < styles.content.getRight
 #Ganze Spalte Wrappen
 subparts.CONTENT_RIGHT.wrap = <div class="content_right"> | </div>
 #Einzelnes Element Wrappen 
 subparts.CONTENT_RIGHT.renderObj.stdWrap.wrap=<div class="bordered">|</div>

Ausgabe einer Spalte Wrappen wenn nicht leer[Bearbeiten]

Hier wird das content element nur mit einem div gewrapt wenn es nicht leer ist

temp.rightContent < styles.content.getRight
temp.rightContent.stdWrap {
  wrap = <div id="right-main"> | </div>
  if.isTrue.numRows < styles.content.getRight
}

(TypoWizard.com 9.1.2006)

p style="margin:0 0 0 0;" aus dem p-Tag rausnehmen[Bearbeiten]

tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P.style=

Backend anpassen[Bearbeiten]

Felder vorbelegen[Bearbeiten]

Typo3 - Backend Felder vorbelegen

Email Empfänger im Inhaltstyp Formular wird nicht angezeigt[Bearbeiten]

Damit die User den Inhaltstyp Formular nutzen können müssen Sie die E-Mail Empfänger Adresse eingeben. Das Funktioniert dann, wenn in den Rechten das Feld Seiteninhalt > Untertitel freigegeben ist. Nicht leicht zu finden...

Content element wizard ändern[Bearbeiten]

aus http://krungkuene.org/krung/wiki/Typo3.html 18.5.2006

Dafür erweitere die php-Klasse SC_db_new_content_el und speichere diese datei unter typo3conf/ux_SC_db_new_content_el.php

<?php class ux_SC_db_new_content_el extends SC_db_new_content_el {


 // Modify the Wizard Array, which holds the values shown at create new
 //record page:
 function wizardArray() {
   global $LANG,$TBE_MODULES_EXT;
   
   $wizardItems = array(
                        "common" => array("header"=>"Typical page content"),
                        
                        'common_1' => array(
                                            "icon"=>'../typo3conf/hos/intext_left_wi.gif',
                                            'title'=>'Text with Image to the left',
                                            'description'=>'A regular text element which contains a image positioned left to the text',
                                            'params'=>'&defVals[tt_content][CType]=textpic&defVals[tt_content][imageorient]=26&defVals[tt_content][imagewidth]=80',
                                            ),


                        "common_2" => array(
                                            "icon"=>'../typo3conf/hos/fdfx_2cols.gif',
                                            "title"=>'Two Column Text',
                                            "description"=>'A Text with two Column',
                                            'params'=>'&defVals[tt_content][CType]=fdfx_2cols_pi1'
                                            ),
                        
                        'common_3' => array(
                                            "icon"=>'../typo3conf/hos/intext_right_wi.gif',
                                            'title'=>'Text with big Image to the right',
                                            'description'=>'A regular text element which contains a image positioned right to the text',
                                            'params'=>'&defVals[tt_content][CType]=textpic&defVals[tt_content][imageorient]=25&defVals[tt_content][imagewidth]=480',
                                            'tt_content_defValues' => array(
                                                                            'CType' => 'textpic',
                                                                            'imageorient' => 25,
                                                                            'imagewidth' => 480,
                                                                            )
                                            ),
                        );
   
   return $wizardItems;
 }

} ?>

Um das ganze auch zu verwenden, mache diesen Eintrag in typo3conf/localconf.php

$TYPO3_CONF_VARS["BE"]["XCLASS"]["ext/cms/layout/db_new_content_el.php"] = PATH_typo3conf."class.ux_db_new_content_el.php";


Login Bild im Backend anpassen[Bearbeiten]

Quelle: http://www.allanime.org/?id=143

Introduction

The TYPO3 backend login displays a nice image left of the actual username/password login box. Currently an image of a pair of gloves is used. If you happen to install the CVS version of TYPO3 the image will differ from what you're used to see. I remember a yellow flower in older versions (3.6) of TYPO3 an image that is still present in /typo3/gfx/ named loginbox_image_360.jpg. What's happening there?


TYPO3 has a very cute feature which changes the login box image on certain circumstances. The code is actually in /typo3/index.php. Browsing this code I found another great feature: TYPO3 is also able to „rotate“ images given in a certain directory! All you have to do is, point TYPO3 to this directory. TYPO3 will load all image files in this directory and display a random image.


The way to show TYPO3 this directory is by setting the variable $TBE_STYLES['loginBoxImage_rotationFolder'] = path_to_dir/


Unfortunately there is no way to to so without some programming. The TYPO3 init script explicitly deletes the whole array before initializing the backend. The only way to set variables is by creating an extension.


This super-short Mini-howto will tell you how to set up this wonderful feature in 5 easy steps. I will assume you have access to your webserver by FTP and can create directories and upload files by FTP.

This is a short overview how it works:

  1. Set up a folder with images
  2. Create an extension
  3. Add 1 line to this extension and point TYPO3 to your image directory
  4. Install extension

Setting Up the Image Folder

First you have to prepare the images. One image is fine but of course the more the better. The original images are 200x133 pixel in size, I suggest you create some cute images of the same size but it's not necessary. Allowed are png, jpg and gif images.

Log on to your website using your favorite FTP tool. You can also set up a TYPO3 filemount to do the same.

Go to the directory typo3conf/


Create a new empty directory 'logonimages'. (Without quotes)

Copy the prepared images to this folder.

Create the Extension


Click images to enlarge. Image count from top to bottom.

„What? I never created an extension! I can never do this!“ - if that's what you say you're wrong. You can follow detailed instructions – and all we have to write is one single line of code – which you can as well copy from this document if you used the directory from the last step.

Log on to the TYPO3 backend as administrator. Ignore the ugly log on image <(^.^)>


   In the Tool menu use „Ext Manager.“ Of course you need to have this module installed. Showing you how to install extensions from the TER (TYPO Extension Repository) is not goal of this Mini-HOWTO.
    

Chose the item „Make new extension“ from the dropdown menu.


In the field "Enter Extension key" you type "user_enhancelogin". Then click on the button "Update."


Click on the plus symbol next to the line saying „General Info.“ Fill the form like shown in image . Don't forget to hit the "Update" button! Datei:ExtensionKickstarter01.jpg


   In the menu to the left click on the plus symbol next to „Extend existing tables.“ You do not need to type something there. It's just done to create the empty framework for our single line of code.


   At the bottom left of the content frame there is a button now saying „View Result.“ Click it. The result will look like that in image [4]. One really, really important note: Before proceeding you need to make sure in the location dropdown "LOCAL" is chosen! If you fail to do so, your extension might show up for all installations and - if installed -might yield in unexpected results.


   Now click the "WRITE" button and the raw empty extension is created.


That wasn't too complicated, was it?


Programming

As a result of the last step, a basic framework of extension has been written to the directory /typo3conf/ext/user_enhancelogin/


Now to the programming. Log on to your website using FTP and edit the following file:


typo3conf/user_enhancelogin/ext_tables.php


There are different ways to do this. Most advanced FTP programs have an "edit" button. Please refer to your FTP program's documentation.


Now this is what ext_tables.php should look like. As you can see there is only one line added.

<?php if (!defined('TYPO3_MODE')) die('Access denied.') $GLOBALS['TBE_STYLES']['loginBoxImage_rotationFolder'] =

                                        '../typo3conf/logonimages';

?>


Installing the Extension

After saving the extension there should be a success message and a link to install your new extension. Click it.

In the menu to the left please click the link „Clear temp_CACHED.“ In case you ever wondered what this link is for – this it is.

Log out of the TYPO3 backend and test the setup. If you followed the instructions of this manual you should now see your prepared images instead of the glove.

Suche[Bearbeiten]

Index-Suche – kein eigenes Fenster öffnen[Bearbeiten]

Constants

styles.content.searchresult.resultTarget = _self
styles.content.searchresult.target = _self

Domains anlegen[Bearbeiten]

Todo...

Rootline Navigation[Bearbeiten]

Ein Beispiel bei dem zusätzlich Englisch (L=1) berücksichtigt wird.

temp.rootline_html= HMENU
temp.rootline_html.special = rootline
temp.rootline_html.special.range = 0|-1
temp.rootline_html.1 = TMENU
temp.rootline_html.1 {
    wrap = Sie sind hier: |
   # evt. bestimte Seiten ausblenden...
   excludeUidList =
   # Sprache mit der ID 1 (Englisch)
  target = _top
  NO {
    linkWrap= <span class="pathway">|</span>
    # optionSplit: vor erstem item kein delimiter, sonst immer einer
    allWrap = | |*| > | |*| 
    ATagBeforeWrap = 0
  }
}

# Wrap für Englisch
[globalVar = GP:L = 1]
temp.rootline_html.1.wrap = You are here: |
[global]

Mehrsprachigkeit[Bearbeiten]

So baut man mehrsprachige Seiten in Typo3:

Typo3 - Mehrsprachige Seiten

Typo3 - Mehrsprachige Navigation

Spracheinstellungen[Bearbeiten]

HTML-Template einbinden[Bearbeiten]

siehe auch: Typo3 - HTML-Templates Beispiel (das page Objekt muß natürlich vorher definiert werden):

Im TS Template Setup:

 page.10 = TEMPLATE
 page.10{
   template = FILE
   template.file = fileadmin/templates/main.html
 
   ### Subparts ansprechen ###
   workOnSubpart = DOCUMENT_BODY
 
   # Rootline (Pathway) einfügen ###
   subparts.ROOTLINE < temp.rootline_html
   
   # Hauptinhalt
   subparts.CONTENT < layoutWrap
   subparts.CONTENT.wrap = <div class="content"> | </div>   
   
   #Inhalt rechts
   subparts.CONTENT_RIGHT < styles.content.getRight
   subparts.CONTENT_RIGHT.wrap = <div class="content"> | </div>
  
   # Rand bzw. Header
   subparts.HEADER < styles.content.getBorder
   subparts.HEADER <div class="header"> | </div>
   # subparts.HEADER < temp.flashHeader
  
   ### Hauptnavigation ###
   subparts.NAVI_LINKS < temp.navi_gLayer
  
   ### rechte Navi ###
   subparts.NAVI_RECHTS <temp.naviGRight
    
 }

Einstellungen für das Page Objekt[Bearbeiten]

Verschiedene Einstellungen[Bearbeiten]

Upload Größe für Anhang im Standard Mailform[Bearbeiten]

Die Größe für Attachements im Standard Mailform ist hart codiert und zwar in der Datei

/t3lib/class.t3lib_formmail.php

Soll aber konfigurierbar werden (Stand V.4.1.12 und 4.2.9)

Uploads[Bearbeiten]

Todo Verschiedene Stellen sind zu beachten: Apache, php, localconf.php (oder Install Tool) Einige Inhaltselemente können separat über TCA eingestellt werden.

Prüfung soll Typo3 später automatisch machen.

statische Seiten Simulieren[Bearbeiten]

Statische Seiten simulieren

config.simulateStaticDocuments = PATH_INFO
config.simulateStaticDocuments_addTitle = 30
config.simulateStaticDocuments = 1
config.admPanel = 1
config.simulateStaticDocuments_noTypeIfNoTitle = 1

.htaccess Datei für Apache Server nicht vergessen (muß nur unbenannt werden)

Einstellungen für das Admin Panel[Bearbeiten]

Email[Bearbeiten]

Spamschutz für Email Adressen[Bearbeiten]

config.spamProtectEmailAddresses = 1
config.spamProtectEmailAddresses_atSubst = (at)

Absender-Adresse der Formular Mails[Bearbeiten]

Wenn ein Email Feld angegegen wird dann kann man die E-Mail Adresse als Absender angeben:

Name | *name= input
Email-Adresse |*email=input

Wichtig ist, daß das Feld email heißt.


Antwort an:

| from_name=hidden | HfWU Mailer
| from_email=hidden | stephan.schlegel@hfwu.de

Mehr hier: TYPO3 - Mailform Absendeadresse

E-Mail-Absender für automatische E-Mails z.B. über Kontaktformular[Bearbeiten]

E-Mail-Adresse

plugin.feadmin.dmailsubscription.email = info(at)easy-office4you.de

E-Mail-Name

plugin.feadmin.dmailsubscription.emailName = Barbara Hofbauer

Typo3 RTE - Einstellungen[Bearbeiten]

Nach Update auf IE7 wird kein RTE mehr angezeigt[Bearbeiten]

In den älteren Typo3 Versionen wird der Internet Explorer 7 nicht erkannt. Folgende Änderung im Code vornehmen dann wird auch IE7 erkannt.

[typo3/t3lib/class.t3lib_div.php -> function clientInfo()]

..
} elseif (strstr($useragent,"MSIE 4") || strstr($useragent,"MSIE 5") ||
strstr($useragent,"MSIE 6")) {
$bInfo["BROWSER"]= "msie";
..

wird erweitert zu:

..
} elseif (strstr($useragent,"MSIE 4") || strstr($useragent,"MSIE 5") ||
strstr($useragent,"MSIE 6") || strstr($useragent,"MSIE 7")) {
$bInfo["BROWSER"]= "msie";
..

RTE Absatz Formatierung einstellen[Bearbeiten]

lib.parseFunc_RTE {
nonTypoTagStdWrap.encapsLines.nonWrappedTag >
nonTypoTagStdWrap.encapsLines.wrapNonWrappedLines = | 
}

HTML-Area (htmlarea) statt RTE[Bearbeiten]

Mit der Extension htmlarea kann man den RTE ersetzen. Er bietet einiges mehr an Bearbeitungsfunktionen (wenn man die denn will) aber vor allem läuft er auch auf Mozilla, Firefox, etc. Browsern.

htmlarea anpassen[Bearbeiten]

Die Möglichkeiten des htmlarea Editors sind oft zuviel des Guten. Die meisten Anpassungen des RTE funktionieren auch im htmlarea. Beispiele:

Minimale Funktionalität

Im Page Setup:

RTE.default {
	## Toolbar options applicable to all RTE's
	## The TCA configuration may add buttons to the toolbar
	showButtons =  bold,italic,undo,redo,about
}
    1. front end RTE configuration for the general public (htmlArea RTE only)

RTE.default.FE < RTE.default

Header Image austauschen[Bearbeiten]

Typo3 - Header Image austauschen

TypoScript[Bearbeiten]

Auf diverse Daten zugreifen[Bearbeiten]

http://www.typo3lexikon.de/typo3-tutorials/typoscript/referenz/gettext.html TypoScript - auf Daten zugreifen

Schnipsel von http://dokuwiki.intersolution.ch/linux/typo3/typoscript[Bearbeiten]

Typoscript[Bearbeiten]

Template erstellen[Bearbeiten]
# Cachetime nur zu Testzwecken auf 10 Sekunden setzen!!!
config.cache_period = 10
# page Objekt erstellen und Werte zuweisen...
page = PAGE
page {
    typeNum = 0
    bodyTag = <body bgcolor="#FFFFFF" topmargin="0" leftmargin="0">
    meta.AUTHOR = Bruno Staub
    meta.DESCRIPTION = Beschreibung der Homepage
    stylesheet = fileadmin/styles.css

    # Designvorlage integrieren
    10 = TEMPLATE
    10.template = FILE
    10.template.file = fileadmin/vorlage.html
    10.workOnSubpart = DOKUMENT
    10.marks.DATUM = TEXT
    # Datumsausgabe 05.12.2005 - 17:59:10
    10.marks.DATUM.data = date : d.m.Y - H:i:s
}
Code Snippets[Bearbeiten]

   # SEITENTITEL ist ein Platzhalter vom HTML TEMPLATE
   # aktueller Seitentitel wird aus pages Tabelle ausgelesen
   # wrap umwickelt den Seitentitel fett (Pipe-Symbol erforderlich!)
   10.marks.SEITENTITEL = TEXT
   10.marks.SEITENTITEL.field = title
   10.marks.SEITENTITEL.wrap = |

   # x explizite Abrage eines Wertes einer x beliebigen Tabelle (Datensatz ID=1)
   10.marks.SEITENTITEL = TEXT
   10.marks.SEITENTITEL.data = DB:pages:1:title

   # GET- und POST-Variablen abragen
   # http://www.intersolution.ch/index.php?id=0&test=Abfragetext
   # Falls der Parameter leer ist wird der Seitentitel ausgegeben
   10.marks.SEITENTITEL = TEXT
   10.marks.SEITENTITEL.data = GPvar : test // field : title

   # Bereich marks wird ausgeklammert, dies ermöglicht eine bessere Übersicht
   # das Logo wird eingelesen und in der Grössen angepasst und unter typo3temp/pics/ mit kryptischem Namen abgelegt
   # typo3temp/pics/ erhält nach jeder grössenänderung ein neues Bild, Abhilfe löschen per ftp und Cache löschen!!!
   10.marks {
   LOGO = IMAGE
   LOGO.file = fileadmin/images/logo.jpg
   LOGO.file.width = 178
   }

   # LOGO dynamisch generieren für Beispielsweise Dummy Trailer Balken
   # LOGO Grafik logo.jpg wird über den Dummy Balken gelegt, Ebenenreihenfolge Beachten (10,20,30...)
   10.marks {
   LOGO = IMAGE
   LOGO.file = GIFBUILDER
   LOGO.file.XY = 759, 99
   LOGO.file.backColor = #697DEE
   LOGO.file.10 = fileadmin/images/logo.jpg
   LOGO.file.10.file = 178
   }


   # Text dynamisch generieren mit GIFBUILDER (Wichtig: Eigenschaft .text und nicht .value verwenden!)
   MEINTEXT.20 = TEXT
   MEINTEXT.20.text = Hallo Welt

CSS styled content[Bearbeiten]
 - über den extension Manager System "CSS Styled Content" installieren und unter "include static" from extension

auf Templateebene zuweisen!


CSS styled content gehört zu den System-Extensions. Gehen Sie deshalb in das Verzeichnis \dummy-3.8.0\typo3\sysext\css_styled_content\css\. Dort finden Sie zwei Beispieldateien: example.css und example_outline.css. Die Stylesheets enthalten Formatierungen für alle in TYPO3 enthaltenen Content-Objekte wie Überschriften, Absätze, Listen, Formulare, Sitemap.

Öffnen Sie eine der Dateien und editieren Sie sie nach Ihren Layout-Vorstellungen. Speichern Sie Ihr bearbeitetes Stylesheet unter einem beliebigen Namen in Ihrem Template-Ordner im Fileadmin ab (\dummy-3.8.0\fileadmin\template\).


Anschliessend weisen Sie im Page Template folgenden Code zu:

config {
        doctype = xhtml_trans
        doctypeSwitch=1
}
page = PAGE
page {
typeNum = 0
bodyTag = <body>
stylesheet = fileadmin/template/mein_stylesheet.css
}
page.20 = TEMPLATE
page.20 {
           template = FILE
           template.file = fileadmin/template/mein_template.htm
           workOnSubpart = DOCUMENT_BODY
}


Möchten Sie mehr als eine Stylesheet-Datei einbinden, benötigen Sie folgende TypoScript Anweisung im Setup:


page = PAGE
page {
        typeNum = 0
        bodyTag = <body>
        includeCSS { 
                file1 =  fileadmin/template/style_1.css
                file2 =  fileadmin/template/style_2.css
        }
}

Konfiguration automaketemplate[Bearbeiten]

Setup:

plugin.tx_automaketemplate_pi1 {

  content < plugin.tx_rlmptmplselector_pi1
  elements {
     BODY.all = 1
     BODY.all.subpartMarker = DOCUMENT_BODY
     HEAD.all = 1
     HEAD.all.subpartMarker = DOCUMENT_HEADER
     HEAD.rmTagSections = title
     TD.all = 1
     DIV.all = 1
  }
  relPathPrefix = fileadmin/templates/main/

}

temp.contentAreaTemplate = TEMPLATE temp.contentAreaTemplate {

  template =< plugin.tx_automaketemplate_pi1
   // Modify the template selector config: This is a sub template!
  template.content.templateType = sub
  workOnSubpart = DOCUMENT_BODY
  subparts.CONTENT < styles.content.get
  subparts.RCONTENT < styles.content.getRight
  subparts.LCONTENT < styles.content.getLeft
  subparts.BORDER < styles.content.getBorder

}

temp.mainTemplate = TEMPLATE temp.mainTemplate {

  template =< plugin.tx_automaketemplate_pi1
  template.content.templateType = main
  workOnSubpart = DOCUMENT_BODY
  subparts.content < temp.contentAreaTemplate
  1. subparts.content = CONTENT
  2. subparts.content < styles.content.get

}

temp.headTemplate = TEMPLATE temp.headTemplate {

  template =< plugin.tx_automaketemplate_pi1
  workOnSubpart = DOCUMENT_HEADER

}

page = PAGE

  1. page.config.incT3Lib_htmlmail = 1

page {

  typeNum = 0
  bodyTag = <body>
  includeCSS {
  1. file1 = fileadmin/templates/main/res/layout.css
  2. file2 = fileadmin/templates/main/res/content.css
  }
  10 < temp.mainTemplate
  headerData.10 < temp.headTemplate

}


Container zentrieren[Bearbeiten]

ToDo: gehört in CSS

Negative Margin:

body {margin:0px; padding:0px;}

  1. container-zentrieren {

position:absolute; left:50%; width:500px; margin-top:266px; margin-left:-300px; padding:20px; border:1px dashed #FF0000; background-color:#e1e1e1e; }


Auto-width Margins:


body { margin:20px 0px; padding:0px; text-align:center; }

  1. container-zentrieren {

width:600px; margin:0px auto; text-align:left; padding:20px; border:1px dashed #FF0000; background-color:#e1e1e1e; }

- ggfl. die Maße anpassen

Absatz im Menü[Bearbeiten]

Den Seitentyp "Abstand" wählen und im Seitentitel "& n b s p ;" eingetragen.

Im TypoScript den SPACE (SPC) definieren und im CSS formatieren.


Setup:

1 = HMENU 1.1 = TMENU 1.1 { expAll = 0

wrap =

    |

NO {

linkWrap =

  • |
  • } ACT = 1 ACT { linkWrap =

  • |
  • } SPC = 1 SPC { linkWrap =

  • |
  • } } 1.2 = TMENU 1.2 { expAll = 0 wrap =

      |

    NO {

    linkWrap =

  • |
  • } ACT = 1 ACT { linkWrap =

  • |
  • } SPC = 1 SPC { linkWrap =

  • |
  • } }

    Ankerpunkt für einen internen Link anlegen[Bearbeiten]

    Ein Seitenlelement vom Typ "interner Link" (Shortcut) anlegen, im Pagebrowser den kleinen Pfeil hinter der Seite klicken und das entsprechende Contentelement auswählen.



    Konfiguration AWStats[Bearbeiten]

    Logfile Konfiguration bearbeiten: awstats_log.txt: www.it-bo.com,it-bo.com


    localconf.php: $TYPO3_CONF_VARS["FE"]["logfile_dir"] = "fileadmin/log/";


    Setup:

    1. Konfiguration AWStats
     config.stat = 1
     config.stat_apache = 1
     config.stat_apache_logfile = awstats.txt
     config.stat_excludeBEuserHits = 1
     config.stat_mysql = 1
     config.stat_typeNumList = 0,1,98
    

    Konfigurationsdatei AWStats cc_awstats/awstats/awstats.conf

    AWSTATS automatisieren

    http://jweiland.net/typo3cms/howto/awstats/

    http://www.typo3wizard.com/de/snippets/general-config/zaehlen-von-dateidownloads-mit-hilfe-von-awstats.html


    Browsers page title einbinden[Bearbeiten]

    Setup:

    1. Including the class and calling the function
      includeLibs.tx_browserpagetitle = typo3conf/ext/browser_page_title/class.tx_browserpagetitle.php
      config.titleTagFunction = tx_browserpagetitle->getTitle
    
    1. Default language parameters
      plugin.browser_page_title {
         defaultTitle = IT-Bo - TYPO3 CMS Website DAM Digital Asset Management SEO Reichweitensteigerung Marketing Schulung Hilfe Support - {title}
         currentTitle = IT-Bo - TYPO3 - {tx_browserpagetitle_browser_title}
      }
    
    1. Alternative language parameters
    2. [globalVar=GP:L=1]
    3. plugin.browser_page_title.defaultTitle = IT-Bo - TYPO3 CMS Website DAM Digital Asset Management SEO Reichweitensteigerung Marketing Schulung Hilfe Support - {title}
    4. plugin.browser_page_title.currentTitle = IT-Bo - TYPO3 - {tx_browserpagetitle_browser_title}
    5. [global]


    Contentelmente (entfernen)[Bearbeiten]

    header - Überschrift

    text - Text

    textpic - Text m/Bild

    image - Bild

    bullets - Punktliste

    table - Tabelle

    uploads - Dateilinks

    multimedia - Multimedia

    mailform - Formular

    search - Suchen

    login - Login

    menu - Menü/Sitemap

    shortcut - Datensatz einfügen

    list - Plugin einfügen

    html - HTML

    script - Skript

    splash - Textbox

    div - Trenner


    1. Contentelemente entfernen TSconfig
        TCEFORM.tt_content.CType {
        removeItems = header,bullets
     }
    


    Seitentypen[Bearbeiten]

    1 - Standard 2 - Erweitert 3 - Externe URL 4 - Shortcut 5 - Nicht im Menü 6 - Backend Benutzer Bereich 7 - Mount Seite --div-- - Spacer 199 - Abstand 254 - SysOrdner 255 - Papierkorb


    1. Seitentypen entfernen TSconfig
        TCEFORM.pages.doktype {
        removeItems = 3,5
     }
    



    favicon einbinden[Bearbeiten]

    setup:

      shortcutIcon = fileadmin/favicon.ico 
    
      #favicon setup (alternativ):
      headerData.1 = TEXT
      headerData.1.value = < link rel="shortcut icon" type="image/x-icon" href="fileadmin/favicon.ico" / >
    


    TYPO3 CSS-Datei einbinden[Bearbeiten]

    Setup:

    1. TYPO3 CSS-Datei einbinden

    page {

      includeCSS {
         file1 = fileadmin/templates/main/res/layout.css
         file2 = fileadmin/templates/main/res/content.css
         file3 = fileadmin/templates/news/tt_news.css
      }
    

    }

    TypoScript aus externer Datei einbinden[Bearbeiten]

    aus: http://www.rainer-grundel.de/wissensdb/typo3/allgemein/artikel/article/typoscript_ueber_externe_datei_einbinden.html

    Datum des Zugriffs: 25.10.2007

    Wenn man mehrer Typo3 Projekte betreut kommt man irgendwann an den Punkt an dem man TS Konfigurationen immer wieder verwendet. Durch das Auslagern der Konfiguration und dem Wiederbenutzen lässt sich viel Zeit und Aufwand sparen.

    Durch das Auslagern von oft gebrauchten TS-Konfigurationen und dem Wiederverwenden in weiteren Typo3 Projekten lässt sich viel Zeit sparen. Insbesondere beim Updaten kann das Auslagern des TS in eine externe Datei Vorteile mit sich bringen. Das Einbinden von externem TS funktioniert bei Templates, TSconfig von Seiten und dem Tsconfig von Benutzern bzw. Benutzergruppen. Eingebunden werden externe Scriptdateien über folgendes TS:

    <INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/scriptdatei.txt">

    Wichtig

    Folgendes ist beim Einbau der externen Datei zu beachten:

       * Im Template muss das Include in einer eigenen Zeile stehen, sonst wird es nicht erkannt.
       * Das Include wird vor dem Parsen des TS ausgeführt und funktioniert nicht mit Conditions und Verschachtelungen.
       * Die Dateigröße darf nicht größer als 100KB sein.
       * Die URL der Datei muss ausgehend von PATH_side sein, darf also kein ".." enthalten.
    
    Ausschalten der CSS-Formatierung im Seitenkopf der HTML-Datei[Bearbeiten]

    Setup:

    1. Ausschalten der CSS-Formatierung im Seitenkopf der HTML-Datei
      #plugin.tx_cssstyledimgtext._CSS_DEFAULT_STYLE = 
      #plugin.tx_croncssstyledimgtext._CSS_DEFAULT_STYLE =
      #plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
      plugin.tx_formwidgets_pi1._CSS_DEFAULT_STYLE >
      plugin.tx_damdownloads_pi1._CSS_DEFAULT_STYLE >
      plugin.tx-sgglossary-pi1._CSS_DEFAULT_STYLE >
      #plugin.tx_jphcodesnippets_pi._CSS_DEFAULT_STYLE >
      plugin.tt_news._CSS_DEFAULT_STYLE >
    

    CSS auslagern

    Setup:

    1. CSS auslagern
      inlineStyle2TempFile = 1
    


    TCEFORM tt_content content header layout altLabels[Bearbeiten]

    1. TSconfig:
      TCEFORM.tt_content.header_layout.altLabels.1 = Überschrift 1
      TCEFORM.tt_content.header_layout.altLabels.2 = Überschrift 2
      TCEFORM.tt_content.header_layout.altLabels.3 = Überschrift 3
      TCEFORM.tt_content.header_layout.altLabels.4 = Überschrift 4
      TCEFORM.tt_content.header_layout.altLabels.5 = Überschrift 5
      TCEFORM.tt_content.header_layout.altLabels.6 = Überschrift 6
      #TCEFORM.tt_content.header_layout.removeItems = 3,4,5
    


    Image Rotation (ric_rotation) Konfiguration[Bearbeiten]
    1. Setup: Image Rotation (ric_rotation)

    plugin.tx_ricrotation_pi1 {

       # parser (dont change this)
       parser < tt_content.text.20.parseFunc
    
       # template for plugin
       templateFile = EXT:ric_rotation/pi1/template.htm
    
       # list of page ids where the banners should be taken from ( comma seperated f.E.: 1,5,7)
       pidList =
    
       # levels of recoursion to search for banners
       recursive = 0
    
       # show banners with this attribute, options are: top, left, bottom, right
       placement = top
    
       #mode to show banners, options are: all, random
       mode = all
    
       # how many banner maximum
       results_at_a_time = 100
    
       # image preconfig
       image {
           file.maxW = 492
           #file.params = -quality 90 // activate to force quality 90
           #file.ext = jpg            // activate to force jpg
       }
    

    }



    Konfiguration Indexed Search[Bearbeiten]

    Constants:

    1. Suche Indexed Search
     plugin.tx_indexedsearch {
     search.rootPidList = 1
     show.rules = 0
     }
    


    Setup:

    1. Indexierung
      config.index_enable = 1
      config.index_externals = 1
    


    Konfiguration Macina Searchbox[Bearbeiten]

    Setup:

    1. Konfiguration Macina Searchbox

    plugin.tx_macinasearchbox_pi1 { pidSearchpage = 1 templateFile = fileadmin/it-bo/macina-searchbox.html }

    Macina Searchbox einbinden

    Setup:

    1. Macina Searchbox einbinden
         SUCHE > 
         SUCHE < plugin.tx_macinasearchbox_pi1
    



    Javascript auslagern[Bearbeiten]

    Setup:

    1. Javascript auslagern
      removeDefaultJS = external
    


    MOC Fileshare manager, moc_filemanager[Bearbeiten]
    1. Constants: MOC Fileshare manager, moc_filemanager

    plugin.tx_mocfilemanager_pi2.documentRoot = fileadmin plugin.tx_mocfilemanager_pi2.useOwnIcons = 0 plugin.tx_mocfilemanager_pi2.limitNewest = 5 plugin.tx_mocfilemanager_pi2.ShowFilesPID = 123

    1. plugin.tx_mocfilemanager_pi1.mountWrap = |
    2. plugin.tx_mocfilemanager_pi1.parentDirStyle = 1
    3. plugin.tx_mocfilemanager_pi1.showParentDir = 1

    plugin.tx_mocfilemanager_pi1.documentRoot = fileadmin

    1. plugin.tx_mocfilemanager_pi1.disableMkdir = 1
    2. plugin.tx_mocfilemanager_pi1.ApacheChildKill = 1
    3. plugin.tx_mocfilemanager_pi1.timeLimit = 0

    plugin.tx_mocfilemanager_pi1.useDescriptions = 1

    1. plugin.tx_mocfilemanager_pi1.asExplorer = 1

    plugin.tx_mocfilemanager_pi1.allowedExts = txt,xls,doc,pps,gif,jpg,htm,html

    1. plugin.tx_mocfilemanager_pi1.datetimeFormat = %c
    2. plugin.tx_mocfilemanager_pi1.maxDepth = 1

    plugin.tx_mocfilemanager_pi1.useOwnIcons = 1



    Konfiguration Link2Map24[Bearbeiten]

    link2map24:

    - bei map24 (link2map24) anmelden


    link2map24.tpl.html:


    <<<< USERID >>>> von link2map24 eintragen


    News tt_news[Bearbeiten]

    News Template einbinden

    Constants:

    1. News tt_news Template einbinden
      plugin.tt_news {
         file.templateFile = fileadmin/templates/news/tt_news.html
      }
    


    News Datum- und Zeitformat anpassen[Bearbeiten]

    dupa Setup:

    1. News tt_news Datum- und Zeitformat anpassen

    plugin.tt_news {

     archiveTitleCObject {
       10.strftime = %B - %Y
     }
     getRelatedCObject {
         20.strftime = %d.%m.%Y %H:%M
     }
     displaySingle {
    
    1. date_stdWrap.strftime= %d.%m.%y
       date_stdWrap.strftime= %A, %d. %B %Y
       time_stdWrap.strftime= %H:%M
     }
     displayLatest {
       date_stdWrap.strftime= %d.%m.%y
       time_stdWrap.strftime= %H:%M
     }
     displayList {
    #   date_stdWrap.strftime= %A %d. %B %Y
       date_stdWrap.strftime = %A, %d. %B %Y
       time_stdWrap.strftime= %d.%m.%y %H:%M
     }
    

    }


    Konfiguration rlmptmplselector[Bearbeiten]

    Setup:

    1. definiert den Pfad zu den Main-Template Dateien
      plugin.tx_rlmptmplselector_pi1.templatePathMain = fileadmin/templates/main/
    
    1. definiert legt den Pfad zu den Main-Template Dateien
      plugin.tx_rlmptmplselector_pi1.templatePathSub = fileadmin/templates/sub/
    
    1. definiert das Standard Main-Template Datei, welches geladen werden soll, wenn kein anderes Template ausgewählt wurde
      plugin.tx_rlmptmplselector_pi1.defaultTemplateFileNameMain = main_rlmptmplselector.html
    
    1. definiert das Standard Sub-Template Datei, welches geladen werden soll, wenn kein anderes Template ausgewählt wurde
      plugin.tx_rlmptmplselector_pi1.defaultTemplateFileNameSub = sub_rlmptmplselector.html
    
    1. If there is a page having no template selected, use a template
    2. selected earlier in the rootline. If there is none, use the default
      plugin.tx_rlmptmplselector_pi1.inheritMainTemplates = 1
      plugin.tx_rlmptmplselector_pi1.inheritSubTemplates = 1
    


    TOP Link[Bearbeiten]

    1. Setup TOP Link
      TOPLINK = TEXT
      TOPLINK {
         value = to top
         lang.en = To the Top
         lang.de = Seitenanfang
         wrap = <A HREF="#top" class="top-link">|</A>
         }
    


    Überschrift als Grafik[Bearbeiten]

    Im Install Tool (Installation) unter "All Configuration" "[gdlib_png]" aktivieren.

    1. Setup Überschrift als Grafik

    Header1 = IMAGE Header1 {

     wrap = |
     file = GIFBUILDER
     file {
      XY = [10.w]+6,00
      transparentColor = # Hintergrundfarbe
      backColor = # Hintergrundfarbe
      10 = TEXT
      10.text.field =
      10.text.current = 1
      10.fontSize = Schriftgröße
      10.offset = 0,50
      10.fontFile = fileadmin/schriftart.ttf
      10.fontColor = Schriftfarbe
      10.niceText = 1
     }
    

    }

    lib.stdheader.10.1 < Header1



    Konfiguration 404 Error Site[Bearbeiten]

    Eigene Fehlerseite (404 Error Site) mit der Extension error_404_handling erstellen

    Der Browser zeigt die normale Fehlerseite an, die einen 404 Fehler zurück gibt: 404 Error Site.

    Für eine eigene 404 Error Site, muss die Extension error_404_handling installiert werden.

    Im Ordner /typo3conf/ext/error_404_handling/files/ befinden sich die Dateien für die eigene 404 Error Site.

    Dateien:

    - 404page_not_found.php

    - example.htaccess


    Die Datei "404page_not_found.php" in das Root-Verzeichnis der Domain kopieren. Und aus der example.htaccess Datei folgendes in die .htaccess Datei der Root-Ebene eingefügen:

    ErrorDocument 404 /path_anpassen/404page_not_found.php ErrorDocument 500 /path_anpassen/404page_not_found.php

    Im Install-Tool [warning_email_addr] kann eine E-Mail-Adresse eingeben. Dann wird eine E-Mail versendet, wenn eine Seite (404 Error Site) nicht gefunden wurde.

    Einen Domainrecord anlegen bzw. öffnen und eine URL in dem Feld "Redirect to an URL if a page or file under this domain could not be found" eintragen.

    404 Error Site: Umleitung auf eine bestimmte 404 Error Site Install: $TYPO3_CONF_VARS["FE"]["pageNotFound_handling"] = 'http://www.404-Error-Site.com/404.php';


    TYPO3 YAML[Bearbeiten]

    TYPO3 YAML Beispielseite und Anleitung

    YAML, TYPO3 und YAML

    Download: yaml.t3net.de



    Syntax Highlighting Ultraedit[Bearbeiten]

    Da mir die durchgehend schwarze Schrift des typoscript total auf den Senkel geht, und ich keinerlei adäquate Lösung zum Thema TypoScript Syntax Highlighting bzw. Syntax kontrolle etc. gefunden habe, hab ich mir das wordfile vom Ultraedit www.ultraedit.com mal hergenommen und erweitert!


    http://www.typo3.net/forum/list/list_post//21624/


    Bedingungen definieren[Bearbeiten]

    marks.SLOGAN = COA marks.SLOGAN { 10 < temp.import_img stdWrap.ifEmpty.cObject < temp.std_img }

    http://lists.netfielders.de/pipermail/typo3-at/2004-October/003731.html

    http://www.jweiland.net/typo3cms/howto/typoscript-bedingung/

    http://www.typo3.net/tsref/functions/if/

    http://www.typo3.net/tsref/functions/stdwrap/

    http://linuxwiki.de/Typo3TypoScript


    Links[Bearbeiten]

    http://www.it-bo.com/typo3-marketing/hilfe/container-zentrieren.html

    http://ug.typo3-nrw.de/typo3-dynamic_css.html

    http://www.typo3.net/index.php?id=13&action=list_post&tid=39948&page=1

    http://blog.dopefreshtight.de/artikel/typo3-aufsetzen-setup/

    http://www.sk-typo3.de/RTE-Standardkonfiguration.31.0.html

    http://www.linet-services.de/t3_tscode.html

    http://www.it-bo.com/typo3-marketing/news/typo3-news/article/typo3-yaml-fuer-version-4.html

    http://www.typo3-unleashed.net/index.php?id=sitemap

    http://www.sk-typo3.de/Typo3-Extensions.68.0.html

    http://www.contentschmiede.de/links-zu-typo3/

    http://www.mcuniverse.com/TemplaVoila_-_Cheat_Sheet.1221.0.html

    http://www.just2b.com/mein-typo3/css-ts-menues.html

    http://ww2.sprain.ch/index.php?id=19

    http://www.typo3wizard.com/de/snippets/menus/text-menu-tmenu.html

    http://www.kraftfelt.dk/

    http://lists.netfielders.de/pipermail/typo3-german/2006-January/008630.html

    http://82.165.8.199/typo3cms/exotec-design.de/index.php?id=89