[Typo3] Tipps und Tricks

  • Dieser Thread dient dazu, kleine Tipps und Tricks festzuhalten und sollte dem ein oder anderen helfen, bestimmte Sachen umzusetzen oder einfach nur als Fundgrube.


    Dynamischer Inhalt auf allen Seiten


    Oft hat man Bereiche in der Webpage, die überall auftauchen sollen. Nun könnte man im Root-Template dieser Stelle einen festen Inhalt zuordnen, z.B. über

    Code
    1. page.10.marks {
    2. RECHTS = TEXT
    3. RECHTS.value= <p>Ich bin der fixe Text der rechten Seite</p>
    4. }


    Der Nachteil ist aber, das man bei Änderungen immer ins Template muss.


    Viel schöner ist es, wenn man dafür einen dynamischen Inhalt nehmen kann, vielleicht sogar Text mit Bildern.
    Das kann man so erreichen:


    Man legt eine Seite an, die nicht im Menü auftaucht (Sysfolder oder "nicht im Menü"). Dort legt man den / die Inhalte an.
    Im Roottemplate weist man der Stelle jetzt den Inhalt zu.


    Code
    1. page.10.marks {
    2. RECHTS = RECORDS
    3. RECHTS {
    4. tables = tt_content
    5. source = 1
    6. dontCheckPid = 1
    7. }
    8. }


    source gibt die ID des Inhalts an, den man beim überfahren mit der Maus angezeigt bekommt. Denkbar sind auch mehrere Inhalte, mit Kommas getrennt
    dontCheckPid = 1 bedeutet, das es auch angezeigt wird, wenn die Seite unterhalb einer versteckten Seite ist.


    Möchte man auf einer Seite den Inhalt nicht haben, so kann man in dieser im Template den Inhalt löschen:


    page.10.marks.RECHTS >

  • Zitat von St@eff.en
    Code
    1. page.10.marks {
    2. RECHTS = RECORDS
    3. RECHTS {
    4. tables = tt_content
    5. source = 1
    6. dontCheckPid = 1
    7. }
    8. }


    Wer nicht genau weiß, was damit gemeint ist: genau das habe ich letzte Woche bei einem Kunden eingebaut. Und zwar die Adressangabe auf jeder Seite unterhalb des Brückenbilds. Wie Steffen schon richtig bemerkte: der Redakteur kann diesen Inhaltsbereich ganz einfach redigieren und es ist auf jeder Seite der Website geändert:
    http://www.faqt.at/startseite.html

  • mit dem Page-Objekt kann man so einiges vorbestimmen.


    Meta-Angaben können gemacht werden:


    Code
    1. page {
    2. description = ...
    3. keywords = ...
    4. author = ...
    5. robots = ...
    6. }


    Möchte man die von Typo3 eingefügten JS-Anweisungen nicht haben, geht das mit

    Code
    1. page.config.removeDefaultJS = 1


    statt 1 kann man auch external angeben, dann wird das in eine externe Datei ausgelagert.


    Email-Adressen können generell verschlüsselt werden.
    Dafür gibt es den Parameter

    Code
    1. page.config.spamProtectEmailAdresses


    Mögliche Werte sind :
    -5 bis 5 (Buchstaben werden um diese Asciipositionen verschoben)
    [at] (ersetzt das @ durch [at])
    <img src="... (ersetzt das @ durch eine Grafik)
    ascii (ersetzt die komplette Adresse durch Ascii-Angaben


    Zeichensatz ändern:


    Code
    1. page.config.metaCharset


    ... (wird noch ergänzt)

  • Zitat von St@eff.en

    Möchte man auf einer Seite den Inhalt nicht haben, so kann man in dieser im Template den Inhalt löschen:


    page.10.marks.RECHTS >

    In dem Fall erscheint aber der Markertext ###RECHTS### beim Aufruf der Seite, oder?


    In meinem Buch steht, man solle folgendes schreiben:


    Code
    1. # Markerinhalt löschen
    2. page.10.marks.RECHTS >
    3. # Dem Marker den Inhalt "nichts" zuweisen
    4. page.10.marks.RECHTS =

    Damit erscheint an der Stelle des Markers wirklich „nix“.


  • Dann will ich auch mal einen TS-Schnipsel beisteuern :)


    Dem normalen Backend-Benutzer das löschen des Cache erlauben:
    Code in das TSConfig Feld eines Benutzers oder einer Benutzergruppe eintragen.

    Code
    1. options.clearCache.pages = 1
    2. options.clearCache.all = 1


    Seite XHTML-Konform machen:

    Code
    1. config.doctype = xhtml_trans
    2. config.htmlTag_langKey = de_DE
    3. config.xhtml_cleaning = all



    JS und CSS auslagern:

    Code
    1. config.removeDefaultJS = external
    2. config.inlineStyle2tempFile = 1

    Wie man JS auslagert hatte St@eff.en ja schon beschrieben, mit der zweiten Zeile wird das selbe mit CSS probiert. Funktioniert aber leider nicht immer.

  • Da hier ja schon tt_news und jp_teaser als Extensions empfohlen wurden, hier noch ein Tipp, wie man die relativ unleserlichen Standard-Urls, die diese beim Weiterleiten auf die Detailseite generieren, etwas schöner und damit für Suchmaschinen geeigneter konfigurieren kann.
    Man baut hierzu eine einfache MD5-Verschlüsselung für die URL-Anhängen ein, die diese Extensions automatisch generieren. Dazu gibt man folgendes ins Setup ein:

    Zitat


    config {
    simulateStaticDocuments_pEnc=md5
    simulateStaticDocuments_pEnc_onlyP = cHash, L, print, tx_ttnews[backPid], tx_ttnews[tt_news], tx_ttnews[pS], tx_ttnews[pL], tx_ttnews[arc], tx_ttnews[cat], tx_ttnews[pointer], tx_ttnews[swords], tx_jppageteaser_pi1[backId]
    }

  • Im Contentbereich haben wir ja standardmässig die Bereiche


    links | normal | rechts | rand


    Das mag nicht für alle Zwecke ideal sein.
    Auf folgende Art und Weise kann man das individuell anpassen:


    Editieren der Datei typo3conf/extTables.php


    Der Inhalt bei z.B. 6 Spalten sieht dann so aus:


    im eigentlichen Array erkennt man, das 0 dem Hauptcontent zugeordntet ist, das entspricht dann auch der col im tt_content.


    Damit das ganze auch wirksam wird, muss noch die localconf.php editiert werden.
    Dort wird folgende Zeile iengefügt:

    PHP
    1. $typo_db_extTableDef_script = 'extTables.php';


    Die Änderung wird sofort sichtbar ;)

  • Zitat von St@eff.en

    Habs probiert und bekomme es so nicht hin - TSConfig Feld im Head der Rootpage ging bei mir nicht.

    Aber genau da habe ich es stehen. Ich hab eben nochmal geschaut ob ich es vielleicht noch an einer anderen Stelle eingertagen habe (TS setup, ...) aber nichts...
    Genau das hier hab ich in meiner rootpage-TSConfig stehen.

    Code
    1. ### Nur "Normal" wird gezeigt #######################
    2. mod.web_layout.tt_content.colPos_list = 0


    Vielleicht beist es sich mit deiner vorher beschriebenen Anpassung:confused:

  • Man kann in TYPO3 ein aufklappbares Layer-Menü installieren. Das klappt auch wunderbar, hat aber einen Schönheitsfehler: im Opera verrutschen die Layer gewaltig.
    Dem kann man folgendermaßen begegnen: man öffne folgende Datei:
    jsfunc.layermenu.js
    und suche die folgenden Zeilen aus:

    Zitat


    this.x= (bw.ns4||bw.op)?this.css.left:this.el.offsetLeft;
    this.y= (bw.ns4||bw.op)?this.css.top:this.el.offsetTop;
    this.height= (bw.ie4||bw.ie5||bw.ns6)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.op?this.css.pixelHeight:0;
    this.width= (bw.ie4||bw.ie5||bw.ns6)?this.el.offsetWidth:bw.ns4?this.ref.width:bw.op?this.css.pixelWidth:0;


    und ersetze sie durch diese Zeilen:

    Zitat


    this.x= (bw.ns4)?this.css.left:this.el.offsetLeft;
    this.y= (bw.ns4)?this.css.top:this.el.offsetTop;
    this.height=(bw.ie4||bw.dom)?this.el.offsetHeight:bw.ns4?this.ref.height:0;
    this.width=(bw.ie4||bw.dom)?this.el.offsetWidth:bw.ns4?this.ref.width:0;


    Dann klappts auch mit dem Opera ...