0

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

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 设置。

问题:

我检查了 file: 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.']工作的解释?谢谢。

4

2 回答 2

1

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

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

您可以在此处找到有关 TS 解析的更多信息

于 2013-08-15T08:31:54.043 回答
0

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

t3lib/class.t3lib_tsparser*.php如果您想看一下,您可以在类中找到该代码(尽管我认为这对您没有帮助)。

于 2013-08-15T08:31:56.013 回答