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

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

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

765

主题

779

帖子

3万

积分

董事

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

积分
33025
发表于 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 }, K& }0 Y6 ], M2 }! k二、修改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) == "") {
    : ?) c1 j& B  U( o/ Z
  2.                 showError('抱歉,您尚未输入标题或内容');9 s8 W3 ^: U) z+ g6 J) ]1 S
  3.                 return false;% M# I9 x2 a7 s$ f- |
  4.         } else if(mb_strlen(theform.subject.value) > 80) {, j/ ~  _% J7 L/ M- w& ^8 }1 r$ f! y
  5.                 showError('您的标题超过 80 个字符的限制');: g& ~# F- F( ^' |: j6 D/ u* o; v
  6.                 return false;
    / v7 U! I, }. _7 n1 l1 X
  7.         }
复制代码

修改为:


  1. 1 [, c0 J0 ~3 A
  2. if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {/ k7 v- z/ H. P  j2 U
  3.                 showError('抱歉,您尚未输入标题或内容');
    * F2 ]7 e' F6 D5 L: Y" {( I" p1 a8 m
  4.                 return false;- o) Z4 ^+ q- v4 ], {% Y1 F
  5.         } else if(mb_strlen(theform.subject.value) > 200) {! ^/ E$ A. W! `0 W, k
  6.                 showError('您的标题超过 200 个字符的限制');
    + Z1 M# D. `3 l/ {$ z4 r+ }0 r* x. V
  7.                 return false;2 K" c) D* Q; M7 g& V
  8.         }
复制代码
如图:* ]( d" U2 T/ r( H
670875caac7672aadc.png
% A. ]6 e1 I  l0 `2、找到文件sitatic/js/forum.js的212到218行代码:
  1. if(theform.message.value == '' || theform.subject.value == '') {
    . I# {9 }, Q- k" ~. N: i/ X7 D6 j
  2.                 s = '抱歉,您尚未输入标题或内容';
    0 \8 @/ ~! c6 |$ D
  3.                 theform.message.focus();; D# l1 t; {2 k* m. u
  4.         } else if(mb_strlen(theform.subject.value) > 80) {
    ( k- X, a$ j/ L2 b4 k  ~  H
  5.                 s = '您的标题超过 80 个字符的限制';
    . m/ m3 B4 C+ l+ }) `5 s; M
  6.                 theform.subject.focus();
    ! {4 ~+ ^* n, _* ?
  7.         }
复制代码
5 o% q! E' C  p/ ~- ^* q

修改为:

  1. if(theform.message.value == '' || theform.subject.value == '') {
    8 C2 @; O6 Y- Z. ~
  2.                 s = '抱歉,您尚未输入标题或内容';
    : |9 y" T+ D8 E0 Y) Z
  3.                 theform.message.focus();, U. [' ^' n0 n1 k8 K+ r  Y
  4.         } else if(mb_strlen(theform.subject.value) > 80) {$ o3 H9 I6 Y: M3 W2 h5 h$ X- o! @' ?
  5.                 s = '您的标题超过 80 个字符的限制';) F9 z# a% o( Y9 E
  6.                 theform.subject.focus();0 y# g+ \7 r& v9 @% P; L, R
  7.         }
复制代码
如图: 939485caac7ece309c.png
& @. Y7 P$ C! O. E' [9 O+ X4 D三、修改模板中写死的字符限制数:

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

  1. <!--{if $_GET[action] != 'reply'}-->
    / H  }0 w) O) M! ?: H! q, E
  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>, o6 B9 m' h" I/ t, N; p
  3.                         <!--{else}-->
    ; i4 l$ ^& ~* f5 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', 80);return false;">{lang modify}</a>]</span>
    % J! K! O5 z- C' {9 A5 P/ L! u& c
  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>2 w( @* G! g, L: [
  6.                         <!--{/if}-->1 s  C7 Y3 N$ G+ `% L* f& `6 r
  7.                         <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>
    ; S8 \6 @  A! p/ \+ a- E! i
  8.                         <script type="text/javascript">strLenCalc($('subject'), 'checklen', 80)</script>
    ! q7 @, _2 N  t) g8 e
  9.                 <!--{/if}-->
复制代码

, Z3 `+ B) f- Y" R6 H8 s

修改为:

  1. <!--{if $_GET[action] != 'reply'}-->0 s6 y" n1 Q7 _- K
  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>, R8 B, `+ }( a% {. E2 L
  3.                         <!--{else}-->
    / s3 r# `" f! a* B/ D) q
  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>
    9 v9 k) T2 s1 Z2 L1 Y
  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>$ y0 H+ S; u0 f4 y9 v3 p
  6.                         <!--{/if}-->
    + `. v+ W; O: ?5 K# 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>6 B6 g* s, v; N1 U- j
  8.                         <script type="text/javascript">strLenCalc($('subject'), 'checklen', 200)</script>
    ' e& L! ], p8 e7 s( I
  9.                 <!--{/if}-->
复制代码
如图: 684395caac8970b31f.png 1 ]" |- H$ U5 V% f, e' W& K% j
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" />1 V+ v1 }$ R6 \) P
  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" />- H+ Q; `8 H, ?2 ]" z6 P
  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) {6 |" X& p5 K" Q' ]5 J' @4 c
  2.                 return 'post_subject_toolong';. s/ `6 a" S$ Y; Q0 P
  3.         }
复制代码

修改为:

  1. if(dstrlen($subject) > 200) {
    - S* `  Q3 U: w5 x: S
  2. return 'post_subject_toolong';9 q* \! o; Y. E2 A8 V5 D2 R2 Z6 D4 B- i
  3. }
复制代码
如图: 209125caac94677a6c.png 8 G  N% T8 O) C' ]
五、找到语言包提示文字,打开 source/language/lang_message.php 并找到998行改为:
  1. 'post_subject_toolong' => '抱歉,您的标题超过 80 个字符修改标题长度',
复制代码

修改为:

  1. 'post_subject_toolong' => '抱歉,您的标题超过 200 个字符修改标题长度',
复制代码
如图:5 b: R% N' Q2 \1 M  \  K; @
202985caaca27969c5.png
. P+ p: N3 E' V: I) L

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

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

! o( f) D9 g" S1 H# l: Z  m, q8 d( }6 Q

# `, _6 d- n( w- V7 h
网站简介

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