找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 139|回复: 0

[cms教程] 原创dedecms缩略图系列教程:dede自定义多尺寸缩略图

[复制链接]

该用户从未签到

发表于 2020-4-21 11:21:53 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我们的时代成了读图世代,随着瀑布流布局的大行其道,图片在网站关的重要性日渐上升,然而缩略图作为文章的入口显的更加重要,上篇AB织梦模板网介绍了织梦dedecms解决缩略图变形的问题,本篇将介绍缩略图的另一个运用:dedecms多尺寸缩略图的调用
        dedecms系统本身只支持一种尺寸的缩略图调用,即[field:litpic/],缩略图的尺寸在网站后台:DedeCMS系统配置参数》附件设置中可以设置大小,但一种尺寸的缩略图势必不能满足我们的需求,比如说我们网站经常会用到幻灯图片展示,幻灯图片的尺寸一般都是比较大的,如果用缩略图来作就不太合适,再如网站有生活风景,人物摄影这两个栏目,两类图片的比例是不相同的,如果保有一种尺寸的缩略图这样就显的很难看,下面介绍dedecms实现多种尺寸缩略图调用的方法
        打开/include/extend.func.php,在文件末尾添加以下代码
        function M_mkdirs($dir)  
        {  
        if(!is_dir($dir))  
        {  
        if(!M_mkdirs(dirname($dir))){  
        return false;  
        }  
        if(!mkdir($dir,0777)){  
        return false;  
        }  
        }  
        return true;  
        }  
        if (!function_exists('qmtx3Thumb'))
        {
        function qmtx3Thumb($aid, $width, $height, $n=0] $bg = false)
        {
        global $cfg_basehost,$cfg_multi_site,$dsql;
        $query= "SELECT body FROM `dede_addonarticle` where aid='$aid'";
        $row = $dsql->GetOne($query);
        $preg = "/
[img][/img]
/i";
        preg_match_all($preg, $row['body',, $match);
        $imgurl = $match[1,[0];
        if($n==='L'){
        $imgurl = end($match[1,);
        }
        if(!$imgurl) return '/images/defaultpic.gif';
        $thumb = str_replace($cfg_basehost,'',$imgurl);
        if(strpos($thumb, 'http://') === 0){
        return '/images/defaultpic2.gif';
        }
        list($thumbname,$extname) = explode('.',$thumb);
        $newImgdir = DEDEROOT.str_replace('uploads', 'uploads/diylitpic', str_replace($cfg_basehost, '', dirname($imgurl)));
        $newthumb = str_replace('uploads', 'uploads/diylitpic', $thumbname).'_'.$width.'_'.$height.'.'.$extname;
        $mdsure = M_mkdirs($newImgdir);
        if($mdsure){
        if(!$thumbname || !$extname || !file_exists(DEDEROOT.$thumb)) return $imgurl;
        if(!file_exists(DEDEROOT.$newthumb)){
        include_once DEDEINC.'/image.func.php';
        if($bg==true)
        {
        ImageResizeNew(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
        }
        else
        {
        ImageResize(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
        }
        }
        return $cfg_multi_site=='Y'?$cfg_basehost.$newthumb:$newthumb;
        }else{
        return '创建目录失败';
        }
        }
        }
        以上定义一个多级目录创建函数M_mkdirs和一个缩略图生成函数qmtx3Thumb($aid, $width, $height, $n=0] $bg = false)
        qmtx3Thumb有5个参数$aid为文档id,$width, $height为生成图片的宽、高,$n代表用内容的第几张大图生成缩略图,这里默认为0即第一张,$bg为是否强制缩略图大小一般为false
        然后在模板中需要调用缩略图的地方中调用
        {dede:arclist}
       
[img][/img]

        {/dede:arclist}
        注:如果你之前的缩略图就是变形的,请移动“
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-27 11:33

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表