Beiträge der Kategorie TYPO3

Redirect nach Login/Logout in newloginbox

Problem: nach dem Login/Logout soll man auf einer bestimmten Seite landen, das Formular zu einloggen befindet sich jedoch auf allen Seiten. Oder man hat eine Vorschaltseite mit Sprachauswahl und wenn man eingeloggt in einem geschlossenen Bereich surft und sich dann ausloggt, dann landet man auf eben dieser Vorschaltseite, was nicht schön ist.
Das Loginformular kann über das Template in TypoScript inkludiert werden oder auch als ein Content-Element von einer bestimmten Seite eingefügt werden. Hauptsache über TypoScript, geht auch nicht anders, wenn man es auf jeder Seite haben möchte.
Es gibt im Template für newloginbox ein verstecktes Feld mit dem Namen redirect, das Problem ist, dass es leer ist. Es gibt einige Extensions, die eine Umleitung anbieten, das Problem ist, dass die Seite auf die umgeleitet wird, im GET-Parameter angegeben werden muss. Das ist manchmal schwierig. Oder es gibt eine Extension, auf der man dem Benutzer oder der Gruppe eine Seite zuweisen kann, das löst aber nicht das Problem beim Logout.
Meine Lösung ist daher: Aus dem Template den Form-Tag entfernen (mit Start- und Endtag) und das versteckte Feld zum Redirect. Dann das Feld über TypoScript wieder hinzufügen. Das Loginformular kann man als COA aufbauen. 10 ist der Form-Starttag, 20 die newloginbox, 30 das versteckte Feld und 40 der schließende Formtag. Über typolink kann man die URL in das Action-Attribut im Form-Tag und in das Value-Attribut des versteckten Feldes reinschreiben. Über Conditions definiert man dann einen anderen Wert im Action-Attribut, wenn jemand sich ausloggt, so kann man die Benutzer dann auf eine bestimmte Seite schicken. Ungefähr so…

temp = COA
temp.10 = TEXT
temp.10.typolink.parameter.data = TSFE:id
temp.10.typolink.returnLast = url
temp.10.typolink.wrap =

temp.20 < plugin.newloginbox temp.30 = TEXT temp.30.typolink.parameter = {$pageOnLogin} temp.30.wrap =

[fe_user = *]
temp.10.typolink.parameter.data >
temp.10.typolink.parameter = {$pageOnLogout}
[global]

Geschrieben in TYPO3 | Kommentare deaktiviert für Redirect nach Login/Logout in newloginbox

Vererbung der Metatags mit metatags (extended)

Die Extensions metatags ermöglicht es globale Metatags im TypoScript zu definieren, die auf allen Seiten im Header erscheinen. Man kann diese Tags aber auch in der Seite selbst angeben, dabei werden die globalen überschrieben. Das Problem ist, dass die Extension selbst keine Metatag-Vererbung mitbringt, d.h. es werden Metatags nur von der aktuellen Seite genommen. Vielleicht aber möchte man in einem Seitenbaumteil andere Metatags definieren, da möchte man nicht gleich ein Extension-Template anlegen.
Die Tags werden mit einer einer TypoScript konfiguration aus der aktuellen Seite gelesen. Dabei ist das Element vom Typ stdWrap und ist somit sehr flexibel. Hier das Original zum Auslesen der Keywords und Description aus der aktuellen Seite:

plugin.meta.local.description.field = description
plugin.meta.local.keywords.field = keywords

Damit man die Keywords bzw. Description von der übergeordneten Seite vererben lassen kann, muss man auf die Eigenschaft data im stdWrap zurückgreifen und das field löschen, da es den Wert in data überschreibt.

plugin.meta.local.description.field >
plugin.meta.local.keywords.field >
plugin.meta.local.description.data = levelfield:-1, description, slide
plugin.meta.local.keywords.data = levelfield:-1, keywords, slide

Damit diese Eigentschaften zur Verfügung stehen, muss man über Install-Tool die Felder keywords und description zu [FE][addRootLineFields] hinzufügen. Wäre soweit fertig, wenn die Extension die headerData nicht selbst am Anfang einbinden würde, was die ganzen Änderungen von eben zunichte macht. Daher muss man nach der „Neukonfiguration“ die headerData erneut zuweisen:

page.headerData.999 < plugin.meta

Geschrieben in TYPO3 | Kommentare deaktiviert für Vererbung der Metatags mit metatags (extended)

Druckversion mit TemplaVoila

Die Druckversion der Seite kann über 3 mögliche Wege gesteuert werden. Der erste ist das Einbinden eines Stylesheets mit der media-Attribut „print“. Da kann man bestimmte Bereiche ausblenden, wie z.B. Menü. Der Nachteil ist, dass es nicht in allen Browsern funktioniert könnte und im Hinblick auf Typo3-Performance muss einiges für die Seite gerendert und gerendert werden, was dann nicht angezeigt wird. Die zweite Möglichkeit ist das Type-Attribut in Typo3. Da kann man bestimmte Elemente bereits in Typo3 ausgeben oder die Seite komplett anders gestalten. Der Nachteil ist, dass es mit TemplaVoila nicht funktioniert, sobald man FCEs benutzt. Die dritte Möglichkeit ist über die Übergabe der GET-Variable print, die TemplaVoila dazu veranlaßt, ein anderes Template zu verwenden (falls eins definiert ist). In diesem Beispiel werden alle drei Methoden miteinander verknüpft.

Drucken Link mit TypoScript anlegen

Zunächst definiert man den Link in TypoScript im Haupttemplate, damit er auf jeder Seite angezeigt wird:

lib.specialnavigation {
30 = TEXT
30 {
value = Seite drucken
wrap =

  • |
  • stdWrap.typolink.parameter.data = TSFE:id
    stdWrap.typolink.parameter.wrap = |,98 710×600
    stdWrap.typolink.addQueryString = 1
    stdWrap.typolink.additionalParams = &print=1&no_cache=1
    stdWrap.typolink.JSwindow_params = status=0,menubar=0,scrollbars=1,location=0,toolbar=0
    }
    }

    Die Druckversion geht in einem neuen Fenster auf. Die URL dazu ist die aktuelle Seite (mit allen Parametern, ergibt sich aus addQueryString) mit einem anderen Page Type (98) und den zusätzlichen Variablen print und no_cache. Nun kann man im TypoScript-Template die Druckversion mit typeNum 98 definieren und da ein anderes Stylesheet angeben und einen anderen Header. Hier ist ein Beispiel für eine Toolbar, die das Drucken de Dokuments und das Schließen des Fensters ermöglicht.


    print = PAGE
    print {
    bodyTag =
    typeNum = 98
    includeCSS {
    print = {$templateRoot}/css/print.css
    print2 = {$templateRoot}css/print2.css
    print2.media = print
    }
    10 = TEXT
    10.value =

    20 = TEXT
    20.value =
    |