将默认群组页面更改为/messages

它们不是常规链接。它们是通过 link-to Ember 组件处理的,并且涉及到一些路由。

最简单的方法是劫持该元素的点击事件并在那里执行你的操作。这会放在主题的 common > header 中。

<script
  type="text/x-handlebars"
  data-template-name="/connectors/group-index-box-after/link-to-group-inbox"></script>

<script type="text/discourse-plugin" version="0.8">
  const DiscourseURL = require("discourse/lib/url").default;
  api.registerConnectorClass('group-index-box-after', 'link-to-group-inbox', {
    setupComponent(args) {
      const group = args.model;

       if (group.is_group_user && group.has_messages) {
         const groupLink = document.querySelector(`.group-box.${group.name}`);
         const newHref = `/g/${group.name}/messages`;

         // 更新浏览器标题并处理新标签页
         groupLink.href = newHref;

         // 重定向链接
         groupLink.addEventListener("click", (event) => {
            DiscourseURL.routeTo(newHref);
            event.preventDefault();
         }, {once: true})
       }
     }
  });
</script>

如果用户是该组成员并且该组有消息,它将重定向到收件箱。否则,它将回退到默认的 /members 页面。