织梦会员中心提取内容第一个图片为缩略图和自动添加水印问题
作者:互联网
dedecms程序的会员中心默认是没有自动提取缩略图和添加水印功能的,想要开启的话,需要修改会员中心文件,下面的方法以文章模型修改。
会员中心提取内容第一个图片为缩略图
- /member/article_add.php
- /member/article_edit.php
这2个文件里都要找到
$body = AnalyseHtmlBody($body, $description);
整行改成
$body = AnalyseHtmlBody($body, $description, $litpic);
再打开 /member/inc/inc_archives_functions.php 找到
function AnalyseHtmlBody($body, &$description, $dtype='')
整行改成
function AnalyseHtmlBody($body, &$description, &$litpic, $dtype='')
继续找到
$body = addslashes($body);
在它的上面加入
//自动获取缩略图
if($litpic=='')
{
$litpic = GetDDImgFromBody($body);
}
最后,在这个php文件的最下面加入2个函数
/**
* 取第一个图片为缩略图
*
* @access public
* @param string $body 文档内容
* @return string
*/
function GetDDImgFromBody(&$body)
{
$litpic = '';
preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|bmp|png))/isU",$body,$img_array);
$img_array = array_unique($img_array[2]);
if(count($img_array)>0)
{
$picname = preg_replace("/[\"|'| ]{1,}/", '', $img_array[0]);
if(preg_match("#_lit\.#", $picname)) $litpic = $picname;
else $litpic = GetDDImage('ddfirst', $picname,1);
}
return $litpic;
}
/**
* 获得缩略图
*
* @access public
* @param string $litpic 缩略图
* @param string $picname 图片名称
* @param string $isremote 是否远程
* @return string
*/
function GetDDImage($litpic, $picname, $isremote)
{
global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
$ntime = time();
if( ($litpic != 'none' || $litpic != 'ddfirst') &&
!empty($_FILES[$litpic]['tmp_name']) && is_uploaded_file($_FILES[$litpic]['tmp_name']))
{
//如果用户自行上传缩略图
$istype = 0;
$sparr = Array("image/pjpeg", "image/jpeg", "image/gif", "image/png");
$_FILES[$litpic]['type'] = strtolower(trim($_FILES[$litpic]['type']));
if(!in_array($_FILES[$litpic]['type'], $sparr))
{
ShowMsg("上传的图片格式错误,请使用JPEG、GIF、PNG格式的其中一种!","-1");
exit();
}
$savepath = $ddcfg_image_dir.'/'.MyDate($cfg_addon_savetype, $ntime);
CreateDir($savepath);
$fullUrl = $savepath.'/'.dd2char(MyDate('mdHis', $ntime).$cuserLogin->getUserID().mt_rand(1000, 9999));
if(strtolower($_FILES[$litpic]['type']) == "image/gif")
{
$fullUrl = $fullUrl.".gif";
}
else if(strtolower($_FILES[$litpic]['type']) == "image/png")
{
$fullUrl = $fullUrl.".png";
}
else
{
$fullUrl = $fullUrl.".jpg";
}
@move_uploaded_file($_FILES[$litpic]['tmp_name'], $cfg_basedir.$fullUrl);
$litpic = $fullUrl;
if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($cfg_basedir.$fullUrl,$cfg_ddimg_width,$cfg_ddimg_height);
else @ImageResize($cfg_basedir.$fullUrl,$cfg_ddimg_width,$cfg_ddimg_height);
$img = $cfg_basedir.$litpic;
}
else
{
$picname = trim($picname);
if($isremote==1 && preg_match("#^http:\/\/#i", $picname))
{
$litpic = $picname;
$ddinfos = GetRemoteImage($litpic, $cuserLogin->getUserID());
if(!is_array($ddinfos))
{
$litpic = '';
}
else
{
$litpic = $ddinfos[0];
if($ddinfos[1] > $cfg_ddimg_width || $ddinfos[2] > $cfg_ddimg_height)
{
if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($cfg_basedir.$litpic,$cfg_ddimg_width,$cfg_ddimg_height);
else @ImageResize($cfg_basedir.$litpic,$cfg_ddimg_width,$cfg_ddimg_height);
}
}
}
else
{
if($litpic=='ddfirst' && !preg_match("#^http:\/\/#i", $picname))
{
$oldpic = $cfg_basedir.$picname;
$litpic = str_replace('.', '-lp.', $picname);
if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
else @ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);
if(!is_file($cfg_basedir.$litpic)) $litpic = '';
}
else
{
$litpic = $picname;
return $litpic;
}
}
}
if($litpic=='litpic' || $litpic=='ddfirst') $litpic = '';
return $litpic;
}
提取内容第一个图片为缩略图 完成。
会员中心上传的图片自动加水印
打开 /member/inc/archives_check.php 找到
$litpic = MemberUploads('litpic', '', $cfg_ml->M_ID, 'image', '', $cfg_ddimg_width, $cfg_ddimg_height, FALSE);
改成
$litpic = MemberUploads('litpic', '', $cfg_ml->M_ID, 'image', '', $cfg_ddimg_width, $cfg_ddimg_height, TRUE);
打开 /member/inc/archives_check_edit.php 找到
$litpic = MemberUploads('litpic', $oldlitpic, $mid, 'image', '', $cfg_ddimg_width, $cfg_ddimg_height, false, $isadmin);
改成
$litpic = MemberUploads('litpic', $oldlitpic, $mid, 'image', '', $cfg_ddimg_width, $cfg_ddimg_height, true, $isadmin);
打开 /include/helpers/upload.helper.php 找到
else if($water)
改成
if($water)
标签:body,缩略图,cfg,会员中心,picname,织梦,litpic,ddimg,image 来源: https://www.cnblogs.com/dedemao/p/13461544.html