我想为大学项目运行一个单一的 Discourse 实例,其中不同的顶级类别对应不同的课程,并且访问由组管理。为了让课程讲师和学习者能够对课程有一个统一的认识,我希望提供一种隔离不同课程的体验。因此,我希望我的实例提供类似于 Teams/Slack/Mattermost 的导航体验,其中有相对隔离的团队,用户需要从一个团队切换到另一个团队。对我的实例而言,这意味着 UI 会强调与当前选定课程相关的数据。因此,例如,用户大部分时间都在一个顶级类别中,选择一个类别会过滤他们可以轻松看到的子类别和聊天频道。
当不同类别对应不同研究小组的实例时,也会出现类似的需求(我也想运行一个这样的实例)。
有哪些现有工具可以帮助实现这一点?
3 个赞
有趣的用例!一个可能的解决方案是简单地静音不相关的类别,这样它们就不会出现在主题列表中。
我实际上不希望它们被静音:学生可能会同时参加多门课程,并且所有课程的通知都可以。而是我希望给“现在我正在看X课程”一个更清晰的印象。
1 个赞
renato
(Renato Atilio)
5
似乎主要组 = 选择的主页,对吗?您需要启用 user_selected_primary_groups,以便用户可以在其帐户首选项页面上更改其主要组。
2 个赞
理想情况下,我想要一些更短暂、不那么公开可见的东西。但是,我想象一下,如果我不使用标题和Flair,那么一个切换主组的用户界面组件可以作为团队选择器。
就像几天前在这里作为实验运行的侧边栏选择器那样,那将很棒。
pfaffman
(Jay Pfaffman)
7
你也可以这样做。你也可以根据他们的主组更改网站徽标;我曾为一个拥有多个大学共享实例的网站做过这样的事情。也许你会有一个主题组件,在顶部栏有一个下拉菜单,让他们选择他们的主组(也许称之为“班级”而不是“组”)。
@Anton_Akhmerov 你是打算自己做,还是愿意付钱请人帮你做?告诉我!
如果你想自己做,我想把它移到 Dev,这样你就可以在那里进行工作,并向社区汇报,获得其他成员的意见。我们把它移到 #dev。
如果你想付钱请人,我会把它移到 #marketplace。
Dev 拜托

另外,如果 Dev 频道里有人能给点建议,那就太棒了 
mcwumbly
(Dave McClure)
13
我认为最好将其移至 Community 并进一步讨论您的用例,如何最好地满足您当前的需求,并为可能有类似需求的人腾出空间来解决他们的问题。
然后,如果确定了您认为足够重要而需要自己构建或倡导的产品差距,我们可以为这些想法在 Feature 和/或 Dev 中创建单独的主题。
这是否符合您的想法?或者您已经处于“我已准备好构建缺失的部分”阶段?
1 个赞
Community 也有道理
。该功能看起来很棘手,考虑到类似请求的受欢迎程度,它似乎在一定程度上符合社区的需求
我确实计划着手处理这个问题,但到目前为止,我的计划还比较模糊。
2 个赞
mcwumbly
(Dave McClure)
15
作为跟进,我想说明一下如何通过 Discourse 的开箱即用功能来最好地满足您的需求。这可能不完全符合您的设想,但我认为它值得作为讨论的起点。
首先,我做了一些假设,这些假设可能有效,也可能无效。请告诉我我哪里说错了:
- 将会有很多课程(几十个,可能上百个)
- 课程的设置将定期进行,分批进行,在每个学期开始时(每年 2-4 次)
- 课程将有生命周期
- 管理课程的人需要能够自己进行一些设置
- 管理课程的人在管理 Discourse 网站方面经验有限或没有经验。
- 管理课程的人实际上只需要看到他们自己的课程。他们可能偶尔想看看别人的课程作为例子,但不需要持续参与其中。
- ^ 同上,对于选修课程的人
- 有一个非常小的团队负责管理整个系统
- 课程实际上不需要子类别;使用标签来组织课程内的内容就足够了
鉴于这些假设接近实际情况,以下是我的建议,首先是高层次的:
- 创建少量顶级类别:一个用于“当前课程”,一个用于“过去课程”,一个用于“即将到来的课程”,以及一个或多个用于关于整个系统本身的更一般的内容(例如,如何使用网站)。
- 将主页样式设置为“带类别的框”,以便突出显示它们。
- 为每个课程使用子类别。
- 在“即将到来的课程”中创建它们。
- 在学期开始时将它们移至“当前课程”。
- 课程结束后,将其从“当前课程”移至“过去课程”。
- 使用群组控制对课程的访问(下文有更多详细信息)。
访问控制:
- 对于每个课程,创建一个以下群组集,例如:foo_interested、foo_enrolled、foo_admin。
- 创建两个额外的群组:“browse_courses”和“browse_past_courses”。
- 将“即将到来的课程”和“当前课程”中的类别设置为只能由特定课程的群组成员以及“browse_courses”群组的成员访问。
- 将“过去课程”中的类别设置为只能由特定课程的群组成员以及“browse_past_courses”群组的成员访问。
群组和课程的用户体验
- 在“即将到来的课程”的顶级类别中置顶一个主题,解释如何浏览课程,并提供一个简单的入口供人们加入“browse_courses”群组。
- ^ 同上,用于“当前课程”。
- ^ 同上,用于“过去课程”。
对于个别课程,在类别中置顶一个主题,解释如何加入课程:
- 加入“foo_interested”和/或“foo_enrolled”群组。
- 将课程添加到您的侧边栏。
管理工作最初会有些繁琐,因为对于每个新课程,拥有适当权限的人都需要:
- 创建类别。
- 创建群组。
- 创建置顶主题。
- 将人员添加到 _admins 群组。
- 向他们提供管理自己课程所需的文档。
其中一些可以通过轻量级工具进行自动化。根据主要管理团队是谁,可能需要从一些带外工具开始,这些工具直接调用 API。或者,您可能需要一个更基于 UI 的东西,它作为主题组件或插件内置到 Discourse 中。但我建议从精简开始,首先专注于定义一个可行的流程,然后围绕该流程设计工具。
类别扩展可能是一个令人担忧的问题。当类别数量过多(数百或数千)时,Discourse 在性能和用户体验方面确实存在一些粗糙之处。可以访问更多类别的用户将感受到这种影响,而访问权限有限的用户则不会。这也是限制对类别访问的部分原因,如我所述。
非常期待听到您对以上内容的任何反馈或疑问。
1 个赞