在群组中为用户列表添加新列

是否可以在群组的用户列表中添加额外的列?我有一个插件,我正试图为其添加功能,该功能正在向群组的用户列表添加一列,显示用户是活跃、暂停、静默还是停用。看起来 group-index Handlebars 模板和 group-index 控制器是我需要针对的地方,但没有插件出口,所以我想知道添加新列的正确方法是什么,如果可以做到的话。我对 Discourse 开发是新手,可能遗漏了什么,但非常感谢任何提示。我已阅读了这些开发指南,它们是非常好的资源,但我目前卡住了。

1 个赞

你好,欢迎来到 Meta :wave:
你可以使用 group-index-table-header-after-usernamegroup-index-table-row-after-username 出口来在用户名列旁边插入一个标题/行。

例如:

对于标题,你可以使用 TableHeaderToggle 组件。
对于行,你可以使用例如 <div>{{this.args.member}}</div> – 你可以通过 {{this.args.member}} 访问数据。

你需要修复网格 CSS 以包含新列。

.group-members--can-manage {
    grid-template-columns: 3fr repeat(5, minmax(min-content, 1fr)) 3em;
                                      ^
}

如果你想移动列,由于 display: contents 的存在,定位会有点棘手;但是,使用 order 可以奏效。

另外,你可能会在获取用户状态时遇到问题。在我的测试中,数据没有在 member 中反映出来,用户被暂停或静默(silencedTillDatesuspendedTillDate 未定义)。我不确定这里是否存在 bug。目前我还没有深入研究!

希望这能帮到你。

5 个赞

太好了,谢谢!这很有帮助。我现在意识到我没有看到 group-index-table-header-after-usernamegroup-index-table-row-after-username 出口,因为该网站使用的是过时的 Discourse 版本(2.7)。

1 个赞

不客气!2.7!确实相当老了。:smile:

顺便说一句,我强烈建议您使用这个组件:https://meta.discourse.org/t/plugin-outlet-locations-theme-component/100673。超级有用!:+1:

4 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.