terminal42/contao-inserttags

Contao扩展,用于创建自定义插入标签。

资助包维护!
terminal42
其他

安装数: 31,436

依赖项: 0

建议者: 0

安全性: 0

星标: 12

关注者: 7

分支: 7

公开问题: 0

类型:contao-bundle

2.4.1 2024-01-29 12:22 UTC

This package is auto-updated.

Last update: 2024-08-29 13:43:05 UTC


README

添加后端模块以定义自定义插入标签。您可以限制插入标签仅在特定页面显示,仅对访客显示,或仅限于特定登录的前端成员组。

对于更复杂的用例,扩展还支持Contao的简单令牌语法,允许进行更强大和动态的替换。

示例令牌

  • 插入标签: phone
  • 替换: +48 123 456 789
  • 用法: {{custom::phone}}
  • 输出: +48 123 456 789

支持的简单令牌

简单令牌分为两种类型

评估令牌

评估令牌旨在用于条件语句,格式为token.property

以下是支持的评估令牌列表

  1. member.* – 当前成员属性(如果已登录)。注意,如果没有成员登录,它可能是null
  2. page.* – 当前页面属性。

示例

{if member and 456 in member.groups}
This content is visible explicitly to the members of group ID 456.
{endif}

{if page and 123 in page.trail}
I am a subpage of page ID 123!
{endif}

{if page and page_language in ["de_DE", "pl_PL"]}
German and Polish
{else}
All other languages
{endif}

{if page and page_language matches "^de"}
German
{else}
Not German
{endif}

注意:在比较之前,请始终检查pagemember。如果在Contao后端,它们都没有设置。

替换令牌

替换令牌旨在用于输出数据,格式为##token_property##

以下是支持的替换令牌列表

  1. ##member_*## – 当前成员属性(如果已登录)。
  2. ##page_*## – 当前页面属性。

示例

{if member}
Hello ##member_firstname## ##member_lastname##!
{else}
Hello anonymous!
{endif}

You current page language is: ##page_language##

注释

从版本2.1.0开始,您可以使用注释来描述替换内容。

# Show content only to the logged in users
{if member}
Hello ##member_firstname## ##member_lastname##!
{endif}

如果您希望将哈希作为行的第一个字符,可以这样转义:\#

安全关注

问:为什么有两种类型的令牌?

答:评估令牌引用实际对象。然而,出于安全原因,对象永远不应该用作替换令牌。因此,我们引入了替换令牌,它们包含纯字符串数据。

问:为什么不支持request

答:请求可能包含恶意数据,例如作为查询参数提供的数据,允许用户在前端显示它可能是危险的。

问:为什么不支持像{{custom::my_tag::my_param_1::my_param_2}}这样的标签参数?

答:标签参数无法验证,这可能是危险的。

从版本1.x升级

版本1.x中存在的一些选项已被删除。所有更改如下所述。

删除"timing"功能

已完全删除计时功能,因为它会破坏HTTP缓存。如果您需要替代方案,请考虑JavaScript解决方案。

删除"limitLanguages"选项

已完全删除此选项,请使用限制插入标签到特定页面的功能代替。

删除"useCondition"选项

已完全删除此选项,因为它也会使HTTP缓存成为不可能。

删除"useCounter"选项

已完全删除此选项,因为它也会使HTTP缓存成为不可能。

删除"mode"选项

已完全删除此选项,因为插入标签仅存在于前端。

删除"cacheOutput"选项

此选项已被完全移除,因为在版本2中不再需要。

许可证

此软件包是在MIT许可证下发布的。