帝国CMS将正文内容img图片标签里alt值默认设为文章标题

需求:我们在发布内容时,希望内容中的图片都能给alt加上内容,这样对SEO友好,还可能从搜索引擎图片搜索那里带来一些流量,如果人工加,效率低。
问题:正文内容中的图片是和其他文字存在一起,没法用模板标签单独读取出来。
思路:新建一个函数,用于自动替换正文IMG里的ALT内容。
方法:
e/class/userfun.php 里面增加:

.

//替换正文IMG里的ALT内容
function user_imgalt($mid,$f,$isadd,$isq,$value,$cs){
$title=$_POST['title'];
$htmls=$value;
$pattern = "/<img[^>]+>/"; 
preg_match_all($pattern, $htmls, $matches); 
for ($i=0; $i<=count($matches[0]); $i++) {
  preg_match_all("/alt=\".+?\"/",$matches[0][$i],$altimg); 
    $t_alt=count($altimg[0]);
    if($t_alt==0){
        $htmls=str_replace("<img","<img alt=\"{$title}\"",$htmls);
    }
}   
    return $htmls;
}

然后在后台系统设置-数据表模型-字段管理里面 编辑 newstext字段,增加如下:
11.png