Discuz! X3.4 限制发表帖子标题字数

8,039 3

前段时间把「iApp社区」改成了「有玩社区」,还把程序从 Flarum 转到了 Discuz。为什么要转程序呢?因为 Flarum 作者 Toby 似乎已经离开了 Flarum 的开发,以后 Flarum 都将交给社区来维护,而最后一个版本,还是 Beta 9。

从 2014 年发布的 Beta 1 到现在,五年过去了,还是没能等到一个发行版。而如今 Toby 又离开了(Farewell and What's Next For Flarum),以后 Flarum 还能走多远,还是个未知数。如果说这就是我选择转到 Discuz 的理由,似乎也有点牵强。

比起 Flarum,Discuz 反而死得更早,自从被腾讯收购之后,就没有过什么大动静了。

尽管如此,Discuz 作为一个论坛程序,在国内还是比较成熟的。发展了十多年,论坛该有的功能 Discuz 都是相对完善的,而且插件和模板也足够多,扩展性很强,这才是我选择 Discuz 的原因。

说了这么多,只是想记录下 Discuz 中如何限制帖子标题字数,这个问题在 Flarum 的时候我也已经写过一篇文章了。

{cat_insidepost id="115"}

那么现在就来看看 Discuz 上面怎么改吧。

文件路径 /static/js/forum_post.js

找到以下代码(Discuz 3.4 的话大概是在 75 行左右):

JavaScript
if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {
    showError('抱歉,您尚未输入标题或内容');
    return false;
} else if(mb_strlen(theform.subject.value) > 80) {
    showError('您的标题超过 80 个字符的限制');
    return false;
}

在下面加入:

JavaScript
else if(mb_strlen(theform.subject.value) < 20 && mb_strlen(theform.subject.value) > 0) {
    showError('您的标题不足 20 个字符的限制');
    return false;
}

需要注意的是,一个汉字占用两个字符数,嗯,就这么简单。

评论

(3)
  1. Chrome 78 Windows 10

    我认为在DZ Q 没推出之前再转入DZ是一个不好的选择,Flarum已经就完善的生态了,一个创始人的离开并不来代表项目死了,因为一个开源社区的力量远远大于一个人的力量

    1. Chrome 80 Windows 10

      您的观点是完全正确的,事实证明 toby离开之后,flarum发展迅速,下周即将发布bate12版本,很值得期待。 而我所运营的一个社区 www.yoknet.cn 也最终抛弃discuz转而拥抱flarum,社区开源的力量确实强大,我几乎能在社区里找到任何我想要的功能。 至于discuz Q,我个人认为连discuz X都取代不了

    2. Chrome 78 Windows 10

      确实,我认为Flarum非常棒,所以我也正在积极筹备一个unity的中文学习社区! ::twemoji:smile:: www.nwdgame.com

发布评论

© 2026 一纸忘忧. 保留所有权利.

一纸忘忧的个人网站,关于技术探索与日常生活,记录 Web 开发、服务端与 DevOps 实践,分享软件工具、数码体验,以及代码之外的见闻与思考。