网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站建设 > Discuz/SupeSite/X-Space
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Discuz/SupeSite/X-Space 讨论Discuz安装、升级、模板、插件、源代码修改以及使用技巧等。

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1   IP: 49.87.40.120
Old 2015-03-02, 08:02 AM
Maia Maia is offline
初级会员
 
Join Date: 2005-12-07
Posts: 2
Maia 现在声名狼藉
Default Discuz! X3.2论坛标题字数突破80的限制解决方法

你是否在找解决Discuz! 官方限制标题的方法,不少用户针对官方这个限制标题字符的一直找不到解决方法,此教程之前在X2-X2.5也都写过由于官方升级的原因现源码之家写一下新的针对discuzX3.0-discuzX3.2有用的教程。
下面由源码之家技术分享解决标题限制80字符方法步骤:

一、数据库修改;
二、修改JS验证字符数文件;
三、修改模板中写死的字符限制数;
四,修改函数验证文件;
五,修改语言包文件。


一、数据库修改,修改数据库标题字段的长度为200字符:运行下面的sql语句:
(注意修改你的表的前缀)
Code:
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;
二、修改JS验证字符数:1、找到文件static/js/forum_post.js的75-81行
Code:
01.if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {

02.                showError('抱歉,您尚未输入标题或内容');

03.                return false;

04.        } else if(mb_strlen(theform.subject.value) > 80) {

05.                showError('您的标题超过 80 个字符的限制');

06.                return false;

07.        }
修改为:
Code:
01.if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {

02.                showError('抱歉,您尚未输入标题或内容');

03.                return false;

04.        } else if(mb_strlen(theform.subject.value) > 200) {

05.                showError('您的标题超过 200 个字符的限制');

06.                return false;

07.        }
2、找到文件sitatic/js/forum.js的212到218行代码:
Code:
if(theform.message.value == '' || theform.subject.value == '') {

02.                s = '抱歉,您尚未输入标题或内容';

03.                theform.message.focus();

04.        } else if(mb_strlen(theform.subject.value) > 80) {

05.                s = '您的标题超过 80 个字符的限制';

06.                theform.subject.focus();

07.        }
修改为:
Code:
if(theform.message.value == '' || theform.subject.value == '') {

02.                s = '抱歉,您尚未输入标题或内容';

03.                theform.message.focus();

04.        } else if(mb_strlen(theform.subject.value) > 200) {

05.                s = '您的标题超过 200 个字符的限制';

06.                theform.subject.focus();

07.        }
三、修改模板中写死的字符限制数:
1、找到文件\template\default\forum\post_editor_extra.htm的25到33行:
Code:
<!--{if $_GET[action] != 'reply'}-->

02.                                <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>

03.                        <!--{else}-->

04.                                <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>

05.                                <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>

06.                        <!--{/if}-->                        

07.                        <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>

08.                        <script type="text/javascript">strLenCalc($('subject'), 'checklen', 80)</script>

09.                <!--{/if}-->
修改为:
Code:
<!--{if $_GET[action] != 'reply'}-->

02.                                <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>

03.                        <!--{else}-->

04.                                <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>

05.                                <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>

06.                        <!--{/if}-->                        

07.                        <span id="subjectchk"{if $_GET[action] == 'reply'} style="display:none"{/if}>{lang comment_message1} <strong id="checklen">200</strong> {lang comment_message2}</span>

08.                        <script type="text/javascript">strLenCalc($('subject'), 'checklen', 200)</script>

09.                <!--{/if}-->
2、找到文件\template\default\forum\forumdisplay_fastpost.htm31-32行:
Code:
01.<input type="text" id="subject" name="subject" class="px" value="" onkeyup="strLenCalc(this, 'checklen', 80);" tabindex="11" style="width: 25em" />

02.                                <span>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>
修改为:
Code:
01.<input type="text" id="subject" name="subject" class="px" value="" onkeyup="strLenCalc(this, 'checklen', 200);" tabindex="11" style="width: 25em" />

02.                                <span>{lang comment_message1} <strong id="checklen">200</strong> {lang comment_message2}</span>
四,修改函数验证提示:
找到文件source/function/function_post.php的361-363行:
Code:
01.if(dstrlen($subject) > 80) {

02.                return 'post_subject_toolong';

03.        }
修改为:
Code:
01.if(dstrlen($subject) > 200) {

02.return 'post_subject_toolong';

03.}
五、找到语言包提示文字,打开 source/language/lang_messege.php 并找到998行改为:
Code:
'post_subject_toolong' => '抱歉,您的标题超过 80 个字符修改标题长度',
修改为:
Code:
'post_subject_toolong' => '抱歉,您的标题超过 200 个字符修改标题长度',

Last edited by Maia : 2015-03-02 at 08:07 AM
Reply With Quote
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
AdSense 广告在 Discuz! 等其它平台论坛广告展示问题及解决办法 yahoo Google Adsense 0 2009-08-22 01:49 PM
discuz.htm里面的变量$forum[icon]的问题! yahoo Discuz/SupeSite/X-Space 0 2007-03-13 07:16 PM
Discuz!+SupeSite+X-Space相关录像大集合 car Discuz/SupeSite/X-Space 0 2007-02-22 01:36 AM
官方出品 新春风格火热出炉--恭贺新禧 for Discuz! 5.0.0 SupeSite Discuz/SupeSite/X-Space 0 2007-02-22 01:09 AM
Discuz官方logo源代码 car Discuz/SupeSite/X-Space 0 2006-06-26 11:14 AM

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 11:08 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.