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 實踐,分享軟體工具、數位體驗,以及程式碼之外的見聞與思考。