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

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

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

690

主题

704

帖子

3万

积分

董事

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

积分
31813
     紫钻仅向指定用户开放  
发表于 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;


" F, t1 z4 m  V, D* [5 Q, 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) == "") {
    # P5 y! |, ?$ c0 p9 W6 L
  2.                 showError('抱歉,您尚未输入标题或内容');9 k# X+ m$ `! z, Q
  3.                 return false;
    9 R: i! P( s- |4 B
  4.         } else if(mb_strlen(theform.subject.value) > 80) {
    " C7 y7 E7 r1 Q! k$ p
  5.                 showError('您的标题超过 80 个字符的限制');& Q0 n" G2 N/ |' h* |
  6.                 return false;
    ! h; t0 }( `8 a9 A8 P, `% \) C
  7.         }
复制代码

修改为:


  1. % ?# g" g+ v! `3 M1 `$ @& f
  2. if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {7 g0 ?7 t: N9 ^  i
  3.                 showError('抱歉,您尚未输入标题或内容');
    9 L! k; |' y0 `+ G" Z0 o5 z! Y
  4.                 return false;( a: A. M3 P6 d3 T  s& f" ?
  5.         } else if(mb_strlen(theform.subject.value) > 200) {4 X+ {- |  }# J8 A
  6.                 showError('您的标题超过 200 个字符的限制');' @# C3 D  R' o8 G
  7.                 return false;: m/ m. {, d/ O" O! K
  8.         }
复制代码
如图:
6 u3 G7 Z+ @6 O5 f; ~8 s8 k2 j1 D; h7 F) W' W! t
2、找到文件sitatic/js/forum.js的212到218行代码:
  1. if(theform.message.value == '' || theform.subject.value == '') {
    * W" b( ]+ C" a% g/ k
  2.                 s = '抱歉,您尚未输入标题或内容';" w8 E) m: ?0 t4 U9 ?
  3.                 theform.message.focus();
    5 Y" Q( `, q% ~8 ]- q: M% q
  4.         } else if(mb_strlen(theform.subject.value) > 80) {
    " i7 l9 S9 \: X( y. j! [' \
  5.                 s = '您的标题超过 80 个字符的限制';3 U" t3 [2 N' _9 E6 F" _( z. m& [
  6.                 theform.subject.focus();
    3 \3 F/ T/ O. \) \5 T. \
  7.         }
复制代码
1 X& n* A9 Y) M" m( |+ Z% q8 B* j  t

修改为:

  1. if(theform.message.value == '' || theform.subject.value == '') {7 y5 D* i. w+ X' y# M+ h# P
  2.                 s = '抱歉,您尚未输入标题或内容';
    4 c& [( }* r8 N9 a
  3.                 theform.message.focus();& X3 `5 p) q3 q# `8 ^# R
  4.         } else if(mb_strlen(theform.subject.value) > 80) {4 W5 S3 Q6 ?2 y9 p, f& A: a% j
  5.                 s = '您的标题超过 80 个字符的限制';
    / A, s: d' A8 z/ z( D
  6.                 theform.subject.focus();
    , d" U% k: M5 D# J$ ^& S
  7.         }
复制代码
如图:
) }+ g* M7 c6 R) B三、修改模板中写死的字符限制数:

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

  1. <!--{if $_GET[action] != 'reply'}-->
    7 ~0 |% L) F. P3 Z& ]. }
  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># T# K$ D- y5 z
  3.                         <!--{else}-->5 T. ]. c2 x$ [- U' k! t8 [" Q# r
  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>
    . W0 Y" V- J" E0 X' U0 x- W
  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>
    1 m. n) U9 X+ ?# r; b  G- r: w
  6.                         <!--{/if}-->4 t0 \) h: R; \; Z  x
  7.                         <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>: I& K1 A0 N6 W# D
  8.                         <script type="text/javascript">strLenCalc($('subject'), 'checklen', 80)</script>
    7 l/ C6 G; M5 P! ~4 [
  9.                 <!--{/if}-->
复制代码

1 d: Y: P! |; e0 b$ k; T, \, s1 ]: J

修改为:

  1. <!--{if $_GET[action] != 'reply'}-->0 A4 a) |5 g" w; `" B# I
  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>
    , L/ ~- S) G0 W' {1 H
  3.                         <!--{else}-->
    * M- [# E& ?  W
  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>8 k0 Y/ {+ c+ {+ |
  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>, V$ B+ H; G7 T+ ~
  6.                         <!--{/if}-->
    8 B% I9 X$ a3 Z
  7.                         <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">200</strong> {lang comment_message2}</span>9 e- F" I0 G" T# a' k0 J6 Q( e" H# ~
  8.                         <script type="text/javascript">strLenCalc($('subject'), 'checklen', 200)</script>
      N8 C5 z9 v" l2 h0 y+ }1 d
  9.                 <!--{/if}-->
复制代码
如图:( A9 N, b7 D+ L% Y; z
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" />% X9 t6 L! m7 v: k3 |, B" Y6 d
  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" />
      ~0 y$ ?% P8 u
  2.                                 <span>{lang comment_message1} <strong id="checklen">200</strong> {lang comment_message2}</span>=
复制代码
如图:四,修改函数验证提示:

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

  1. if(dstrlen($subject) > 80) {
    / r: \$ g3 ~6 v" I! f
  2.                 return 'post_subject_toolong';
    6 l- s' m6 w7 H+ @2 [2 V
  3.         }
复制代码

修改为:

  1. if(dstrlen($subject) > 200) {
    ( ~2 l: Q+ v" z) r9 t
  2. return 'post_subject_toolong';
    ! a7 s) u$ ^4 ^; B* k' Q
  3. }
复制代码
如图:
2 C9 U1 f( j9 u五、找到语言包提示文字,打开 source/language/lang_message.php 并找到998行改为:
  1. 'post_subject_toolong' => '抱歉,您的标题超过 80 个字符修改标题长度',
复制代码

修改为:

  1. 'post_subject_toolong' => '抱歉,您的标题超过 200 个字符修改标题长度',
复制代码
如图:
& t; d+ L+ b. |1 ]* M/ p% z& E, p; U# d3 r7 [& t

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

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


& f/ ^2 ^; G1 m, Z) j' t9 a
/ G& B3 x' S" e  ^4 y6 r' J  C

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

qiuqiufa.com

网站简介

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