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