【发布时间】:2020-05-18 08:02:24
【问题描述】:
如何在 TYPO3 模板(或更好的位置)中添加一些字段以获取一般站点信息?
例如,电话号码字段,以便我可以将其添加到站点标题或其他非内容区域。
过去我曾使用特殊文件夹中的内容元素来添加类似的内容,但这对网站编辑人员来说不是很友好。
【问题讨论】:
标签: typo3 typoscript fluid typo3-9.x
如何在 TYPO3 模板(或更好的位置)中添加一些字段以获取一般站点信息?
例如,电话号码字段,以便我可以将其添加到站点标题或其他非内容区域。
过去我曾使用特殊文件夹中的内容元素来添加类似的内容,但这对网站编辑人员来说不是很友好。
【问题讨论】:
标签: typo3 typoscript fluid typo3-9.x
如果您希望网站编辑器(相对)容易编辑,而不需要构建自定义模块或类似的东西,那么特殊文件夹中的内容元素是您的最佳选择。我们经常为此使用自定义内容元素,因此该字段更符合逻辑,但您确实需要为此进行一些编程。有关创建自定义字段的更多信息,请访问 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
【讨论】:
在其他两个答案中,我都错过了最简单的解决方案:
将值定义为通用流体变量
page {
10 = FLUIDTEMPLATE
10 {
:
variables {
:
phoneNumber = TEXT
phoneNumber.value = {$phoneNumber}
}
}
}
您不需要使用settings,因为它没有设置。
或使用lib.anything 并调用f:cObject viewhelper 从流畅的文字跳回打字。
除此之外,我建议考虑是否需要管理员(甚至是维护人员来部署新版本)来更改电话号码(所有打字稿、设置和常量,都属于站点扩展)在存储库中提供)。
您总是可以限制普通编辑器访问特殊页面甚至列或特殊内容元素,管理员可以在没有部署过程的情况下更改数据。 (例如:电话线坏了,遇到紧急情况需要换号码,麻烦多少?)
【讨论】:
我认为最简单的方法是用 TS 添加它,类似这样的:
page {
10 {
settings {
siteInfos {
phone = 01 02 03 04 05
}
}
}
}
然后,您可以在流体模板中使用它:
{settings.siteInfos.phone}
弗洛里安
【讨论】: