织梦图集模型采集时修改下载图片的名称的方法

今天来谈一谈织梦采集图片的闲事儿,大家都知道,织梦的采集功能很强大,我们也做过很多的论述,今天不在这里一一列举了,估计大家最烦的就是采集图片的名称问题了,太长了,而且和织梦默认的图片命名规则不一致,今天我们就来修改一下,让采集下来的图片更像手工添加的图片:大家在include文件夹下面的dedecollection.class
    /**
     *  获得下载媒体的随机名称
     *
     * @access    public
     * @param     string  $url  地址
     * @param     string  $v  值
     * @return    string
     */
    function GetRndName($url, $v)
    {
        global $cfg_image_dir,$cfg_dir_purview;
        $this->mediaCount++;
        $mnum = $this->mediaCount;
        $timedir = "140805";
        //存放路径
        $fullurl = preg_replace("#//{1,}#", "/", $cfg_image_dir."/");
        if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl"))
        {
            MkdirAll($GLOBALS['cfg_basedir']."/$fullurl", $cfg_dir_purview);
        }

        $fullurl = $fullurl.$timedir."/";
        if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl"))
        {
            MkdirAll($GLOBALS['cfg_basedir']."/$fullurl", $cfg_dir_purview);
        }

        //文件名称
        $timename = str_replace('.','', ExecTime());
        $threadnum = 0;
        if(isset($_GET['threadnum']))
        {
            $threadnum = intval($_GET['threadnum']);
        }
        $filename = dd2char($timename.$threadnum.'-'.$mnum.mt_rand(1000,9999));

        //分配扩展名
        $urls = explode('.',$url);
        if($v=='img')
        {
            $shortname = '.jpg';
            if(preg_match("#/.gif$#i", $url))
            {
                $shortname = '.gif';
            }
            else if(preg_match("#/.png$#i", $url))
            {
                $shortname = '.png';
            }
        }
        else if($v=='embed')
        {
            $shortname = '.swf';
        }
        else
        {
            $shortname = '';
        }
        $fullname = $fullurl.$filename.$shortname;
        return preg_replace("#//{1,}#", "/", $fullname);
    }
这段代码就是织梦默认采集下载附件的命名代码,里面有一句:
        $filename = dd2char($timename.$threadnum.'-'.$mnum.mt_rand(1000,9999));
修改为:
        $filename = dd2char('1-'.$timename.$threadnum);
然后打开后台的采集功能,就可以实现了。不过还一个问题,就是添加图片的缩略图后缀是"-ip",而采集下来的图片后缀是"-lit",这个地方我们同样可以修改,在相同文件之中查找:
        //生成缩略图
        if($mtype=='img' && !$islitpic && $this->breImage=='')
        {
            $this->breImage = $filename;
            if(!preg_match("#^http:////#", $this->breImage) && file_exists($GLOBALS['cfg_basedir'].$filename))
            {
                $filenames = explode('/',$filename);
                $filenamed = $filenames[count($filenames)-1];
                $nfilename = str_replace('.','_lit.',$filenamed);
                $nfilename = str_replace($filenamed,$nfilename,$filename);
                if(@copy($GLOBALS['cfg_basedir'].$filename, $GLOBALS['cfg_basedir'].$nfilename))
                {
                    ImageResize($GLOBALS['cfg_basedir'].$nfilename,$GLOBALS['cfg_ddimg_width'],$GLOBALS['cfg_ddimg_height']);
                    $this->breImage = $nfilename;
                }
            }
        }
        if($mtype=='img' && !$islitpic)
        {
            @WaterImg($GLOBALS['cfg_basedir'].$filename,'collect');
        }
        return $filename;
    }
将里面的
                $nfilename = str_replace('.','_lit.',$filenamed);
看到没有,将里面的"_lit"修改成你自己喜欢的后缀就可以,最好是"-lp"和官方默认的一致。
支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论