在一个扩展文件中:我在代码下面运行:
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.']
如何工作的解释?感谢。
答案 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
课程,可以找到该代码(虽然我认为这不会对您有所帮助)。