确定Typo3中的活动页面对象

时间:2012-03-24 10:16:14

标签: typo3

我正在编写一个插件,它应该将HTML添加到页面的头部区域(确切地说是inludeJS)。这样的事情应该有效:

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

问题在于我必须假设“page”将是我想要使用的页面对象的通用名称。因为这个变量的名称可以是任何我想以比这更聪明的方式做到这一点。

有没有办法确定我正在使用的当前PAGE cObject的名称?

铜 罗马

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码段找到当前页面的默认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,因为在那时已经解析了typoscript。

如果您想为您的扩展程序添加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文件合并)

答案 1 :(得分:0)

实际上TypoScript中没有这种方法。由于大多数安装使用page作为关键字 - 尤其是那些在您控制之下的关键字 - 使用它真的很好。

如果您正在撰写扩展程序,可以将其作为一个小提示放入文档中!