本指南详细概述了用于自定义 Discourse 中的文本和系统电子邮件模板的插值键。
所需用户级别:管理员
在 自定义 Discourse 中的文本 或 自定义特定电子邮件模板 时,您可能已经注意到某些模板中存在占位符变量。
在 Discourse 中,我们将这些称为插值键。
理解插值键
插值键是 Discourse 中某些模板可用的占位符。它们允许您在文本和电子邮件模板中插入动态内容。
例如,Account Created 电子邮件模板的插值键示例:
这些键,例如 %{username} 或 %{site_name},在发送电子邮件时将被实际数据替换。
通常,这些占位符可以在其所属的模板内移动,但它们仅在该模板中可用,并且不能移动到其他模板,因为它们都由与相应模板匹配的服务器代码支持。
但是,文本和电子邮件模板还允许使用一些额外的插值键。
常规插值键
以下是一些您可以在所有电子邮件模板中使用的常规插值键列表:
username:用户的用户名
name:用户的全名
name_or_username:用户的全名或用户名
只要它们具有 subject_template 和 text_body_template 子键,您也可以在文本和电子邮件模板自定义中使用所有 system_messages.welcome_user 键,因为所有这些都应由 SystemMessage 类处理(请参阅 system_message.rb 查看相关的 Discourse 代码)。
有关允许的自定义插值键的完整列表,请参阅 Discourse 源代码 translation_override.rb 中的 ALLOWED_CUSTOM_INTERPOLATION_KEYS。
9 个赞
gerhard
(Gerhard Schlager)
2
那不正确。目前这仅适用于 system_messages.welcome_user,但我们可以将其扩展到所有其他键。这是 pr-welcome 的材料。
4 个赞
gassim
(Al-Gassim Sharaf Addin)
4
您好!
我该如何修改其中一些插值键的值?例如,%{search_answer}
谢谢!
gassim
(Al-Gassim Sharaf Addin)
5
您好!
它说这个密钥无效:
附注:
我是在文本中替换,而不是在电子邮件中替换(这有区别吗)?谢谢!
gassim
(Al-Gassim Sharaf Addin)
7
谢谢 @Jagster!我正在文本自定义中使用它们,所以根据主题帖子,它应该能起作用?
Jagster
(Jakke Lehtonen)
8
主题实际上是关于电子邮件模板和那些文本。因此,您不能在正确的上下文之外使用插值键。这就是为什么我们有用于电子邮件的其他键,用于某些 AI 提示等的其他键。
当然,插件可以做很多事情,但这次不能开箱即用。
免责声明:我只是另一个最终用户,我也可能大错特错。但我很确定我是对的——这就是为什么您的尝试不起作用 
gassim
(Al-Gassim Sharaf Addin)
9
好的,非常感谢您的支持。看起来即使在电子邮件模板中使用它,它也不起作用:
Jagster
(Jakke Lehtonen)
10
我的猜测是,您可以在“用户操作…”模板中使用“%{username}”,而所有其他模板都不支持它。
但明天所有专家醒来后我们就会知道。