Hallo,
ich bastel mir gerade eine kleine Extension die unter anderem Werte und so weiter über TypoScript erhält. Leider bekomme ich aber nur das normale TypoScript Array und nicht das Ergebnis in die Extension geliefert in $this->conf.
Wie kann ich das parsen und auf das Ergebnis zugreifen?
Danke schonmal...
Ich verstehe gerade noch nicht so ganz, was Du genau vorhast. Reicht Dir der Standardaufruf der main-Funktion nicht?
function main($content, $conf) {
$this->conf = $conf;
// ...
}
Willst Du vielleicht auf alle TypoScript-Werte zugreifen?
Nein leider nicht... Beispiel ich habe folgendes TS
plugin.tx_meineextension_pi1 {
dynMarkers {
markerOne = TEXT
markerOne.value = bla
markerTwo = COA
markerTwo {
10 = TEXT
10.value = blub
20 = TEXT
20.data = page:title
}
}
}
Wenn ich jetzt $this->conf['dynMarkers.']['markerTwo.']['20.']['data'] ausgeben will, erhalten ich nur page:title anstatt den richtigen Seitentitel. Es geht also nicht durch den parser.
Hallo.
fuzz schriebLeider bekomme ich aber nur das normale TypoScript Array und nicht das Ergebnis in die Extension geliefert in $this->conf.
Nicht "leider", sondern "zum Glück". Typoscript ist ja "nur" eine Art, wie Konfigurationswerte dargestellt werden. Die Verarbeitung dieser Wert muss dann erst angestoßen werden - durch TYPO3 selbst im vordefinierten Rahmen oder durch Dich bei eigenen Extensions.
fuzz schriebWie kann ich das parsen und auf das Ergebnis zugreifen?
Das kommt sehr drauf an, was Du an TS für die Extension konfigurierst bzw. was gemacht werden soll. Ein guter Einstiegspunkt dürfte die Klasse tslib_cObj sein.
Viele Grüße
Julian
Danke mit cObjGetSingle(...) funktioniert es wie ich es brauche.
Allerdings habe ich in dem Zuge noch ein kleines Problem oder Denkfehler... Ich möchte per TypoScript jetzt sagen:
plugin.tx_meineextension_pi1 {
dynMarkers {
markerTwo = COA
markerTwo {
10 = TEXT
10.field = ext_dbField_name
}
}
}
Sprich auf den aktuellen Datensatz zugreifen der Datenbank. Da kommt leider nichts bei raus. Die Frage ist jetzt wie kann ich Typo3 sagen, welche Tabelle in der DB ich meine und zu welchem Datensatz ich das Feld (Spalte) jetzt ausgegeben haben möchte?
Hat sich erledigt...
Man muss bei jedem Row dem cObj sagen wo man sich befindet, dann funktioniert es auch mit TypoScript:
$this->cObj->start($curRow,'myTable');
An dieser Stelle weiß die TYPO3-API noch ziemlich gar nix über Deine Extension. Wo steht denn das DB-Feld? Für DB-Abfragen via TS verweise ich mal auf die TSref https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Select.html