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 Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

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

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

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

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