dedecms V5.7系统优化与二次开发日志

2011-08-12 修改:截取原图最大面积符合长宽比的缩略图

第一步(针对系统默认):文档:\include\helpers\image.helper(即V5.7所谓的引入图像处理小助手)

 56行

        if($toWH<=$srcWH)
        {
            $ftoW=$toW;
            $ftoH=$ftoW*($srcH/$srcW);
        }
        else
        {
            $ftoH=$toH;
            $ftoW=$ftoH*($srcW/$srcH);
        }

改成

$ftoH=$toH;
$ftoW=$toW;
if ($toWH<=$srcWH) {
$src_Y = 0;
$src_X = ($srcW-$srcH*$toWH)/2;
$srcW = $srcH*$toWH;
} else {
$src_X = 0;
$src_Y = ($srcH-$srcW/$toWH)/2;
$srcH = $srcW/$toWH;
}


全文搜索

($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH)

 改成

($ni,$im,0,0,$src_X,$src_Y,$ftoW,$ftoH,$srcW,$srcH)


第二步(针对自定义):文档:\include\extend.func.php
方法:前端模板:<img src="[field:picname function='thumb(@me,283,243)'/]"
底部插入:其中“特殊值”用于区分于原图定期缩略图整理删除用,因为如果缩略图被引用于多个模板页就会产生多个不同大小的缩略图造成不必要的浪费,所以当缩略图不可能再出现在模板页如首页的幻灯缩图则应该定期删除。
function thumb($imgurl,$width, $height, $bg = false)
{
global$cfg_mainsite,$cfg_multi_site;
$thumb = eregi("http://",$imgurl)?str_replace($cfg_mainsite,'',$imgurl):$imgurl;
list($thumbname,$extname) = explode('.',$thumb);
$newthumb =$thumbname.'_特殊值_'.$width.'_'.$height.'.'.$extname;
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_mainsite.$newthumb:$newthumb;
}
?>

2011-08-12 修改:上传的图片目录与更简洁的图片名称

第一步:include\common.inc.php

//上传的普通图片的路径,建议按默认
$cfg_image_dir = $cfg_medias_dir;

//上传的缩略图
$ddcfg_image_dir = $cfg_medias_dir;

//用户投稿图片存放目录
$cfg_user_dir = $cfg_medias_dir.'/user';

$cfg_addon_savetype = 'Ym';

第二步:修改dede/media_add.php和dede/inc/inc_archives_functions

查询ymd为ym 逐个搜索,注意;YmdHis别改掉。

以上两步就将uploads/allimg/ymd/name.jpg修改成了uploads/ym/name.jpg,现在需要修改的就是图片名称了。

5.7版本搞了许多helper助手,很多都需要在这个文件夹中改动。

第三步:include\helpers\upload.helper.php

查找下面两代码替换为空

$cuserLogin->getUserID().'-'.
和
if($ftype=='imagelit') $filename .= '-L';

182行 会员上传图片

            if($exname=='')
            {
                $filename = $cfg_user_dir."/$userid-".dd2char($nowtme.mt_rand(100,999)).'.'.$sname;
            }
            else
            {
                $filename = $cfg_user_dir."/{$userid}-{$exname}.".$sname;
            }

通过以上三步骤,实现图片目录和文件名的短化。


猜你喜欢

转载自blog.csdn.net/amhoho/article/details/6682557