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

Add fields to TYPO3 template for global site info?

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

例如,phone 数字字段,以便我可以将其添加到站点 header 或其他非内容区域。

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

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

page {
   10 {
      settings {
         siteInfos {
            phone = 01 02 03 04 05
         }
      }
   }
}

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

{settings.siteInfos.phone}

弗洛里安

如果您希望站点编辑器(相对)易于编辑,而无需构建自定义模块或类似的东西,那么特殊文件夹中的内容元素是您的最佳选择。我们经常为此使用自定义内容元素,因此该字段更符合逻辑,但您确实需要为此进行一些编程。有关创建自定义字段的更多信息,请访问 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.

从流体跳回到打字错误

除此之外,我建议考虑是否需要管理员(甚至部署新版本的维护人员)来更改 phone 数字(所有打字错误、设置和常量,属于进入存储库中提供的站点扩展。

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