微信关注,获取更多

帝国cms 续篇给附件存放目录位置添加自定义选项之缩图自定义目录

接上一篇给附件存放目录位置添加自定义选项
如法炮制
1./e/admin/SetEnews.php文件文本 添加两个两个选项 一个复选框、一个文本框
复选框拟定名字spicswitch  即是 缩图自定义目录开关
文本框拟定名字scustomfilepath  即是 缩图自定义目录

搜索找到 图片缩略图设置
      //***红色部分为新增***//
          <table width="100%" border="0" cellspacing="1" cellpadding="3" class="tableborder">
        <tr class="header">
          <td height="25" colspan="2">图片缩略图设置</td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <td width="22%" height="25">自定义缩图目录</td>
          <td>开启:
                  <input name="spicswitch[]" type="checkbox" id="spicswitch[]" value="1"<?=strstr($r['spicswitch'],'1')?' checked':''?>>
            自定义目录:
            <input name="scustomfilepath" type="text" id="scustomfilepath" value="<?=$r[scustomfilepath]?>" size="38"></td>
        </tr>

        <tr bgcolor="#FFFFFF">
          <td width="22%" height="25">默认值</td>
          <td>宽:
            <input name="spicwidth" type="text" id="spicwidth" value="<?=$r[spicwidth]?>" size="6">
            ×高:
            <input name="spicheight" type="text" id="spicheight" value="<?=$r[spicheight]?>" size="6"></td>
        </tr>
        <tr bgcolor="#FFFFFF">
          <td height="25">超出部分是否截取</td>
          <td><input type="radio" name="spickill" value="1"<?=$r['spickill']==1?' checked':''?>>
            是
            <input type="radio" name="spickill" value="0"<?=$r['spickill']==0?' checked':''?>>
            否</td>
        </tr>
      </table>


2.添加数据库结构字段
spicswitch 类型 int  长度 1 (已更正原spicwidth错误  更改为spicswitch)
scustomfilepath 类型varchar  长度 30
添加数据库写入字段
搜索(续上一篇的操作)
$add['customfilepath']=hRepPostStr($add['customfilepath'],0);
在后面添加       
$add['spicswitch']=(int)$add['spicswitch'];
$add['scustomfilepath']=hRepPostStr($add['scustomfilepath'],0);



搜索(续上一篇的操作)
,customfilepath='$add[customfilepath]'
在后面添加       
,spicswitch='$add[spicswitch]',scustomfilepath='$add[scustomfilepath]'


3.在改文件/e/class/connect.php
搜索function DoTranFile($file,$file_name,$file_type,$file_size,$classid,$ecms=0){
      //***红色部分为新增和修改***//
//上传文件
function DoTranFile($file,$file_name,$file_type,$file_size,$classid,$ecms=0){
        global $public_r,$class_r,$doetran,$efileftp_fr,$empire,$dbtbpre;
        $classid=(int)$classid;
        //文件类型
        $r[filetype]=GetFiletype($file_name);
        //文件名
        $r[insertfile]=ReturnDoTranFilename($file_name,$classid);
        $r[filename]=$r[insertfile].$r[filetype];
        //日期目录
        $r[filepath]=FormatFilePath($classid,$mynewspath,0);
        $filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
        //存放目录
        $fspath=ReturnFileSavePath($classid);
        $r[savepath]=eReturnEcmsMainPortPath().$fspath['filepath'].$filepath;//moreport
        //附件地址
        $r[url]=$fspath['fileurl'].$filepath.$r[filename];
        //缩图文件
       $ur=$empire->fetch1("select scustomfilepath,customfilepath,spicswitch from {$dbtbpre}enewspublic limit 1");//查询网站设置数据记录表
       $scustomfilepath=$ur['scustomfilepath']?$ur['scustomfilepath']:$ur['customfilepath'];//自定义缩图目录
       $r[savepath2]=eReturnEcmsMainPortPath().$scustomfilepath.$filepath;//获取自定义目录
        $savepath2=$r[savepath2];
       if (!is_dir($savepath2)) {//建立时间目录权限
          mkdir($savepath2, 0777, true);
        }
        if($ur['spicswitch']==0){
          $r[name]=$r[savepath]."small".$r[insertfile];//缩图返回目录地址
       }else{
          $r[name]=$r[savepath2]."small".$r[insertfile];//修改后的缩图返回目录地址
       }

        //附件文件
        $r[yname]=$r[savepath].$r[filename];
        $r[tran]=1;
        //验证类型
        if(CheckSaveTranFiletype($r[filetype]))
        {
                if($doetran)
                {
                        $r[tran]=0;
                        return $r;
                }
                else
                {
                        printerror('TranFail','',$ecms);
                }
        }
        //上传文件
        $cp=@move_uploaded_file($file,$r[yname]);
        if(empty($cp))
        {
                if($doetran)
                {
                        $r[tran]=0;
                        return $r;
                }
                else
                {
                        printerror('TranFail','',$ecms);
                }
        }
        DoChmodFile($r[yname]);
        $r[filesize]=(int)$file_size;
        //FileServer
        if($public_r['openfileserver'])
        {
                $efileftp_fr[]=$r['yname'];
        }
        return $r;
}


还有一处是
//远程保存
function DoTranUrl($url,$classid){

修改方式和上面的一样  不用远程保存可以忽略
代码太长就不贴出来了


4.修改改文件/e/admin/ecmseditor/fileinc/editorpic.php

搜索
$file=$fspath['fileurl'].$filepath.$r[filename];

改为

        $ur=$empire->fetch1("select scustomfilepath,customfilepath,spicswitch from {$dbtbpre}enewspublic limit 1");//查询网站设置数据记录表
        $scustomfilepath=$ur['scustomfilepath']?$ur['scustomfilepath']:$ur['customfilepath'];//自定义缩图目录
        $char = "[s]";
        if($ur['spicswitch']==0){//判断是否开启自定义缩图目录
        $file=$fspath['fileurl'].$filepath.$r[filename];
        }else{
            if (strpos($ono, $char) !== false) {//用strpos函数判断$char是否为缩图
                $file= $scustomfilepath.$filepath.$r[filename];
            }else{
                $file=$fspath['fileurl'].$filepath.$r[filename];
            }
        }



 

*注意:此方法只能实现 后台 上传图片时生成在自定义目录的缩图 远程保存图片时生成在自定义目录的缩图 (但不限于不包括已上传的图片再去生成缩图,不支持发文章时远程保存图片时生成缩图)
全部地方都可以实现缩图自定义目录功能 需付费修改,如需求助修改请V我方式旁边 ,不需要请忽略,各位也可以自行琢磨,毕竟改的地方太多了,希望理解!!
吐槽:帝国UBB论坛 发帖真费劲啊!!!!!

本章完结....

未经允许不得转载:YESKYLOG » 帝国cms 续篇给附件存放目录位置添加自定义选项之缩图自定义目录

  1. 天晴

    支持

    回复

登录

找回密码

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏