phper,PHP学习_PHP技术_PHP网站建设_PHP程序员专注于PHP技术研究及学习

Adophper » 编程开发 » DISCUZ修改主题标题长度方法

DISCUZ修改主题标题长度方法

此文被围观1882日期: 2014-02-26 分类 : 编程开发  标签:  ···

以下内容为网上复制,通过测试有几点要补充一下:1、修改post.htm,2、function_post.php注意因为中英的区别,有些DISCUZ函数的字符计算一个汉字可能占有三个字符,3、lang_message.php

附上DISCUZ计算字符长度的函数:function dstrlen($str) {

if(strtolower(CHARSET) != ‘utf-8′) {
return strlen($str);
}
$count = 0;
for($i = 0; $i < strlen($str); $i++){
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
}
$count++;
}
return $count;
}

以标题长度为 120 个字符为例


修改JS验证字符数:1、找到文件static/js/forum_post.js
} else if(mb_strlen(theform.subject.value) > 80) {
showError(‘您的标题超过 80 个字符的限制’);
return false;
}
修改为:
} else if(mb_strlen(theform.subject.value) > 120) {
showError(‘您的标题超过 120 个字符的限制’);
return false;
}
2、找到文件sitatic/js/forum.js
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、修改模板中写死的字符限制数:1)找到文件templatedefaultforumpost_editor_extra.htm

<!–{if $_G[gp_action] != ‘reply’}–>
<span><input type=”text” name=”subject” id=”subject” value=”$postinfo[subject]” {if $_G[gp_action] == ‘newthread’}onblur=”if($(‘tags’)){relatekw(‘-1′,’-1′{if $_G['group']['allowposttag']},function(){extraCheck(4)}{/if});doane();}”{/if} style=”width: 25em” tabindex=”1″ /></span>
<!–{else}–>
<span id=”subjecthide”>RE: $thread[subject] [<a href="javascript:;">{lang modify}</a>]</span>
<span id=”subjectbox” style=”display:none”><input type=”text” name=”subject” id=”subject” value=”" style=”width: 25em” /></span>
<!–{/if}–>
<span id=”subjectchk”{if $_G[gp_action] == ‘reply’} style=”display:none”{/if}>{lang comment_message1} <strong id=”checklen”>80</strong> {lang comment_message2}</span>
修改为下面代码:
<!–{if $_G[gp_action] != ‘reply’}–>
<span><input type=”text” name=”subject” id=”subject” value=”$postinfo[subject]” {if $_G[gp_action] == ‘newthread’}onblur=”if($(‘tags’)){relatekw(‘-1′,’-1′{if $_G['group']['allowposttag']},function(){extraCheck(4)}{/if});doane();}”{/if} style=”width: 25em” tabindex=”1″ /></span>
<!–{else}–>
<span id=”subjecthide”>RE: $thread[subject] [<a href="javascript:;">{lang modify}</a>]</span>
<span id=”subjectbox” style=”display:none”><input type=”text” name=”subject” id=”subject” value=”" style=”width: 25em” /></span>
<!–{/if}–>
<span id=”subjectchk”{if $_G[gp_action] == ‘reply’} style=”display:none”{/if}>{lang comment_message1} <strong id=”checklen”>120</strong> {lang comment_message2}</span>
2)找到文件templatedefaultforumforumdisplay_fastpost.htm
<input type=”text” id=”subject” name=”subject” value=”" tabindex=”11″ style=”width: 25em” />
<span>{lang comment_message1} <strong id=”checklen”>80</strong> {lang comment_message2}</span>
修改为:
<input type=”text” id=”subject” name=”subject” value=”" tabindex=”11″ style=”width: 25em” />
<span>{lang comment_message1} <strong id=”checklen”>120</strong> {lang comment_message2}</span>
4,修改函数验证提示:找到文件source/function/function_post.php
if(dstrlen($subject) > 80) {
return ‘post_subject_toolong’;
}
修改为:
if(dstrlen($subject) > 120) {
return ‘post_subject_toolong’;
}
5、找到语言包提示文字,打开 source/language/lang_messege.php
‘post_subject_toolong’ => ‘抱歉,您的标题超过 120 个字符修改标题长度’,
OK,你再发表帖子标题就可以是120个字符数了!!!
数据库及要修改的字段:
ALTER TABLE 表名 modify subject varchar(XXX)
pre_forum_post 表 subject 字段
pre_forum_thread 表 subject 字段
forum_collection 表 lastsubject 字段 forum_fourmrecommend 表 subject 字段 forum_rsscache 表 subject 字段

(修改数据库,请先备份数据库)

本站使用ThinkPHP框架开发读图网主题,目前托管在阿里云,图片由读图网提供. 蜀ICP备12031064号

Copyright © 2011-2017adophper.com All Rights Reserved.