为受限付费访问类别启用类别预览

在 Discourse 中,我发现反复缺少且非常麻烦的解决方法是分类预览。在为客户处理 Discourse 主题时,他们通常有受限的分类(仅限已登录用户或付费会员),但他们仍希望公开展示他们提供的所有领域以吸引更多注册用户。我曾多次收到类似 Circle 界面的示例。所有空间都可见,但如果用户没有访问权限,他们会看到一个带有号召性用语以获取访问权限的横幅通知:

我知道 meta 上有一个分类预览组件,但它不允许这种使用流程。你只能在分类列表中手动替换分类链接。但是没有访问权限的用户仍然无法遵循常规的分类链接。并且分类链接不会显示在其他地方。

我希望看到一个集成的选项来允许预览受限分类。因此,如果选中,分类链接将像其他分类链接一样显示。遵循时,只有分类标题和“关于..分类”主题可见。

3 个赞

@manuel 这是相同/相关的吗? :thinking:

2 个赞

是的,这些是类似的要求。但我没有在这些主题中找到解决方案。根据我的经验,这种用法正变得越来越普遍,但手动变通方法或插件提供的解决方案需要大量的设置和维护,无论是主题作者还是社区经理。当网站结构发生变化时,它们也很容易出错。

2 个赞

能否让父类别对所有人可读但不可写,然后只让子类别对授权用户可读/可写?

这样您就可以在父类别级别设置一个“关于此类别”的主题和一个横幅,然后在用户获得子类别访问权限时解锁所有受限内容。这需要一些额外的分类,但可能比其他方法带来的弊端更少……

当然,还有另一种解决方法,但我们目前没有安排任何类别预览工作。

3 个赞

只是想知道您是否希望用户能够查看类别?但不能发帖/回复?

还是只是一个带有描述的类别列表?

1 个赞

是的,我尝试过这种方法,但认为对于实际有权访问的用户来说,通常不直观,因为他们只能在子类别中发帖。当进入伞形类别时,“新建主题”按钮不会显示,这使得情况变得复杂。因此,这需要在设计中增加一个变通方法。

感谢您的提醒!嗯,我只是想分享这个反馈,因为我认为有三种基本的类别模式:公开、受限和秘密。其他平台可以选择其中一种模式,非常简单。这是 circle 上的设置:

在 Discourse 上,我们有公开和秘密。而私有/受限模式默认是 @Heliosurge 提到的:查看类别主题,但不能发帖/回复。但这种设置是相当罕见的,因为它通常已经被登录到网站之外的用户所涵盖。

我认为私有/受限更常见的默认设置是仅显示带有锁和描述的类别页面。

5 个赞

如果您希望某个类别可以被浏览但不能回复帖子。

转到类别设置

权限
所有人 查看
GroupName 查看/创建/回复

还有另一个页面,如果用户尝试发帖/回复,会弹出一个字符串,例如“请求访问”。

1 个赞

我很确定他们希望只允许用户查看分类的标题,而不查看分类内的主题及其帖子。我很确定您建议的方法将允许用户查看分类名称、主题和帖子,但我也可能弄错。

4 个赞

是的,就像上面分享的第一个截图一样。我认为这是一种常见场景,即打算将论坛的某些区域货币化:客户通常不希望这些区域成为秘密,而是向用户展示他们选择付费时论坛将提供什么。

如前所述,对我来说,另一种选择(可以看到所有主题,但无法回复或创建新主题)通常已经涵盖了匿名访客和已登录会员之间的区别。对于已登录用户来说,这种体验很少需要重复。

这正是此功能主题的重点:我认为其中一个选项更常见,但在 Discourse 中实现起来很困难。而另一个选项需求较少,但目前是 Discourse 的默认行为。

2 个赞

根据我们的经验,这不是一个常见的用例。更常见的用例是整个论坛都需要付费访问。

1 个赞

是的,我也很喜欢这个功能,原因和你提到的一样,可以向用户宣传它的存在,以及可以通过申请、邀请甚至付费等方式访问它。考虑到为播客和在线武术训练建立分层社区,我可以看到它的许多用途。

话虽如此,但我仍然认为隐藏类别名称也有价值,但我很喜欢你建议的三种选择。

1 个赞

这个插件可以实现这一点 Discourse Category Lockdown

1 个赞

我认为我找到了一个解决方法,可以在不破坏 Discourse 安全架构的情况下实现期望的用户体验。

这个例子不是关于付费限制,而是关于一个类似的目标。我们在这个论坛上为工作组设置了受限类别。我们仍然希望宣传它们的存在并吸引人们加入。因此,我希望这些类别对所有论坛用户可见,如下图所示:

现在,为了显示类别,无论用户是否有权访问,我都添加了受限类别以及在每个类别中添加了公开的“影子”类别。这是我为“社区建设者”和“翻译者”管理的所有类别视图:

现在,没有特殊访问权限的用户只会看到公开的框,并且可以访问类别并找到有关组的相应信息:

一旦用户实际访问了受限类别,我就会使用 CSS 隐藏公开类别。假设一个用户加入了“翻译者”。他们将看到此视图:

我使用一个组件来通过 CSS 处理用户组:GitHub - discourse/discourse-groups-css-classes-in-body

然后声明相当直接:

body.group-translators {
    .category-box-translators-join,
    .select-kit-row[data-name="Join Translators"] {
        display: none !important;
    }
}

好吧,这仍然需要一些努力……但我喜欢用户体验。而且它还有一个优点是,无权访问该组的用户仍然可以在公共类别中与组负责人互动——而不会给实际的组讨论带来干扰。

4 个赞