按类别隔离

作为跟进,我想说明一下如何通过 Discourse 的开箱即用功能来最好地满足您的需求。这可能不完全符合您的设想,但我认为它值得作为讨论的起点。

首先,我做了一些假设,这些假设可能有效,也可能无效。请告诉我我哪里说错了:

  1. 将会有很多课程(几十个,可能上百个)
  2. 课程的设置将定期进行,分批进行,在每个学期开始时(每年 2-4 次)
  3. 课程将有生命周期
  4. 管理课程的人需要能够自己进行一些设置
  5. 管理课程的人在管理 Discourse 网站方面经验有限或没有经验。
  6. 管理课程的人实际上只需要看到他们自己的课程。他们可能偶尔想看看别人的课程作为例子,但不需要持续参与其中。
  7. ^ 同上,对于选修课程的人
  8. 有一个非常小的团队负责管理整个系统
  9. 课程实际上不需要子类别;使用标签来组织课程内的内容就足够了

鉴于这些假设接近实际情况,以下是我的建议,首先是高层次的:

  1. 创建少量顶级类别:一个用于“当前课程”,一个用于“过去课程”,一个用于“即将到来的课程”,以及一个或多个用于关于整个系统本身的更一般的内容(例如,如何使用网站)。
  2. 将主页样式设置为“带类别的框”,以便突出显示它们。
  3. 为每个课程使用子类别。
  4. 在“即将到来的课程”中创建它们。
  5. 在学期开始时将它们移至“当前课程”。
  6. 课程结束后,将其从“当前课程”移至“过去课程”。
  7. 使用群组控制对课程的访问(下文有更多详细信息)。

访问控制:

  1. 对于每个课程,创建一个以下群组集,例如:foo_interested、foo_enrolled、foo_admin。
  2. 创建两个额外的群组:“browse_courses”和“browse_past_courses”。
  3. 将“即将到来的课程”和“当前课程”中的类别设置为只能由特定课程的群组成员以及“browse_courses”群组的成员访问。
  4. 将“过去课程”中的类别设置为只能由特定课程的群组成员以及“browse_past_courses”群组的成员访问。

群组和课程的用户体验

  1. 在“即将到来的课程”的顶级类别中置顶一个主题,解释如何浏览课程,并提供一个简单的入口供人们加入“browse_courses”群组。
  2. ^ 同上,用于“当前课程”。
  3. ^ 同上,用于“过去课程”。

对于个别课程,在类别中置顶一个主题,解释如何加入课程:

  1. 加入“foo_interested”和/或“foo_enrolled”群组。
  2. 将课程添加到您的侧边栏。

管理工作最初会有些繁琐,因为对于每个新课程,拥有适当权限的人都需要:

  1. 创建类别。
  2. 创建群组。
  3. 创建置顶主题。
  4. 将人员添加到 _admins 群组。
  5. 向他们提供管理自己课程所需的文档。

其中一些可以通过轻量级工具进行自动化。根据主要管理团队是谁,可能需要从一些带外工具开始,这些工具直接调用 API。或者,您可能需要一个更基于 UI 的东西,它作为主题组件或插件内置到 Discourse 中。但我建议从精简开始,首先专注于定义一个可行的流程,然后围绕该流程设计工具。

类别扩展可能是一个令人担忧的问题。当类别数量过多(数百或数千)时,Discourse 在性能和用户体验方面确实存在一些粗糙之处。可以访问更多类别的用户将感受到这种影响,而访问权限有限的用户则不会。这也是限制对类别访问的部分原因,如我所述。

非常期待听到您对以上内容的任何反馈或疑问。

1 个赞