错字3:这是如何工作的:$ GLOBALS ['TSFE'] - > tmpl?

时间:2013-08-15 06:51:53

标签: typo3

在一个扩展文件中:我在代码下面运行:

var_dump($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_watermark_pi1.']);

结果是:

["hooks."]=> array(4) { ["dagou_post."]=> array(1) { ["view."]=> array(2) { ["state."]=> array(1) { ["template"]=> string(11) "###INPUT###" }...

我可以告诉它输出此文件:ext_typoscript_setup.txt内部扩展名:watermark以及来自全局和本地页面的ts设置。

问题:

我检查了文件:typo3\sysext\cms\tslib\class.tslib_fe.php,并尝试弄清楚这是如何运作的:$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_watermark_pi1.'],但只看到了var $tmpl=''; 从此代码开始:$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_watermark_pi1.']tmpl应该是一个对象,setup['plugin.']['tx_watermark_pi1.']应该是属性。所以任何人都可以给我一些关于$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_watermark_pi1.']如何工作的解释?感谢。

2 个答案:

答案 0 :(得分:1)

$ GLOBALS ['TSFE'] - > tmpl-> setup 是竞争网站的累积递归TS设置。它收集所有TS模板,在您当前所选页面的根行中找到,解析它并编译成数组。

显然,您在 class.tslib_fe.php 中找不到关于 tx_watermark_pi1 的任何内容,因为tslib_fe对此一无所知 - 它只是创建FE,其中一个任务是创建tmpl对象,包含在rootline中找到的所有TS的完整设置。

您可以在TS解析here

上找到更多信息

答案 1 :(得分:0)

您编写的typoscript代码以及随您安装的扩展一起提供的ts文件将被解析为php然后缓存。当构建前端时,这个非常大的php数组被写入这个全局对象,然后由其他几个类(如扩展插件等)从那里读取。

如果您想查看t3lib/class.t3lib_tsparser*.php课程,可以找到该代码(虽然我认为这不会对您有所帮助)。