blog.bartlweb - a technologist's external brain

Typoscript in einer Extension ausführen

Typoscript ist mehr als mächtig und erledigt viele Dinge schneller und komfortabler als selbstgeschriebender PHP-Code. Daher gibt es auch die Möglichkeit Typoscript in einer Extension auszuführen und das Ergebnis dann über diese auszugeben. Denkbar ist z.B.: eine Extension die per Flexform Typoscript entgegen nimmt und diesen dann ausführt und ausgibt. Damit lässt sich eine Extension für das Einfügen von Typoscript als Content-Element im Backend realisieren.

Typoscript direkt im Code

$typoscript['conf'] = 'TEXT';
$typoscript['conf.']['data'] = 'date:U';
$typoscript['conf.']['strftime'] = '%Y';
$typoscript['conf.']['noTrimWrap'] = '|(c) | www.domain.com|';
 
$content = $this->cObj->cObjGetSingle($typoscript['conf'], $typoscript['conf.']);

Typoscript aus Flexform oder Datei auslesen

/* get typoscript code */
$typescript = ...
 
/* parse typoscript code */
$tsParser = t3lib_div::makeInstance('t3lib_TSparser');
$tsParser->parse(trim($typoscript));      
$tsArray = $tsParser->setup;
 
/* generate content */
$time = time();
      
$code = array(
  'ts_' . $time => 'COA_INT',
  'ts_' . $time . '.' => $tsArray
);
 
$content = $this->cObj->cObjGetSingle($code['ts_' . $time], $code['ts_' . $time . '.']);

Dieser Artikel hat dir deinen Tag gerettet?
... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? ... oder einfach nur dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Spende honorierst:

Kommentare

  1. ist es auch möglich in einer extension ein typoscript Object variable anzusprechen die man in templavoila definiert hat?
    oder sogar ein pagecontent dadruch zu ändern?

    danke und gruss

    kommentieren

    1. Hallo immo,
      für deine Frage zu Templavoila habe ich leider keine Antwort parat.
      Bezüglich des Pagecontents ist die Frage was du vor hast. Du kannst zum Beispiel innerhalb einer Extension auch bestimmte Content-Elemente einbinden und rendern: http://blog.bartlweb.net/2010/09/contentelemente-in-typo3-extension-rendern/

      Das Problem ist, dass du über die Extension keinen Einfluss auf den Seitenaufbau hast. Der darin enthaltene Code wird immer nur an seiner Stelle ausgeführt und es wurde davor schon ein Teil der Seite erstellt und es wird vermutlich auch danach ein Teil der Seite erstellt. Es gibt allerdings Extensions die so eingebunden werden, dass diese am Ende des Renderingprozesses geladen werden und dann durch parsen des fertigen HTML-Codes noch einmal Teile verändern: z.B. Glossar-Extensions wie sg_glossary oder a21glossary.

      lg Christian

      kommentieren

Kommentar schreiben

Deine E-Mailadresse wird nur für Benachrichtigungen und Rückfragen verwendet und wird nicht veröffentlicht.

Benachrichtigungen können jederzeit wieder abbestellt werden.

Bitte tippe die Zahlenkombination "2043" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.