返回旧版| 微信建站| 我要建站 | 建站学习 | 加入收藏
PHPCMS当前位置:首页 > cms教程 > 综合cms > PHPCMS > 正文

phpcms修改自动提取缩略图的字段,可同时判断多个字段

发布时间:2020-08-17 08:57:17   来源:   点击:
官方默认的自动提取缩略图是从content字段中获取的,并且可以指定第几张图片,这种方法好处就是我们可以不用给缩略图单独上传一次图片了。
但是最近在做企业站的时候,因为要是用产品图轮播效果,经常会用到组图字段(pictureurls),这就造成了系统无法为我们提取缩略图,所以做了个改造:

(1)找到代码:phpcms\model\content_model.class.php,找到代码:
  1. //自动提取缩略图 
  2.         if(isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) { 
  3.             $content = $content ? $content : stripslashes($modelinfo['content']); 
  4.             $auto_thumb_no = intval($_POST['auto_thumb_no'])-1; 
  5.             if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) { 
  6.                 $systeminfo['thumb'] = $matches[3][$auto_thumb_no]; 
  7.             } 
  8.         } 

改成:

  1. //自动提取缩略图 
  2.         if(isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) { 
  3.             $content = $content ? $content : stripslashes($modelinfo['content']); 
  4.             $auto_thumb_no = intval($_POST['auto_thumb_no'])-1; 
  5.             if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) { 
  6.                 $systeminfo['thumb'] = $matches[3][$auto_thumb_no]; 
  7.             } 
  8.             if(empty($systeminfo['thumb'])  && array_key_exists("pictureurls",$data)){ //判断有无缩略图并且pictureurls字段是否存在
  9.                 $data['pictureurls'] = string2array($modelinfo['pictureurls']); 
  10.                 $systeminfo['thumb'] = $data['pictureurls'][0][url]; 
  11.             } 
  12.         } 

主要增加的代码是:
if(empty($systeminfo['thumb'])  && array_key_exists("pictureurls",$data)){
    $data['pictureurls'] = string2array($modelinfo['pictureurls']);
    $systeminfo['thumb'] = $data['pictureurls'][0][url];
 }
首先判断thumb是否已经生成,并且pictureurls是否存在,防止报错,pictureurl可以改成自己的其他字段

(2)找到该文件中的另外一处代码275行左右

  1. //自动提取缩略图 
  2.         if(isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) { 
  3.             $content = $content ? $content : stripslashes($modelinfo['content']); 
  4.             $auto_thumb_no = intval($_POST['auto_thumb_no'])-1; 
  5.             if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) { 
  6.                 $systeminfo['thumb'] = $matches[3][$auto_thumb_no]; 
  7.             } 
  8.         } 

改成:

  1. //自动提取缩略图 
  2.         if(isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) { 
  3.             $content = $content ? $content : stripslashes($modelinfo['content']); 
  4.             $auto_thumb_no = intval($_POST['auto_thumb_no'])-1; 
  5.             if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) { 
  6.                 $systeminfo['thumb'] = $matches[3][$auto_thumb_no]; 
  7.             } 
  8.             if(empty($systeminfo['thumb'])  && array_key_exists("pictureurls",$data)){ 
  9.                 $data['pictureurls'] = string2array($modelinfo['pictureurls']); 
  10.                 $systeminfo['thumb'] = $data['pictureurls'][0][url]; 
  11.             } 
  12.         } 


两处修改方式完全一样,这样我们在保存文章的时候,会自动从pictureurls字段中读取第一个图片作为缩略图,无需再次上传图片了。
 

相关栏目
热门文章
最新图文
评论排行
版权所有:郑州腾石网络科技有限公司 备案信息:豫ICP备18019117号
站长QQ:2863868475 业务合作咨询:15137100750(同微信)
本站所有投放的广告是有其他网站提供,不代表本站立场,同时网站首页广告位对外出租详情咨询本站站长!同时欢迎广大站长加入个人建站团队
  • 建站客服
  • CMS仿站
  • CMS学习
  • 技术交流群:336572814