Mit getText in generischen Markern auf tt_content zugreifen

Heute benötigte ich innerhalb eines generischen Markers von tt_news Zugriff auf das Content-Element, in dem die Meldung angezeigt wird (also die Plugin-Einbindung). Warum man sowas braucht? Naja, Projekte entwickeln sich manchmal kreativ… 😉

Generische Marker werden im Zuge des Renderings der einzelnen Newsmeldungen ausgewertet, d.h. der Zugriff über field etc. ist jeweils auf den tt_news-Datensatz, nicht auf das Inhaltselement. Der Datensatz selbst hat auch keine Verknüpfung zum Inhaltselement. 🙁

Die Kollegen der marit.ag haben vor Längerem den Artikel „Datenbankfelder dynamisch per stdWrap.data auslesen“ verfasst. Damit ließe sich (via „getText“) auf beliebige Datensätze dynamisch zugreifen wie folgt:

genericmarkers {
        ceheader >
        ceheader = TEXT
        ceheader {
            // @see http://blog.marit.ag/2009/12/15/datenbankfelder-stdwrap-data/
            dataWrap = DB:tt_content:{field:pid}:header
            wrap3 = {|}
            insertData=1
        }
}

Es bleibt aber die Problematik, dass wir die uid des tt_content-Datensatzes dennoch nicht kennen. Hilfe bringt aber der Inhalt von TSFE: dort gibt es einen Wert currentRecord:

This is set to the [table]:[uid] of the record delivered in the $data-array

Somit lässt sich der Ansatz erweitern, indem im dataWrap der Teilstring „[table]:[uid]“ dynamisch ersetzt wird:

genericmarkers {
        ceheader >
        ceheader = TEXT
        ceheader {
            // @see http://blog.marit.ag/2009/12/15/datenbankfelder-stdwrap-data/
            //dataWrap = DB:tt_content:{cObj:TSFE:parentRecordNumber}:header
            // {TSFE:currentRecord} liefert etwas in der Art "tt_content:1234"
            dataWrap = DB:{TSFE:currentRecord}:header
            wrap3 = {|}
            insertData=1
        }
}

Quellen

Eine Antwort to “Mit getText in generischen Markern auf tt_content zugreifen”

  1. avatar

    Super-Beitrag, nach dem ich fast das halbe Netz umgegraben habe und kurz vorm Verzweifeln war. Jeder Beitrag beschreibt {field:uid} im Zusammenspiel mit der Datenbanktabelle, funktioniert leider nur nicht. Dieser Tipp ist Gold wert. Danke Julian!

Schreibe einen Kommentar