Discourse 类别首页 🏠

摘要

为您的社区中的每个用户提供一个特定的主页(“主页类别”)。

它允许您拥有一个单一的 Discourse,其中用户根据其主要群组拥有特定的“主页”(即类别)。

:link: GitHub代码库 https://github.com/merefield/discourse-category-home
:arrow_right: 安装: 遵循 插件安装指南

喜欢这个插件吗?请在 GitHub :star: 它! :pray:

功能

仅使用普通 Discourse 的可用界面元素,使其成为一个健壮、易于维护的解决方案。

配置

使用普通的 Discourse 功能:

您已完成! :tada:

现在,每当有人导航到您的社区主页时,他们都会被重定向到其主要群组有权限访问的类别。

注意:这遵循一个您必须遵守的简单规则:如果某人拥有注册的主要群组,并且该群组仅对一个类别有权限,则会将其重定向到该类别作为其主页。

以这种方式使用主要群组有许多优点,正如您可能从上面的链接中注意到的那样,尤其是:

  • 您可以为某人授予头衔
  • 您可以为他们提供装饰
  • 您可以为他们的帖子设置样式

其他注意事项

通过独特地设置您的类别主页,例如使用:Category Banners

检查不同的类别/主要群组权限

要检查您的主要群组是否仅与一个类别相关联,您可以使用 Discourse 的此便捷的开箱即用功能,例如:

列表中只有一个类别,很好! :+1:

技术部分

所使用的确切逻辑是:

   return CategoryGroup.where(group_id: primary_group).first.category_id

虽然可能可以“弄虚作假”,但如果您期望此功能正常工作,但却在多个类别上使用该主要群组,那么这样做可能不明智,因此请牢记这一点并遵循我的建议。

提供更多灵活性

我愿意听取关于如何配置此行为的建议,但我希望限制定制设置的数量,并尽可能多地使用开箱即用的行为和数据。如果您有一个简单、优雅的解决方案,请告诉我。

无法安装插件/主要群组功能不适用于您?

如果您无法安装插件(因为您使用的是受限托管计划),或者发现主要群组配置不适用于您,请考虑此主题组件替代方案:https://meta.discourse.org/t/custom-homepage-for-groups/199623,它需要更多定制配置,但侵入性较小。

24 个赞

在尝试重新构建我的应用时,我收到了一条错误消息,将以下内容添加到我的 app.yml 文件中

Pups::ExecError: cd /var/www/discourse/plugins & git clone GitHub - merefield/discourse-category-home: Alters the user's homepage to become the Category of their Primary Group 失败,返回 #<Process::Status: pid 391 exit 128>
失败位置:/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn’

其他人还在使用它吗?

看起来构建正常。请检查您的 app.yml 克隆语法。

不过,我部署了一个修复程序来解决缺失的区域设置字符串问题 :slight_smile: (但这不会导致您的问题)。

1 个赞

现在运行得很棒,感谢您提供的出色插件。Discourse Doctor 解决了这个问题,上次重建应用程序时一定存在构建问题。

1 个赞