我是新手,但我想解决这个问题,所以我问了 chat-gpt:
这是答案:
你找到的脚本是一个很好的开始。它修改了
poll-ui-builder控制器,以便在控制器调用onShow()函数时将publicPoll属性设置为true。这确实打算添加为一个主题组件。但是,代码可能无法正常工作,因为执行顺序。原始的
onShow()方法将publicPoll设置为false,然后修改将其设置为true。正确的方法是先调用父类的
onShow方法,然后将publicPoll设置为true:
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
}
});
</script>
你可以通过以下步骤将此脚本添加到你的主题中:
- 进入 Discourse 管理仪表板。
- 在“自定义”部分下,单击“主题”。
- 选择要修改的主题。
- 在主题编辑屏幕中,单击“编辑 CSS/HTML”。
- 在左侧边栏中,单击“</> Common”。
- 将上面的脚本粘贴到“</> Common”部分。
- 单击“保存”按钮。
这将把更改应用到你的主题。请记住,主题更改仅应用于使用该特定主题的用户。如果你有多个主题,则需要将此修改添加到每个主题。
另外,请记住清除浏览器缓存或执行硬重新加载,以确保正确加载更改。
我将尝试按照这些步骤与我们的论坛管理员一起操作,但这需要一些时间,如果这里有人想先尝试一下并提供反馈,我将非常高兴。
另外,我想改变 UI 的行为,我想跳过简单的屏幕,所以我再次问了 chat-gpt:
在你当前的 এটা 码中,扩展视图由
showAdvanced属性控制。如果将其设置为true,则会显示扩展视图。要始终显示扩展视图,你可以修改
poll-ui-builder控制器中的onShow()方法,将showAdvanced设置为true。你可以将此修改添加到你之前创建的主题组件中。这是更新后的脚本:
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
this.set('showAdvanced', true);
}
});
</script>
再次,请记住按照我之前概述的步骤将此脚本添加到你的主题中。保存脚本后,加载投票 UI 时应始终显示扩展视图。
同样,请记住清除浏览器缓存或执行硬重新加载,以确保正确加载更改。
我想尝试自己测试一下,但如前所述,我只是我们网站的版主,而不是管理员,所以这需要几天或几周的时间。