我在使用 Banner Themes(https://meta.discourse.org/t/banner-themes-and-instructions-for-customizing-them/82368)为匿名用户展示一些 HTML 内容,主要是鼓励他们注册账户。
我试图在内容中间添加一个“注册”按钮。通常情况下,创建一个按钮并在点击时重定向到 .xyz Domain Names | Join Generation XYZ JS、简单的 form 提交或 href 重定向等)都非常简单。
我一直在尝试看看是否有一种更“Discourse 原生”的方式来实现这一操作。我仔细研读了《Discourse 主题开发者指南》(https://meta.discourse.org/t/developer-s-guide-to-discourse-themes/93648)。在 widgets、controllers 和 components 之间,我遇到了一个问题:
在使用 JavaScript(位于 type=“text/discourse-plugin” 的脚本中)时,展示“注册弹窗”最直接的方法是什么?
非常明确的是,我试图在 Handlebars 脚本之外执行此操作,例如:
{{d-button action=(route-action “showCreateAccount”) class=“btn-primary sign-up-button” label=“sign_up”}}
最终目标是实现类似这样的效果……我正在弄清楚应该用什么来替换下面的 粗体部分:
<script type="text/discourse-plugin"version=“0.8.18”>
document.getElementById(“showCreate”).onclick = function() {
{{d-button action=(route-action “showCreateAccount”) class=“btn-primary sign-up-button” label=“sign_up”}}
}
</script>
我尝试过的所有方法都抛出了不同的错误,但大多是因为它无法理解“action”。我搜索了 Meta,虽然有很多关于如何创建新 widget 或将此放置在其他位置的示例,但我没找到一种原生的实现方式。任何帮助都将不胜感激。
(附:我并不是说这是实现此功能的最佳或必要方式,但这将极大地帮助我理解整个应用是如何运作的)
谢谢!