【发布时间】:2017-10-17 06:06:26
【问题描述】:
允许后端用户编辑变量的最佳方式是什么?
例如,我有一个发送各种电子邮件通知的 TYPO3,我希望后端用户能够全局更改收件人。我从模板常量开始,直到我发现后端用户无法编辑“模板”模块。
那么实现这一目标的最佳方法是什么?我正在使用 Typo3 8.7.7
【问题讨论】:
标签: typo3
允许后端用户编辑变量的最佳方式是什么?
例如,我有一个发送各种电子邮件通知的 TYPO3,我希望后端用户能够全局更改收件人。我从模板常量开始,直到我发现后端用户无法编辑“模板”模块。
那么实现这一目标的最佳方法是什么?我正在使用 Typo3 8.7.7
【问题讨论】:
标签: typo3
我会创建一个可供后端用户编辑的配置记录。
【讨论】:
一种方法是将 fileadmin/ 中的一个文件包含到typoscript 的常量定义中。此文件编辑器可能会更改。 但这可能存在安全风险,因为编辑器可以定义任何常量。
下一个选项是为页面记录定义额外的字段,这些值可以由任何编辑器设置。在打字稿中,您访问该字段(可能使用slide = -1,因此该值只需设置一次)
另一个选项:将这些字段添加到(特殊?)CE(ContentElement)。
最后一个选项:在特殊页面或列使用标准 CE(例如 HTML 内容)并使用内容字段(正文)。 (HTML 内容的优点是 bodytext 字段未修改地存储。)
最干净和最精简的选项将是选项二(表“页面”的附加字段)。选项 3 和 4 可以使用纯打字稿,但您需要使用 CONTENT 或 RECORD 对象。如果您使用修复 uid:请记住,您的编辑可能会删除 CE 并添加具有相同内容(但另一个 uid)的新 CE
加法:
正如@Thomas-Löffler 在他的回答中所说:
您还可以添加一种新的记录/表,编辑器可以在其中插入或更改全局值。处理就像页面或 tt_content。如果您的记录是全局的(pid = 0,或特殊的存储页面)或依赖于页面树(根路径),您可能会有所不同,因此您可以为不同的页面子树设置不同的值。
【讨论】:
我喜欢 Thomas 的回答,因为它提供了一个专门的位置来存储配置选项,而不是把它放在例如到pages,因为您的配置选项未绑定到页面上下文。
不过,就我个人而言,为它创建一个专用表感觉有点奇怪。一张永远不会保存超过一条记录的表。
这使我得出结论,键值存储将是正确的使用方式。幸运的是,TYPO3 发布了System Registry。唯一的缺点是它没有界面,所以你必须想出自己的表格来填写它。如果您采用 Thomas 的解决方案,那就容易多了……
【讨论】:
一个干净简单的方法是设置一个带有表单的后端模块来设置电子邮件地址。 然后,您可以将访问权限授予特定组或用户,他们就可以开始使用了。
【讨论】: