腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

Discuz! X3.4论坛标题字数突破80的限制解决方法,怎么解决?

0
回复
1346
查看
[复制链接]

761

主题

775

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
32853
发表于 19-4-8 12:14:09 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  

玩论坛的站长朋友,每次发文章标题都受字数的限制,一直找不到解决的办法,此教程为亲自测试的经验总结,今天就免费分享给大家。

下面由球球发技术分享解决标题限制80字符方法步骤:

一、数据库修改;

二、修改JS验证字符数文件;

三、修改模板中写死的字符限制数;

四,修改函数验证文件;

五,修改语言包文件。

一、数据库修改,修改数据库标题字段的长度为200字符:运行下面的sql语句:

(注意修改你的表的前缀)

ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(200) NOT NULL;

ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(200) NOT NULL;

ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(200) NOT NULL;

5 A6 T9 U5 _( F3 i  Z% E
二、修改JS验证字符数:

1、找到文件static/js/forum_post.js的75-81行

  1. if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {$ ]- t/ }- T; l% s6 w* i- g# ^
  2.                 showError('抱歉,您尚未输入标题或内容');3 Z& Z$ S( ~2 T
  3.                 return false;
    0 ~3 g- [2 v2 R2 b
  4.         } else if(mb_strlen(theform.subject.value) > 80) {( I/ |  T* Q8 x1 `$ z8 B$ d
  5.                 showError('您的标题超过 80 个字符的限制');
    * \3 @+ ^3 M$ e- S9 ~' Y. H$ p& a2 G
  6.                 return false;$ N/ h7 s9 C8 T5 W7 `, Y$ d
  7.         }
复制代码

修改为:


  1. * X8 T9 v! F7 k' _/ J
  2. if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {
    ! L2 V- J' m! P0 o% e  H
  3.                 showError('抱歉,您尚未输入标题或内容');
    0 |" Y3 J3 u& f
  4.                 return false;
    ; c8 x: O" p  {( Z
  5.         } else if(mb_strlen(theform.subject.value) > 200) {
    7 L- ?! P  s- r0 v
  6.                 showError('您的标题超过 200 个字符的限制');
    . b9 K! n0 o- X: P9 ^2 p0 |* _0 N+ z
  7.                 return false;
    ' w4 T: [4 f* ]3 n
  8.         }
复制代码
如图:% ]6 n8 |2 r& G2 ~( t6 j" K
670875caac7672aadc.png
5 c9 x2 n9 W9 j3 X( Z4 j  l: N2 ^2、找到文件sitatic/js/forum.js的212到218行代码:
  1. if(theform.message.value == '' || theform.subject.value == '') {
    ; P& `3 F, c) p$ T
  2.                 s = '抱歉,您尚未输入标题或内容';
    . N5 Y) \- p) f) W  I" X
  3.                 theform.message.focus();3 m1 [6 U( J0 P/ ^
  4.         } else if(mb_strlen(theform.subject.value) > 80) {
    / F. E6 ?2 u) O* }, y* h7 B
  5.                 s = '您的标题超过 80 个字符的限制';$ j( x* l- J8 ]6 K0 s9 U) g; T5 a
  6.                 theform.subject.focus();$ e& z1 k/ w3 L/ ]$ D
  7.         }
复制代码
7 q. ^0 P; M. t9 d4 `

修改为:

  1. if(theform.message.value == '' || theform.subject.value == '') {0 U. x5 \$ t# d  g
  2.                 s = '抱歉,您尚未输入标题或内容';. f# D1 V2 q3 V: W! s- C1 h+ G1 z
  3.                 theform.message.focus();; o! y$ A; U" u2 B. ~
  4.         } else if(mb_strlen(theform.subject.value) > 80) {9 S! U* r% N! p% K
  5.                 s = '您的标题超过 80 个字符的限制';
    / G% i; h* X. C
  6.                 theform.subject.focus();) D7 B7 L% Y- ^2 R; V* O0 E
  7.         }
复制代码
如图: 939485caac7ece309c.png 6 j  N% D# l, D; v( V4 v+ d
三、修改模板中写死的字符限制数:

1、找到文件\template\default\forum\post_editor_extra.htm的25到33行:

  1. <!--{if $_GET[action] != 'reply'}-->0 a) D, A1 y: L9 m  g- g$ K, a
  2.                                 <span><input type="text" name="subject" id="subject" class="px" value="$postinfo[subject]" {if $_GET[action] == 'newthread'}onblur="if($('tags')){relatekw('-1','-1'{if $_G['group']['allowposttag']},function(){extraCheck(4)}{/if});doane();}"{/if} onkeyup="strLenCalc(this, 'checklen', 80);" style="width: 25em" tabindex="1" /></span>$ [" e2 f7 ~, P
  3.                         <!--{else}-->4 A$ q, }9 g, f8 T
  4.                                 <span id="subjecthide" class="z">RE: $thread[subject] [<a href="javascript:;" onclick="display('subjecthide');display('subjectbox');$('subject').value='RE: {echo dhtmlspecialchars(str_replace('\'', '\\\'', $thread[subject]))}';display('subjectchk');strLenCalc($('subject'), 'checklen', 80);return false;">{lang modify}</a>]</span>3 V* z5 z6 x) v2 A0 E& u- a
  5.                                 <span id="subjectbox" style="display:none"><input type="text" name="subject" id="subject" class="px" value="" onkeyup="strLenCalc(this, 'checklen', 80);" style="width: 25em" /></span>
    $ U( ?" \1 N2 `1 r" g% ^; F
  6.                         <!--{/if}-->  N% [5 S+ l: R+ a5 o, z& l* b* k
  7.                         <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>
    4 b6 X( M3 e3 p; @! h
  8.                         <script type="text/javascript">strLenCalc($('subject'), 'checklen', 80)</script>& `$ a( W$ w. Y4 f$ p6 N, h0 e
  9.                 <!--{/if}-->
复制代码
( k" c/ u! L0 r6 m7 Z, Q* R+ v

修改为:

  1. <!--{if $_GET[action] != 'reply'}-->) l' [8 B" q9 t8 n/ q' D
  2.                                 <span><input type="text" name="subject" id="subject" class="px" value="$postinfo[subject]" {if $_GET[action] == 'newthread'}onblur="if($('tags')){relatekw('-1','-1'{if $_G['group']['allowposttag']},function(){extraCheck(4)}{/if});doane();}"{/if} onkeyup="strLenCalc(this, 'checklen', 200);" style="width: 25em" tabindex="1" /></span>9 Q3 F( O; v# ?# O+ R  h
  3.                         <!--{else}-->7 S* h. s0 s' M9 c' ]# N5 z* I+ ]
  4.                                 <span id="subjecthide" class="z">RE: $thread[subject] [<a href="javascript:;" onclick="display('subjecthide');display('subjectbox');$('subject').value='RE: {echo dhtmlspecialchars(str_replace('\'', '\\\'', $thread[subject]))}';display('subjectchk');strLenCalc($('subject'), 'checklen', 200);return false;">{lang modify}</a>]</span>
    & O( ?% T6 Q  z, F; z/ L9 q
  5.                                 <span id="subjectbox" style="display:none"><input type="text" name="subject" id="subject" class="px" value="" onkeyup="strLenCalc(this, 'checklen', 200);" style="width: 25em" /></span>5 t8 _# w: W/ A+ i
  6.                         <!--{/if}-->1 O, g: K( t( H. W- y+ ~0 `/ M
  7.                         <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">200</strong> {lang comment_message2}</span>" s$ Y* Z# [( s/ _0 f# ^! p
  8.                         <script type="text/javascript">strLenCalc($('subject'), 'checklen', 200)</script>' C, ^( }" N- R: t
  9.                 <!--{/if}-->
复制代码
如图: 684395caac8970b31f.png
; g. G3 Z- R% \2、找到文件\template\default\forum\forumdisplay_fastpost.htm31-32行:
  1. <input type="text" id="subject" name="subject" class="px" value="" onkeyup="strLenCalc(this, 'checklen', 80);" tabindex="11" style="width: 25em" />* \) D: Y; Q( z/ j
  2.                                 <span>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>
复制代码

修改为:

  1. <input type="text" id="subject" name="subject" class="px" value="" onkeyup="strLenCalc(this, 'checklen', 200);" tabindex="11" style="width: 25em" />; R" h* O% Y" C) h
  2.                                 <span>{lang comment_message1} <strong id="checklen">200</strong> {lang comment_message2}</span>=
复制代码
如图: 736775caac8df48e86.png 四,修改函数验证提示:

找到文件source/function/function_post.php的361-363行:

  1. if(dstrlen($subject) > 80) {* P" f" L6 I' Q4 h& R
  2.                 return 'post_subject_toolong';
    / G  G- Q6 u3 J+ ~; p3 }7 x
  3.         }
复制代码

修改为:

  1. if(dstrlen($subject) > 200) {
      R7 y- ?3 t: w2 }: u) W
  2. return 'post_subject_toolong';( c0 `! q1 _4 |. u
  3. }
复制代码
如图: 209125caac94677a6c.png
1 I9 J! f# C; l5 N3 p五、找到语言包提示文字,打开 source/language/lang_message.php 并找到998行改为:
  1. 'post_subject_toolong' => '抱歉,您的标题超过 80 个字符修改标题长度',
复制代码

修改为:

  1. 'post_subject_toolong' => '抱歉,您的标题超过 200 个字符修改标题长度',
复制代码
如图:
* e, ~! w- q* e2 N8 Y! i 202985caaca27969c5.png : Y! n) B3 V. _1 a' G& Y

教程已全部完成,别忘记到后台——工具——更新一下缓存。

下面由球球发提供修改为做的测试效果:


) E: J, ?1 R: q  n* @" w. q
8 J! W2 W' I9 F8 R
网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除