Discuz! X3.4でユーザーが投稿するスレッドタイトルの文字数を制限する方法
少し前に「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のときにもすでに記事を書いています。
{cat_insidepost id="115"}
それでは、Discuzでどのように変更するのか見ていきましょう。
ファイルパス /static/js/forum_post.js
以下のコードを見つけます(Discuz 3.4の場合、おそらく75行目あたりです)。
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;
}
以下を追加します。
else if(mb_strlen(theform.subject.value) < 20 && mb_strlen(theform.subject.value) > 0) {
showError('您的标题不足 20 个字符的限制');
return false;
}
注意が必要なのは、漢字1文字が2文字分として数えられることです。そう、とても簡単です。
コメント
(3)我认为在DZ Q 没推出之前再转入DZ是一个不好的选择,Flarum已经就完善的生态了,一个创始人的离开并不来代表项目死了,因为一个开源社区的力量远远大于一个人的力量
您的观点是完全正确的,事实证明 toby离开之后,flarum发展迅速,下周即将发布bate12版本,很值得期待。 而我所运营的一个社区 www.yoknet.cn 也最终抛弃discuz转而拥抱flarum,社区开源的力量确实强大,我几乎能在社区里找到任何我想要的功能。 至于discuz Q,我个人认为连discuz X都取代不了
确实,我认为Flarum非常棒,所以我也正在积极筹备一个unity的中文学习社区! ::twemoji:smile:: www.nwdgame.com