众所周知,Flarum 中文场景下的 slug 比较蛋疼,Flarum 的某个 beta 版本开始,slug 已保存在数据表的 slug 字段里面,所以我们只要在 Discussion 保存之前修改一下它的 slug 属性就可以。
参考 clarkwinkelmann/flarum-ext-manual-discussion-slug 的实现,可以通过监听Flarum\Discussion\Event\Saving
事件再在里面做调整。
想到两种思路,一种是去掉,另一种是用拼音。想了想用拼音可能更合适,然后找到一个转换汉字为拼音的 composer 包 https://github.com/overtrue/pinyin ,直接在根目录的 extend.php 改了下发现ok了。
由于逻辑不太复杂,暂时不搞 composer 发包,具体改动可以参考这里:
0xffff-one/0xffff-flarum@6d937b0
可能的问题:标题过长,转换得到的拼音过长的场景,目前暂时没有做处理。
抛砖引玉~~