当前位置:首页 > 帝国CMS学习

帝国CMS页面敏感替换为*号

时间:2021-01-28 | 栏目:帝国CMS学习 | 围观热度:1263

客户有这样一个需求:在要展示的页面把一些敏感的词给屏蔽掉。自己可以自定义在文本文件里添加敏感词。

其实这个需求我跟用户沟通过,说使用Js直接操作会更方便点,他说那样用户是看不到了,可是HTML源码里还是会有。所以具体的操作如下:

1、在网站根目录建一个mgc.txt 文本文件。

2、把下面的代码复制到/e/class/userfun.php文件

function sReplaceMgc($str) {
    if(!$str) return $str;

    $mgc = file_get_contents(ECMS_PATH.'mgc.txt');
    if(!$mgc) return  $str;

    $mgcR = array_filter(explode(PHP_EOL,$mgc));
    return str_replace($mgcR,'*',$str);
}

静态生成部分:主要修改/e/class/functions.php文件

首页/封面页/专题: 搜索 “NewsBq”函数 找到该函数下 “//解析代码” 然后添加代码:$string=sReplaceMgc($string);

列表页:搜索“ListHtml”函数,找到该函数下 “//替换分页数” 然后添加代码:$string=sReplaceMgc($string);

内容页:搜索“GetHtml”函数,找到该函数下“//写文件”位置(共2处),添加代码:$string=sReplaceMgc($string);

动态/伪静态生成部分:

首页:打开e/data/template/dtindexpage.txt文件,找到“//位置导航”,在其下面两行添加如下代码:$string=sReplaceMgc($string);

列表页/封面页:打开 /e/action/ListInfo/index.php拉到最底部,找到“//列表:缓存” 添加代码:$string=sReplaceMgc($string);

内容页:打开 /e/action/ShowInfo.php,拉到最底部,找到“//缓存” 约419行,添加代码:$string=sReplaceMgc($string);