2012-03-24 24 views
0

Ich schreibe ein Plugin, das HTML zum Kopfbereich der Seite hinzufügen soll (inludeJS, um genau zu sein). So etwas sollte funktionieren:Ermitteln des aktiven Seitenobjekts in Typo3

page.includeJS { 
    tx_myplugin_pi1 = EXT:my_plugin/pi1/tx_myplugin_fe_scripts.js 
} 

Das Problem mit dieser ist, dass ich davon ausgehen, dass „Seite“ würde die universellen Namen für die Seite Objekt verwendet werden, mit dem ich arbeiten will. Da der Name dieser Variable alles sein kann, was ich gerne intelligenter machen würde.

Gibt es eine Möglichkeit, den Namen des aktuellen PAGE cObject zu ermitteln, mit dem ich arbeite?

cu Roman

Antwort

0

Sie die diesen Schnipsel mit Standard PAGE Objekt der aktuellen Seite herausfinden können:

$setup = $GLOBALS['TSFE']->tmpl->setup; 
foreach(array_keys($setup) as $key){ 
    if(substr($key, -1) == '.'){ 
     if($setup[substr($key,0,-1)] === 'PAGE' && intval($setup[$key]['typeNum']) === 0){ 
      print substr($key,0,-1) .' is the default PAGE object'; 
     } 
    } 
} 

Aber dies wird nicht helfen Sie, die Javascript im Frontend hinzuzufügen als Das Typoscript wird bereits an diesem Punkt geparst.

Wenn Sie JavaScript nur für Ihre Erweiterung hinzufügen möchten würde ich mit empfehlen:

$GLOBALS['TSFE']->additionalHeaderData['tx_yourextension_plugin'] = '<script type="text/javascript" src="' . t3lib_extMgm::siteRelPath('my_plugin') . 'pi1/tx_myplugin_fe_scripts.js"></script>'; 

(das nicht mit den anderen JS-Dateien zusammengeführt werden würde, obwohl)

0

Eigentlich gibt es keine solche Weg in einfachem TypoScript. Da die meisten Installationen page als Schlüsselwort verwenden - insbesondere diejenigen, die unter Ihrer Kontrolle stehen - ist es in Ordnung, sie zu verwenden.

Wenn Sie eine Erweiterung schreiben, können Sie diese als kleinen Hinweis in die Dokumentation einfügen!

Verwandte Themen