用于 TypoScript 常量的语法和用于 "Extension Configuration" 的语法之间有什么区别吗?
Is there any difference between the syntax used for TypoScript constants and the syntax for "Extension Configuration"?
对于 "TypoScript constants" 和 "Extension Configuration"(如 ext_conf_template.txt 中定义)使用通用语法。它们记录在此处:
- Constants(在"TypoScript Template Reference")
- Extension Configuration(在"TYPO3 Explained")
一个例子:
# cat=basic; type=string; label=Some title
title =
第一行描述了变量的数据类型、类别等。
或者,我们可能有这样的东西:
tx_plugins.my_plugin {
# cat=basic; type=string; label=Some title
title =
}
除了这个相当简单的例子之外,您还可以用它做更多的事情。
TypoScript 常量和扩展配置的存储位置以及它们的使用方式完全不同,但我想知道我们是否只看语法和您可以使用的功能 - 是否相同?
例如
- 可用的数据类型(布尔、整数等)
- 您不能使用多行值
- 您可以使用环境变量
- 如何访问文件
- 如何进行本地化
我问的原因:为了简化文档,我也在自己的扩展中使用它。
由于 Typoscript 是一种配置,因此可以通过多种方式使用它。而 TYPO3 使用它的方式不同。所以你要区分。
常量只能用于前端渲染。他们有在不同地方使用给定值的快捷方式。
或者在不了解详细设置的情况下轻松配置某些东西(扩展)。因此,您拥有常量编辑器,您可以在其中定义具有特殊信息/注释的常量。它就像 TCA,有助于构建表单并自动拥有一些数据验证器。因为 TS 常量只是可以在设置中使用的字符串,所以您没有真正的数据类型。这只是在 Constant-Editor 中进行一些验证的配置。
除了常量定义中常量的一些递归替换(最多 10 级)之外,您没有其他选项来计算值。
在 Typoscript 设置中,(同时)几乎所有地方都有 stdWrap 功能。
但特别是扩展不会在所有地方对其进行评估。所以在某些地方,您在设置中有一个扩展配置,您只能在其中插入固定字符串。 (就像常量一样)
另一方面:
如何配置扩展(使用 TYPO3 工具)?
除了主要用于前端渲染的 Typoscript 设置(您可以在其中使用常量)外 (*),您还可以使用扩展管理器配置扩展的全局选项。
此数据序列化存储在 typo3conf/LocalConfiguration.php
中。由于 TYPO3 9 未序列化。
它可以在前端和后端访问并在全球范围内工作,而前端 typoscript 或 TSconfig 依赖于页面(和用户)。
这将我们带到配置的第三部分:TSconfig
我们有 page-TSconfig 和 user-TSconfig。在 pages
、be_users
和 be_groups
中,您可以使用错别字语法定义配置。这可以通过 'global' PHP 扩展代码来增强,这些代码在 ext_localconf.php
和 ext_tables.php
中注入进一步的配置(或 /Configuration/TCA/
和 /Configuration/TCA/Overrides/
中的后继者)
(*) 一些扩展会评估用于配置后端模块或插件选项的前端打字稿
简答
用于 TS 模板常量和扩展配置的语法是相同的,但当前可用的类型存在一些细微差别。
深入分析
扩展配置
对于 TYPO3 CMS 版本 6,扩展管理器和配置基于 Extbase 并使用 FormEngine 从头开始重写。可用类型有:
int
:整数值
int+
: 仅正整数值
integer
:int
的别名
color
:颜色选择器
wrap
:换行,最后用|
分隔行,保存值
offset
: 偏移字段
options
: select
boolean
: 复选框
user
: 用户函数用于渲染
small
:小文本字段
string
: 文本字段
input
:string
的别名,仅用于向后兼容,许多扩展依赖于
default
:string
的别名,仅用于向后兼容,许多扩展依赖于
TypoScript 模板常量编辑器
另一方面,TypoScript 模板常量编辑器从未被重写以使用 FormEngine,并且有自己的实现。这里还有以下类型:
comment
: 用于切换常量的复选框
files
: 文件 selection
其他问题
- 您不能使用多行值
这对于 TS 常量编辑器来说几乎是正确的,但是 wrap
类型可以实现类似于多行的功能。对于扩展配置,有 small
和 string
类型。
对于其他我目前没有意识到的问题,必须先进行更深入的调查:
- 您可以使用环境变量
- 如何访问文件
- 如何进行本地化
对于 "TypoScript constants" 和 "Extension Configuration"(如 ext_conf_template.txt 中定义)使用通用语法。它们记录在此处:
- Constants(在"TypoScript Template Reference")
- Extension Configuration(在"TYPO3 Explained")
一个例子:
# cat=basic; type=string; label=Some title
title =
第一行描述了变量的数据类型、类别等。
或者,我们可能有这样的东西:
tx_plugins.my_plugin {
# cat=basic; type=string; label=Some title
title =
}
除了这个相当简单的例子之外,您还可以用它做更多的事情。
TypoScript 常量和扩展配置的存储位置以及它们的使用方式完全不同,但我想知道我们是否只看语法和您可以使用的功能 - 是否相同?
例如
- 可用的数据类型(布尔、整数等)
- 您不能使用多行值
- 您可以使用环境变量
- 如何访问文件
- 如何进行本地化
我问的原因:为了简化文档,我也在自己的扩展中使用它。
由于 Typoscript 是一种配置,因此可以通过多种方式使用它。而 TYPO3 使用它的方式不同。所以你要区分。
常量只能用于前端渲染。他们有在不同地方使用给定值的快捷方式。
或者在不了解详细设置的情况下轻松配置某些东西(扩展)。因此,您拥有常量编辑器,您可以在其中定义具有特殊信息/注释的常量。它就像 TCA,有助于构建表单并自动拥有一些数据验证器。因为 TS 常量只是可以在设置中使用的字符串,所以您没有真正的数据类型。这只是在 Constant-Editor 中进行一些验证的配置。
除了常量定义中常量的一些递归替换(最多 10 级)之外,您没有其他选项来计算值。
在 Typoscript 设置中,(同时)几乎所有地方都有 stdWrap 功能。
但特别是扩展不会在所有地方对其进行评估。所以在某些地方,您在设置中有一个扩展配置,您只能在其中插入固定字符串。 (就像常量一样)
另一方面:
如何配置扩展(使用 TYPO3 工具)?
除了主要用于前端渲染的 Typoscript 设置(您可以在其中使用常量)外 (*),您还可以使用扩展管理器配置扩展的全局选项。
此数据序列化存储在 typo3conf/LocalConfiguration.php
中。由于 TYPO3 9 未序列化。
它可以在前端和后端访问并在全球范围内工作,而前端 typoscript 或 TSconfig 依赖于页面(和用户)。
这将我们带到配置的第三部分:TSconfig
我们有 page-TSconfig 和 user-TSconfig。在 pages
、be_users
和 be_groups
中,您可以使用错别字语法定义配置。这可以通过 'global' PHP 扩展代码来增强,这些代码在 ext_localconf.php
和 ext_tables.php
中注入进一步的配置(或 /Configuration/TCA/
和 /Configuration/TCA/Overrides/
中的后继者)
(*) 一些扩展会评估用于配置后端模块或插件选项的前端打字稿
简答
用于 TS 模板常量和扩展配置的语法是相同的,但当前可用的类型存在一些细微差别。
深入分析
扩展配置
对于 TYPO3 CMS 版本 6,扩展管理器和配置基于 Extbase 并使用 FormEngine 从头开始重写。可用类型有:
int
:整数值int+
: 仅正整数值integer
:int
的别名
color
:颜色选择器wrap
:换行,最后用|
分隔行,保存值offset
: 偏移字段options
: selectboolean
: 复选框user
: 用户函数用于渲染small
:小文本字段string
: 文本字段input
:string
的别名,仅用于向后兼容,许多扩展依赖于default
:string
的别名,仅用于向后兼容,许多扩展依赖于
TypoScript 模板常量编辑器
另一方面,TypoScript 模板常量编辑器从未被重写以使用 FormEngine,并且有自己的实现。这里还有以下类型:
comment
: 用于切换常量的复选框files
: 文件 selection
其他问题
- 您不能使用多行值
这对于 TS 常量编辑器来说几乎是正确的,但是 wrap
类型可以实现类似于多行的功能。对于扩展配置,有 small
和 string
类型。
对于其他我目前没有意识到的问题,必须先进行更深入的调查:
- 您可以使用环境变量
- 如何访问文件
- 如何进行本地化