tritum / form-element-linked-checkbox
添加一个新的表单元素,允许编辑器创建带有链接标签文本的复选框。这是TYPO3 CMS的扩展。
Requires
- php: ^7.4 || ^8.0
- symfony/polyfill-php80: ^1.15
- typo3/cms-core: ^11.5.0 || ^12.4.0
- typo3/cms-form: ^11.5.0 || ^12.4.0
- typo3/cms-frontend: ^11.5.0 || ^12.4.0
Requires (Dev)
- armin/editorconfig-cli: ^1.5
- ergebnis/composer-normalize: ^2.23
- helmich/typo3-typoscript-lint: ^3.1
- phpstan/phpstan: ^1.3
- saschaegerer/phpstan-typo3: ^1.0
- typo3/coding-standards: ^0.7.1
README
自定义表单元素 "链接复选框"
此TYPO3扩展向表单框架添加自定义表单元素 "链接复选框"。用户可以定义链接目标和链接文本。
已知不兼容性
此扩展与 EXT:form-mailtext 不完全兼容。两个扩展都覆盖了相同的Fluid模板。请在您的站点包中创建一个副本,相应地修改模板,并正确配置TYPO3以使用此模板。
安装和配置
首选安装
- 通过composer安装扩展。
- 将静态TypoScript配置添加到您的TypoScript模板中。
自定义
扩展覆盖以下视图的模板
- 收件人电子邮件,纯文本
- 收件人电子邮件,HTML
- 发件人电子邮件,纯文本
- 发件人电子邮件,HTML
- 摘要页面
这是正确渲染链接所必需的。默认情况下,表单框架的核心模板在电子邮件和纯文本邮件中都会转义任何HTML。因此,您的用户将收到链接损坏的邮件。
如果您还覆盖了这些模板,请相应地修改您的文件。
使用方法
打开TYPO3表单编辑器,创建一个新的表单或打开现有的表单。向您的表单添加一个新元素。模态窗口将列出新的自定义表单元素 "链接复选框"。提供一个包含链接文本的复选框标签。选择您想要链接的页面。
标签和链接的组合
默认标签由标签本身组成,后面跟一个指向指定页面的链接,带有指定的链接文本。
示例
- 标签:
我接受
- 链接文本:
条款和条件。
- 输出:
我接受 <a href="/terms" target="_blank">条款和条件.</a>
如果您想在标签内使用链接,请使用字符替换在标签中定义链接位置。我们强烈推荐这种方式。
示例
- 标签:
我已阅读%s并接受它们。
- 链接文本:
条款和条件
- 输出:
我已阅读 <a href="/terms" target="_blank">条款和条件</a> 并接受它们。
您还可以在复选框标签中使用多个链接。为此,只需使用 additionalLinks
字段,并提供页面UID和链接文本的组合。
示例
- 标签:
我已阅读%s和%s并接受它们。
- 链接文本:
条款和条件
- 附加链接
隐私政策
- 输出:
我已阅读 <a href="/terms" target="_blank">条款和条件</a> 和 <a href="/privacy-policy" target="_blank">隐私政策</a> 并接受它们。
链接配置
您可以为生成标签内的链接提供额外的链接配置。请注意,这只能在相应的 .form.yaml
文件中定义,而不能在表单编辑器中定义,并适用于所有生成的链接。
type: LinkedCheckbox identifier: consent label: 'I accept the %s and %s.' properties: pageUid: '67' linkText: 'terms and conditions' additionalLinks: 83: 'privacy policy' renderingOptions: linkConfiguration: # Additional typolink configuration can be inserted here, e.g.: no_cache: 1
有关可用配置的完整列表,请参阅 TypoScript参考。
覆盖默认链接目标
默认情况下,链接目标设置为 _blank
。如果您想覆盖它,只需定义一个自定义链接配置 parameter
– 可以是一个空字符串或自定义目标/附加参数配置
renderingOptions: linkConfiguration: parameter: ''
可能的改进或更改
而不是创建一个新的表单元素,现有的 Checkbox
表单元素可以扩展。为了提供更复杂的示例,扩展创建了一个新元素。
撰写本文档时,您必须提供一小段JavaScript代码(见 \Resources\Public\JavaScript\Backend\FormEditor\ViewModel.js
)。此代码片段用于在表单编辑器中显示自定义表单元素。对于未来的TYPO3版本,我们旨在消除这一障碍,以简化元素注册。
版本
版本 4.x 的破坏性更改
4.x版本包含以下破坏性更改
版本 3.x 的破坏性更改
3.x版本包含以下破坏性更改
- [!!!][功能] 将链接解析从字段部分移动到钩子 (d128090)
- [!!!][任务] 删除过时的钩子使用 (90695cf)
- [!!!][任务] 加强FormElementLinkResolverHook的可视性和使用性 (4ffb57b)
致谢
这个TYPO3扩展由Björn Jacob创建,并由Elias Häüssler大幅改进。这个想法始于2017年的TYPO3 CertiFUNcation Day。我的演讲听众友好地要求这样的元素。轻率地,我说创建这样的扩展不会超过30分钟。不幸的是,我没有在这段时间内完成。我花了1.5小时才想出初始版本的代码。JavaScript部分让我头疼。
谢谢
Jochen Weiland - TYPOholic在jweiland.net - 以多种方式支持了这个挑战。感谢您成为我们TYPO3社区的一个杰出部分。
Elias Häüssler - 最好的朋友,提供出色的PR和提供美丽的TYPO3徽章。使用它们。给他一些赞誉!