Typoscript 的 TYPO3 问题和访问 $this->settings

Posted

技术标签:

【中文标题】Typoscript 的 TYPO3 问题和访问 $this->settings【英文标题】:TYPO3 issue with Typoscript and accessing $this->settings 【发布时间】:2016-12-15 06:44:33 【问题描述】:

我使用的是 TYPO3 版本 7.6.14,我为客户端创建了一个扩展,它有四个控制器、四个插件,而且总体上相当大。无论如何,现在我需要为动态或用户选择的“页面 id”添加选项(设置变量),然后用于从一个插件重定向到另一个插件。我的问题可能有更好的解决方案,但我正在尝试做类似的事情:

plugin.tx_extname_basket 
    view 
        # cat=plugin.tx_extname_basket/file; type=string; label=Path to template root (FE)
        templateRootPath = EXT:extname/Resources/Private/Templates/
        # cat=plugin.tx_extname_basket/file; type=string; label=Path to template partials (FE)
        partialRootPath = EXT:extname/Resources/Private/Partials/
        # cat=plugin.tx_extname_basket/file; type=string; label=Path to template layouts (FE)
        layoutRootPath = EXT:extname/Resources/Private/Layouts/
    
    persistence 
        # cat=plugin.tx_extname_basket//a; type=string; label=Default storage PID
        #storagePid =
    
    settings 
        #  cat=plugin.tx_extname_basket//a; type=int; label=Products Page ID
        productsPage =
    

现在的问题是,即使我 100% 确定 Typoscript 已正确包含在加载扩展名的页面中,变量 $this->settings['productsPage'] 和 FLUID settings.productsPage 也不起作用。我清除了整个缓存,甚至尝试删除整个typo3temp 文件夹,但它仍然不起作用。我还尝试调试$this 对象,它显示settings => NULL

哦,productsPage 是在“SETUP”下的 Default Root 模板中输入的,当浏览 Typoscript 对象(在管理中)时,我可以看到设置设置得很好。所以我不认为我的 TypoScript 无效。

【问题讨论】:

【参考方案1】:

如果您有四个插件,则必须为每个插件设置此 Typoscript 设置。如果上面的 Typoscript 包含正确,则只有插件“basket”可以访问“settings”。

另一件事:您的 Typoscript 中的 cmets 似乎这些设置是 Typoscript 常量,而不是 Typoscript 设置。在设置中,您也必须将这些常量传递给插件配置。示例:

plugin.tx_extname_basket 
    settings 
        productsPage = $plugin.tx_extname_basket.settings.productsPage
    

您还必须将模板等的其他常量传递给设置。

【讨论】:

感谢您的回复。我知道我必须为每个插件添加设置,我已经粘贴了四分之一的示例。很抱歉没有解决这个问题。我只关心在控制器和流体中获得 $this->settings。我也用对象浏览器中的图像更新了问题。 在您的排版中不会自动使用常量。这就是保罗所描述的。 我明白了。谢谢,这解决了问题。

以上是关于Typoscript 的 TYPO3 问题和访问 $this->settings的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3/TypoScript - 在 DataProcessor 中使用 FIELD() 自定义排序

在 TYPO3 CMS 中调试 Typoscript 的最佳方法是啥?

typescript Typo3:本年度的Typoscript版权

通过Typoscript将翻译添加到TYPO3 Extension

TYPO3 10.4 前端未找到新字段

TYPO3 表格:无法验证 HMAC