IT技术互动交流平台

DISCUZ修改主题标题长度方法

发布日期:2014-02-27 10:33:20
以下内容为网上复制,通过测试有几点要补充一下: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)找到文件\template\default\forum\post_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)找到文件\template\default\forum\forumdisplay_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 字段
 
(修改数据库,请先备份数据库)
 
 

Tag标签: DISCUZ  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规