tritum/form-element-linked-checkbox

添加一个新的表单元素,允许编辑器创建带有链接标签文本的复选框。这是TYPO3 CMS的扩展。

安装: 382,714

依赖: 0

建议者: 0

安全性: 0

星星: 23

关注者: 4

分支: 33

开放问题: 10

类型:typo3-cms-extension

4.0.0 2023-06-19 07:42 UTC

This package is auto-updated.

Last update: 2024-09-22 08:24:20 UTC


README

TYPO3 extension Total downloads Stability CGL TYPO3 versions Latest version

自定义表单元素 "链接复选框"

此TYPO3扩展向表单框架添加自定义表单元素 "链接复选框"。用户可以定义链接目标和链接文本。

已知不兼容性

此扩展与 EXT:form-mailtext 不完全兼容。两个扩展都覆盖了相同的Fluid模板。请在您的站点包中创建一个副本,相应地修改模板,并正确配置TYPO3以使用此模板。

安装和配置

首选安装

  1. 通过composer安装扩展。
  2. 将静态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版本包含以下破坏性更改

  • [!!!][任务] 使用时间戳作为键 (1feab28)
  • [!!!][错误修复] 将EXT:form钩子更改为尊重应用过的变体 (543830b)

版本 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徽章。使用它们。给他一些赞誉!