众所周知,DedeCMS后台“图片水印设置”里的“添加水印的图片大小控制”选项根本不起作用,导致缩略图也被加上水印,效果很难看,现在告诉你DedeCMS V5.6缩略图不加水印的方法技巧!
修改DedeCMS程序里的dede/inc/inc_archives_functi*****.php 文件 (dede为后台默认路径)
查找到:
//获取一个远程图片
function GetRemoteImage($url,$uid=0)
这个函数里面有一句:
@WaterImg($rndtrueName, 'down');
修改成:
//@WaterImg($rndtrueName, 'down');
再查找:
//获得文章body里的外部资源
function GetCurContent($body)
{
global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir;
修改成:
//获得文章body里的外部资源
function GetCurContent($body)
{
global $cfg_multi_site,$cfg_basehost,$cfg_basedir,$cfg_image_dir,$autolitpic,$litpic;
$autolitpic = (empty($autolitpic) ? '' : $autolitpic);
然后在这同一个函数里面查找到:
$value = trim($value);
$rndFileName = $imgPath.'/'.$milliSecondN.'-'.$key.$itype;
$fileurl = $imgUrl.'/'.$milliSecondN.'-'.$key.$itype;
$rs = $htd->SaveToBin($rndFileName);
在其下面添加:
//自动获取缩略图
if($autolitpic==1 && $litpic=='')
{
$litpic = GetDDImgFromBody($body);
}
最后一步:
查找到:
//处理HTML文本
//删除非站外链接、自动摘要、自动获取缩略图
function AnalyseHtmlBody($body,&$description,&$litpic,&$keywords,$dtype='')
{
global $autolitpic,$remote,$dellink,$autokey,$cfg_basehost,$cfg_auot_description,$id,$title,$cfg_soft_lang;
$autolitpic = (empty($autolitpic) ? '' : $autolitpic);
$body = stripslashes($body);
//远程图片本地化
if($remote==1)
{
$body = GetCurContent($body);
}
//删除非站内链接
if($dellink==1)
{
$basehost = "".$_SERVER['HTTP_HOST'];
$body = str_replace($cfg_basehost,'#basehost#',$body);
$body = str_replace($basehost,'#2basehost2#',$body);
$body = preg_replace("/(]*)>)|(<\/a>)/isU","",$body);
$body = str_replace('#basehost#',$cfg_basehost,$body);
$body = str_replace('#2basehost2#',$basehost,$body);
}
//自动摘要
if($description=='' && $cfg_auot_description>0)
{
$description = cn_substr(html2text($body),$cfg_auot_description);
$description = trim(preg_replace('/
/','',$description));
$description = addslashes($description);
}
在这个下面的:
//自动获取缩略图
if($autolitpic==1 && $litpic=='')
{
$litpic = GetDDImgFromBody($body);
}
修改成:
//自动获取缩略图
//if($autolitpic==1 && $litpic=='')
//{
//$litpic = GetDDImgFromBody($body);
//}
好了大功告成!