phpcms V9的敏感词(在扩展中管理)自带有2个模式,1是一般,采用的是替换,2是危险,直接去除,实际上也是替换,替换为空了而已,今天加个第三种模式,告知用户存在敏感词,3提示
修改方法
先处理语言包
/phpcms/languages/zh-cn/admin.lang.php
增加一行
$LANG['badword_showmessage'] = '提示';
然后/phpcms/modules/admin/badword.php的17行改为:
$level = array(1=>L('general'),2=>L('danger'),3=>L('badword_showmessage'));
/phpcms/modules/admin/templates/badword_add.tpl.php 34行下面增加
<option value="3"><?php echo L('badword_showmessage')?></option>
/phpcms/modules/admin/templates/badword_edit.tpl.php 42行下面增加
<option <?php echo $level3;?> value="3"><?php echo L('badword_showmessage')?></option>
32-38行改为:
<?php
if($level=='1'){
$level1 = "selected";
}else if($level=='2'){
$level2 = "selected";
}else{
$level3 = "selected";
}
?>
/phpcms/model/badword_model.class.php里的replace_badword方法整体换成:
function replace_badword($str) {
//读取敏感词缓存
$badword_cache = getcache('badword','commons');
foreach($badword_cache as $data){
if($data['level'] == '3'){
showmessage('内容存在非法词汇', HTTP_REFERER);
} else {
if($data['replaceword'] == ''){
$replaceword_new ='*';
} else {
$replaceword_new = $data['replaceword'];
}
$replaceword[] = ($data['level']=='1') ? $replaceword_new : '';
$replace[] = $data['badword'];
}
}
$str = str_replace($replace, $replaceword, $str);
return $str;
}
这样就增加了一个3提示的敏感词等级
使用方法:
接下来就是敏感词的使用方法,后台添加部分不谈,自己去加就行,只谈不支持的地方引入敏感词接口,以表单向导为例:
打开/phpcms/modules/formguide/index.php
周涛博客







评论前必须登录!
注册