Discuz! X3.4 投稿タイトルの文字数を制限する

8,039 3

少し前に「iApp社区」を「有玩社区」に変更し、プログラムも Flarum から Discuz に移行しました。なぜプログラムを移行したのでしょうか?Flarum の作者である Toby は、どうやらすでに Flarum の開発から離れており、今後の Flarum はコミュニティによって保守されることになるようです。そして最後のバージョンも、いまだに Beta 9 です。

2014 年に Beta 1 がリリースされてから現在まで、5 年が経過しましたが、まだ正式版を待つことができませんでした。そして今、Toby も去ってしまいました(Farewell and What's Next For Flarum)。これから Flarum がどこまで進めるのかは、まだ未知数です。もしこれが Discuz へ移行する理由だと言うなら、少しこじつけのようにも思えます。

Flarum と比べると、Discuz のほうがむしろ早く死んでおり、Tencent に買収されて以来、これといった大きな動きはありません。

それでも、Discuz はフォーラムプログラムとして、中国国内では比較的成熟しています。10 年以上にわたって発展してきたため、フォーラムに必要な機能は Discuz で比較的よく整っており、プラグインやテンプレートも十分に多く、拡張性も非常に高い。これこそが私が Discuz を選んだ理由です。

これだけいろいろ書きましたが、ここでは Discuz で投稿タイトルの文字数を制限する方法を記録しておきたいだけです。この問題については、Flarum のときにもすでに 1 本の記事を書いています。

{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;
}

注意が必要なのは、漢字 1 文字は 2 文字分を使用するということです。ええ、それだけ簡単です。

コメント

(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 の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。