将字段添加到 TYPO3 模板以获取全球站点信息?

Posted

技术标签:

【中文标题】将字段添加到 TYPO3 模板以获取全球站点信息?【英文标题】:Add fields to TYPO3 template for global site info? 【发布时间】:2020-05-18 08:02:24 【问题描述】:

如何在 TYPO3 模板(或更好的位置)中添加一些字段以获取一般站点信息?

例如,电话号码字段,以便我可以将其添加到站点标题或其他非内容区域。

过去我曾使用特殊文件夹中的内容元素来添加类似的内容,但这对网站编辑人员来说不是很友好。

【问题讨论】:

【参考方案1】:

如果您希望网站编辑器(相对)容易编辑,而不需要构建自定义模块或类似的东西,那么特殊文件夹中的内容元素是您的最佳选择。我们经常为此使用自定义内容元素,因此该字段更符合逻辑,但您确实需要为此进行一些编程。有关创建自定义字段的更多信息,请访问 https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/ContentElements/AddingYourOwnContentElements.html

另一种方法是使用 TypoScript 常量。这些使用模板模块中的常量编辑器相对容易编辑。假设您使用 Fluid 模板,您可以使用 <f:cObject typoscriptObjectPath="lib.phoneNumber" /> 将其添加到模板中,然后在 TypoScript 中添加以下内容:

lib.phoneNumber = TEXT
lib.phoneNumber.value = $phoneNumber

有关常量编辑器的更多信息,请访问https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/UsingSetting/TheConstantEditor.html

【讨论】:

【参考方案2】:

在其他两个答案中,我都错过了最简单的解决方案: 将值定义为通用流体变量

page 
    10 = FLUIDTEMPLATE
    10 
        :
        variables 
            :
            phoneNumber = TEXT
            phoneNumber.value = $phoneNumber
        
    

您不需要使用settings,因为它没有设置。 或使用lib.anything 并调用f:cObject viewhelper 从流畅的文字跳回打字。


除此之外,我建议考虑是否需要管理员(甚至是维护人员来部署新版本)来更改电话号码(所有打字稿、设置和常量,都属于站点扩展)在存储库中提供)。

您总是可以限制普通编辑器访问特殊页面甚至列或特殊内容元素,管理员可以在没有部署过程的情况下更改数据。 (例如:电话线坏了,遇到紧急情况需要换号码,麻烦多少?)

【讨论】:

在常量编辑器中添加新字段最接近我的要求。但是您的建议对于如何使用该字段数据很有帮助,谢谢。【参考方案3】:

我认为最简单的方法是用 TS 添加它,类似这样的:

page 
   10 
      settings 
         siteInfos 
            phone = 01 02 03 04 05
         
      
   

然后,您可以在流体模板中使用它:

settings.siteInfos.phone

弗洛里安

【讨论】:

以上是关于将字段添加到 TYPO3 模板以获取全球站点信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TYPO3 页面模板中定义的通量表单字段存储在数据库列中而不是弹性字段中?

如何在https TYPO3后端处理“非https”(http)站点

如何将当前页面标题自动插入到 TYPO3 模板中?

TYPO3 升级(7.6 到 10):未找到站点配置

通过Typoscript将翻译添加到TYPO3 Extension

有没有一种简单的方法可以完全自定义 Django 管理站点以显示不是字段的变量?