大家好。
我并不是 Discourse 的新手。之前我在另一个关于汽车爱好的网站 exiges.com 上,就已经从 phpBB 迁移到了 Discourse。
Discourse 团队持续不断地推出各种功能增强,这让我印象深刻,因此我下定决心,将我在 Xenforo 论坛上积累的 75 万个帖子和 2 万名会员迁移到了 Discourse。
凭借一点运气、判断力以及 AI 的帮助,我编写了一个导入脚本来完成数据迁移。我使用的是 AllHost.IO 的自托管系统,配置为 8 核 CPU 和 8GB 内存,整个迁移过程耗时 37 小时。
关于迁移脚本的帖子在这里:Migrate a XenForo forum to Discourse - #141 by Andrew_Bond
目前,我正在调整网站的外观,使其看起来更像之前的 Xenforo 版本,因为说实话,之前的设置用起来很顺手。我对目前的效果感到非常满意:
我设置了背景每 1 分钟轮换一次,目前共有 5 张背景图。此外,我还制作了一些分类框,并为它们添加了一些细节:

我还需要稍微调整一下亮色模式的设置,但暂时来说已经可以正常使用了。
我来这里并不是为了炫耀我的网站,更多的是想感谢开发团队。我曾是 Xenforo 的狂热粉丝,但在我看来,Discourse 这个平台让管理后台变得非常易用,而且频繁的更新也极其出色。
17 个赞
HAWK
(Hawk)
2
非常棒的反馈,谢谢!你觉得 Xenforo 还缺少哪些功能吗?
4 个赞
在我看来,唯一可能对用户有帮助的是引用(quotes)界面的变化。
在 Discourse 中,我们只是直接回复。Discourse 的回复不是引用回复,但我理解我们可以高亮显示,并且鼠标悬停时会弹出引用的提示框。
在 Xenforo 中,回复时会自动引用原帖。我能理解这两种实现方式。我们的用户可能需要一些时间才能适应这种变化。
我开发过一个自定义插件,它添加了几个额外的表,并链接到主表以提供车库功能,但这更多属于自定义开发。
就功能而言?我不确定自己是否遗漏了什么!
4 个赞
Moin
6
3 个赞
这是个很棒的选择!谢谢!
我之前因为第三方扩展的更新导致插件损坏,而我又非常依赖这些插件,所以现在正积极减少使用的第三方扩展数量。
不过,我肯定会把这个页面收藏起来的!
5 个赞
HAWK
(Hawk)
8
对,你说得对。我记得当时用 vB 就掉进过这个坑,结果因为代码太乱、拼凑得太严重,根本没法维护,最后只能放弃。一旦某个地方出问题,整个系统就像纸牌屋一样全垮了。
1 个赞
我发现了一个我认为可以改进的地方。
权限继承。
TurboRenault 在这里可能算是个特例,因为我们有一些从旧论坛遗留下来的内容,但让我解释一下:
我们使用嵌套组。例如:
已导入和归档版块(分类)
| Aventime-Owners.com
| Clio16valver.co.uk
| 等等
| 等等
我希望在顶层(已导入和归档版块)将权限设置为只读,并让继承传递给子项。
目前我似乎无法做到这一点,所以我不得不单独编辑 9 个子项。这虽然不是致命问题,但如果有父级/子级/继承选项来继承权限,那就太好了。
3 个赞
HAWK
(Hawk)
11
我理解你的意思——我们在这件事上已经反复讨论了好几次,而最终的决定权在于安全性。Discourse 将每个类别都视为一个独立的实体,因此子类别并不是父类别在权限上的“子级”;它实际上只是为了导航和组织而进行嵌套。我们之所以这样设计,是因为管理员通常希望子类别与父类别在权限上存在刻意的差异。
我们设定了一个安全机制,确保子类别的权限不能比其父类别更宽松,从而避免出现这种情况:某人被锁定在某个类别之外,却能看到其中的私密子类别。这样一来,你可以完全自由地收紧子类别的权限,但不会意外地通过更宽松的子类别泄露内容。
1 个赞
我理解你的出发点,但我看待这个问题的角度不同。
我希望权限设置保持一致。我需要拒绝一系列类别的“写入/创建”权限。如果我漏掉了其中某一个,就会留下漏洞,允许用户进行回复……
我认为,如果我们能在 UI 和逻辑上正确处理这一点,这是可行的。不过,这并不是什么致命问题。我利用工作休息时间逐个找到了每个类别,并取消了两个勾选框……
1 个赞
这个平台太棒了!我很喜欢能够创建一个组件并应用到主题上,然后随心所欲地进行定制。
我一直在尝试玻璃效果:
以及鼠标悬停时高亮并模糊的效果:
4 个赞
我发现缺少了一个功能:会员制。它基于 Stripe,而我并没有实体银行卡。
我只有 PayPal。
我已经想出了一个变通方案。虽然有点笨拙,但确实管用。
在我们已有的 WooCommerce 商店中添加商品
添加一个订阅插件
添加 Discourse 同步功能
完成所有的 API 配置
添加了一些代码,用于追踪订阅是按月还是按年添加的
与 Discourse 同步,并将用户添加到相应的群组中;一旦会员资格到期,就会将其移除
所以,用户前往商店并订阅以下其中一项:
WordPress 会触发相应操作,API 随后向 Discourse 发送请求,将用户添加到该群组
PayPal 负责处理 PayPal 的周期性付款。
2 个赞
HAWK
(Hawk)
17
很高兴你找到了临时解决方案,因为订阅插件的改进目前并不在我们的近期计划中。
你好,Andrew,
很高兴看到更多汽车论坛,尤其是与路特斯(Lotus)相关的论坛,加入 Discourse 大家庭。我大约在 18 个月前将 LotusElan.net 从 phpBB 迁移了过来。
如果你有空,欢迎随时来逛逛。
3 个赞