新聞中心
完美修改Discuz! x2.5論壇標(biāo)題字?jǐn)?shù)(80個(gè)字符)限制長(zhǎng)度
一個(gè)很煩人的問題,discuz!x2.5的帖子標(biāo)題長(zhǎng)度(字?jǐn)?shù))有限制,無憂主機(jī)(www.gle-technology.com)小編從康盛官方論壇查了相關(guān)資料,是有80個(gè)字符的限制。換句話說,你在編輯帖子標(biāo)題的時(shí)候,只能有80個(gè)字符,超過了就不顯示了。這是一個(gè)蛋疼的問題,80個(gè)字符長(zhǎng)度的帖子標(biāo)題,怎么能滿足論壇達(dá)人的需求類?如果你用的是discuz!x2.5 UTF8版本,那就更揪心了,因?yàn)閡tf8版本,一個(gè)漢字算3個(gè)字節(jié),也就是26個(gè)漢字。是不是有點(diǎn)崩潰的感覺?還好,這種問題,不是一個(gè)人遇到,在discuz!x2.5官方論壇上,也有許多人問如何取消或加長(zhǎng)默認(rèn)標(biāo)題長(zhǎng)度。很高興,這個(gè)問題已經(jīng)有完美的解決方案,無憂主機(jī)(www.gle-technology.com)小編這里就借花獻(xiàn)佛,與大家共享這個(gè)案例。 目的:將discuz!x2.5論壇標(biāo)題長(zhǎng)度限制80字符,增加到限制120字符。 無憂主機(jī)(www.gle-technology.com)小編溫馨提示:論壇代碼修改有風(fēng)險(xiǎn),網(wǎng)站備份要先行。網(wǎng)站整站備份,請(qǐng)你參考:網(wǎng)站整站一鍵備份與恢復(fù) 工具:要順利完成代碼的修改,一個(gè)好用工具不可少,強(qiáng)烈推薦使用文本編輯器(editplus),不推薦使用記事本進(jìn)行編輯修改。 方向:我們要把discuz!x2.5論壇標(biāo)題字?jǐn)?shù)(長(zhǎng)度)限制80字符,增加到限制120字符,修改過程中,要涉及:mysql數(shù)據(jù)庫(kù)、js驗(yàn)證文件數(shù)、修改函數(shù)驗(yàn)證、模版中定義的字符限制數(shù)量、語言包文件合計(jì)五個(gè)文件。同志們,工作量巨大繁瑣,要仔細(xì)認(rèn)真哦。我們操作前對(duì)網(wǎng)站進(jìn)行一個(gè)整站備份是非常有必要的。 把discuz!x2.5論壇標(biāo)題長(zhǎng)度限制80字符,增加到限制120字符的詳細(xì)操作步驟和說明: 1、Mysql數(shù)據(jù)庫(kù)修改。 這里我們直接執(zhí)行sql查詢語句來完成,請(qǐng)你直接把下面的sql語句直接復(fù)制,到phpmyadmin工具中的sql語句執(zhí)行窗口,執(zhí)行即可。 如果你不知道如何登錄無憂php虛擬主機(jī)的phpmyadmin工具,請(qǐng)你直接點(diǎn)擊 “phpmyadmin數(shù)據(jù)庫(kù)管理工具的使用說明”查詢。
ALTER TABLE `pre_forum_post` CHANGE `subject` `subject` VARCHAR(120) NOT NULL; ALTER TABLE `pre_forum_rsscache` CHANGE `subject` `subject` char(120) NOT NULL; ALTER TABLE `pre_forum_thread` CHANGE `subject` `subject` char(120) NOT NULL;2、修改JS文件: 我們要這里要修2個(gè)JS文件一個(gè)是forum_post.js和forum.js。詳細(xì)修改如下: A、修改js驗(yàn)證字符數(shù)文件:static/js/forum_post.js 使用文本編輯器editplus打開計(jì)算文件forum_post,查找定位在約77行處,做如下修改: 源文件:
if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") { showError('抱歉,您尚未輸入標(biāo)題或內(nèi)容'); return false; } else if(mb_strlen(theform.subject.value) > 80) { showError('您的標(biāo)題超過 80 個(gè)字符的限制'); return false; }修改替換為:
if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") { showError('抱歉,您尚未輸入標(biāo)題或內(nèi)容'); return false; } else if(mb_strlen(theform.subject.value) > 120) { showError('您的標(biāo)題超過 120 個(gè)字符的限制'); return false; }B、修改目錄:sitatic/js/forum.js 使用文本編輯器editplus打開計(jì)算文件forum.js,查找定位在約212行處,做如下修改: 源代碼:
if(theform.message.value == '' && theform.subject.value == '') { s = '抱歉,您尚未輸入標(biāo)題或內(nèi)容'; theform.message.focus(); } else if(mb_strlen(theform.subject.value) > 80) { s = '您的標(biāo)題超過 80 個(gè)字符的限制'; theform.subject.focus(); }修改替換為:
if(theform.message.value == '' && theform.subject.value == '') { s = '抱歉,您尚未輸入標(biāo)題或內(nèi)容'; theform.message.focus(); } else if(mb_strlen(theform.subject.value) > 120) { s = '您的標(biāo)題超過 120 個(gè)字符的限制'; theform.subject.focus(); }3、修改模版中定義的字符限制數(shù)量: 在discuz!x2.5模版中,有一句代碼限制了帖子標(biāo)題字符數(shù),這是我們必須要修改的,讓其支持更長(zhǎng)的帖子標(biāo)題。修改文件為:post_editor_extra.htm和forumdisplay_fastpost.htm A、post_editor_extra.htm路徑目錄:/template/default/forum/ 使用文本編輯器editplus打開計(jì)算文件post_editor_extra.htm,查找定位在約28行處,做如下修改: 源代碼如下:
<span id="subjectchk"{if $_G[gp_action] == 'reply'} style="display:none"{/if}> {lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>修改替換為:
<span id="subjectchk"{if $_G[gp_action] == 'reply'} style="display:none"{/if}> {lang comment_message1} <strong id="checklen">120</strong> {lang comment_message2}</span>B、forumdisplay_fastpost.htm路徑目錄:\template\default\forum\forumdisplay_fastpost.htm 使用文本編輯器editplus打開計(jì)算文件forumdisplay_fastpost.htm,查找定位在約32行處,做如下修改: 源代碼:
<span>{lang comment_message1} <strong id="checklen">80</strong> {lang comment_message2}</span>修改替換為:
<span>{lang comment_message1} <strong id="checklen">120</strong> {lang comment_message2}</span>4、修改函數(shù)驗(yàn)證 修改一個(gè)驗(yàn)證函數(shù)(function_post.php)文件,這個(gè)非常重要,這里也對(duì)帖子標(biāo)題長(zhǎng)度做了限制,我們只需要修改限制長(zhǎng)度即可。 function_post.php路徑目錄:source/function/function_post.php 使用文本編輯器editplus打開計(jì)算文件post_editor_extra.htm,查找定位在約345行處,做如下修改: 源代碼:
if(dstrlen($subject) > 80) { return 'post_subject_toolong'; }修改為: if(dstrlen($subject) > 120) { return 'post_subject_toolong'; } 5、修改語言包 當(dāng)會(huì)員編輯帖子標(biāo)題的時(shí)候,如果超過定義的長(zhǎng)度,那么系統(tǒng)就會(huì)友好的提示您,帖子標(biāo)題長(zhǎng)度太長(zhǎng)了,這個(gè)地方雖然不是必須的,通過前面4個(gè)地方的修改,我們已經(jīng)可以達(dá)到了我們的目的了,但是為了用戶體驗(yàn),我們必須要繼續(xù)修改Discuz!x2.5的語言包,請(qǐng)語言包(lang_messege.php)中關(guān)于超過標(biāo)題長(zhǎng)度的系統(tǒng)提示修改正確。 lang_messege.php路徑目錄:source/language/lang_messege.php 使用文本編輯器editplus打開計(jì)算文件lang_messege.php,查找定位在約988行處,做如下修改: 'post_subject_toolong' => '抱歉,您的標(biāo)題超過 120 個(gè)字符修改標(biāo)題長(zhǎng)度', 以上操作無憂主機(jī)(www.gle-technology.com)小編已經(jīng)在discuz!x2.5 gbk 最新版本中驗(yàn)證通過,希望上面的操作過程,能夠給你帶來幫助。感謝你閱讀本教程。 純Linux環(huán)境下高端免備案【香港獨(dú)立IP地址】 php空間,僅僅只需199元一年起。商務(wù)中國(guó)域名核心代理直銷50元注冊(cè)國(guó)際頂級(jí)域名
本文地址:http://www.gle-technology.com/discuz/7470.html