对于"TypoScript常量"one_answers"扩展配置"(如ext_conf_template.txt中所定义),使用通用语法。它们记录在这里:
- 常量(在"TypoScript模板引用"中)
- 扩展配置(在"TYPO3解释"中)
一个例子:
# cat=basic; type=string; label=Some title
title =
第1行描述变量的数据类型、类别等。
或者,我们可能有这样的东西:
tx_plugins.my_plugin {
# cat=basic; type=string; label=Some title
title =
}
除了这个相当简单的例子,你还可以用它做更多的事情。
TypoScript常量和Extension Configuration的存储位置和使用方式完全不同,但我想知道我们是否只看语法和您可以使用的功能——是一样的吗?
例如
- 可用的数据类型(布尔值、整数等)
- 不能使用多行值
- 可以使用环境变量
- 如何访问文件
- 如何进行本地化
我问的原因是:为了简化文档,我还在自己的扩展中使用它。
简短回答
TS模板常量和扩展配置使用的语法相同,但当前可用类型存在一些细微差异。
深入分析
扩展配置
对于TYPO3 CMS版本6,扩展管理器和配置是基于Extbase并使用FormEngine从头开始重写的。可用类型有:
int
:整数值int+
:仅限正整数值integer
:int
的别名color
:颜色选择器wrap
:换行,行最后由保存值的|
分隔offset
:偏移字段options
:选择boolean
:复选框user
:用户函数用于渲染small
:小文本字段string
:文本字段input
:string
的别名,仅用于向后兼容性,许多扩展都依赖于此default
:string
的别名,仅用于向后兼容性,许多扩展都依赖于此
此处提供源代码:https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php#L36
TypoScript模板常量编辑器
另一方面,TypoScript模板常量编辑器从未被重写以使用FormEngine,并且有自己的实现。这里还提供以下类型:
comment
:用于切换常量的复选框files
:文件选择
此处提供源代码:https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/TypoScript/ExtendedTemplateService.php#L993
其他问题
- 不能使用多行值
对于TS常量编辑器来说,这几乎是真的,但有wrap
类型可以实现类似多行的功能。对于扩展配置,有small
和string
两种类型。
对于我目前不知道的其他问题,必须先深入研究一下:
- 您可以使用环境变量
- 如何访问文件
- 如何进行本地化
由于Typoscript是一种配置,它可以以多种方式使用。TYPO3使用不同。所以你必须有所不同。
常量只能用于前端渲染。在那里,它们是在不同地方使用给定值的快捷方式
或者在不了解详细设置的情况下轻松配置某些东西(扩展)。因此,您有一个常量编辑器,可以在其中定义得到特殊信息/注释的常量。它就像TCA一样,有助于构建表单,并自动为数据提供一些验证器。由于TS常量只是可以在设置中使用的字符串,因此您没有实际的数据类型。这只是一种在常量编辑器中进行一些验证的配置
除了常量定义中的一些常量的递归替换(高达10级)之外,您没有其他计算值的选项。
在Typoscript设置中,(同时)stdWrap几乎无处不在。
但特别是扩展并不能在任何地方都对其进行评估。因此,在某些地方,您在setup中有一个扩展配置,您只能在其中插入固定字符串。(如常数)
另一方面:
如何配置扩展(使用TYPO3工具)?
除了主要用于前端渲染(*)的Typoscript设置(您可以在其中使用常量)之外,您还可以使用扩展管理器配置扩展
此数据以串行方式存储在typo3conf/LocalConfiguration.php
中。由于TYPO3 9未被序列化
它可以在前端和后端访问,并在全局范围内工作,而前端打字脚本或TSconfig取决于页面(和用户)。
这就引出了配置的第三部分:TSconfig
我们有页面TSconfig和用户TSconfig。在pages
、be_users
和be_groups
中,可以使用打字脚本语法定义配置。这可以通过扩展的"全局"PHP代码来增强,该代码在ext_localconf.php
和ext_tables.php
(或/Configuration/TCA/
和/Configuration/TCA/Overrides/
中的后续代码)中注入进一步的配置
(*)一些扩展评估后端模块或插件选项配置的前端打字脚本