织梦会员中心提取内容第一个图片为缩略图和自动添加水印问题
2018-03-09 15:47
405 查看
dedecms程序的会员中心默认是没有自动提取缩略图和添加水印功能的,想要开启的话,需要修改会员中心文件,下面的方法以文章模型修改。
\member\article_edit.php
这2个文件里都要找到
整行改成
再打开 \member\inc\inc_archives_functions.php 找到
整行改成
还是这个文件,继续找到
在它的
最后,在这个php文件的最下面加入2个函数
完成
\member\inc\archives_check.php
找到
改成
\member\inc\archives_check_edit.php
找到
改成
\include\helpers\upload.helper.php
找到
改成
会员中心提取内容第一个图片为缩略图
\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)
相关文章推荐
- PHP提取第一张图片+生成缩略图+图片添加水印
- 【phpcms-v9】phpcms-v9中添加内容时自动提取缩略图
- DEDECMS删除 提取第一个图片为缩略图 自动勾选默认选择设置方法
- dedecms 织梦会员中心前台,自定义图片字段上传后无法选中选择问题
- 如何给wordpress首页自动显示文章内容的第一个图片
- PHP自动向图片添加水印
- 生成缩略图、为图片添加文字水印、图片水印的类
- [原创]超强C#图片上传,加水印,自动生成缩略图源代码
- 使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图
- PHP 使用 Imagick 裁切/生成缩略图/添加水印, 自动检测和处理 GIF
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图(转)
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- 织梦dedecms5.7版自动给图片添加alt属性的方法
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- 使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图
- 使用ASP.net(C#)批量上传图片并自动生成缩略图,文字水印图,图片水印图
- 又拍云常见使用问题(如何添加和设置水印图片)
- 关于retrofit第一个@query自动添加一个&符问题
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图