zoukankan      html  css  js  c++  java
  • 织梦会员中心提取内容第一个图片为缩略图和自动添加水印问题

    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)
  • 相关阅读:
    C#中List<T>用法
    windows phone中,将crash report记录下来,写入文件,方便分析
    解决问题之,wp项目中使用MatchCollection正则表达式匹配出错
    提问的智慧
    toolkit,phonetextbox中实现用户按回车键会换行
    Hibernate主键生成策略
    hibernate.cfg.xml位置及JDBC配置
    Java与数字签名
    MyEclipse不能编译的一种解决方法
    java读文件和写文件编码方式的控制
  • 原文地址:https://www.cnblogs.com/dedehtml/p/9901396.html
Copyright © 2011-2022 走看看