Определить активный объект страницы в Typo3 - PullRequest
0 голосов
/ 24 марта 2012

Я пишу плагин, который должен добавить HTML в область заголовка страницы (точнее, inludeJS).Примерно так должно работать:

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

Проблема в том, что я должен предположить, что «страница» будет универсальным именем, используемым для объекта страницы, с которым я хочу работать.Поскольку имя этой переменной может быть любым, я хотел бы сделать это более разумно, чем это.

Есть ли способ определить имя текущего объекта CAGE CAGE, с которым я работаю?

у.е. Роман

Ответы [ 2 ]

0 голосов
/ 11 августа 2016

На самом деле в обычном TypoScript такого способа нет. Поскольку большинство установок используют page в качестве ключевого слова - особенно те, которые находятся под вашим контролем - это действительно хорошо использовать.

Если вы пишете расширение, вы можете поместить это в документацию как небольшую подсказку!

0 голосов
/ 25 марта 2012

Вы можете найти объект по умолчанию PAGE текущей страницы, используя этот фрагмент:

$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';
        }
    }
}

Но это не поможет вам добавить Javascript в веб-интерфейс, поскольку опечатка выполняетсяуже разбирается в этот момент.

Если вы хотите добавить javascript только для вашего расширения, я бы порекомендовал использовать:

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

(хотя это не будет объединено с другими файлами JS) * +1010 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...