帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]帝国cms 给附件存放目录位置添加自定义选项之缩图自定义目录续篇 【本版专题贴子】  
主题:[原创]帝国cms 给附件存放目录位置添加自定义选项之缩图自定义目录续篇 [加入收藏夹]   

xiaojiekk
用户头衔:秀才

精华贴   :0
发贴数   :58
经验值   :427
注册时间:2016-05-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]帝国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论坛 发帖真费劲啊!!!!!

本章完结....

[该贴被修改 6 次,最后修改时间 2024-07-24 13:17:22 ]


夜星空:http://www.yeskylog.com
AK资源网:http://www.akzyw.com
QQ:18707710
VX:yeskylog

2024-07-24 02:27:19 已设置保密 顶部 回复 引用 报告 编辑 删除

worldcms
用户头衔:进士

精华贴   :0
发贴数   :914
经验值   :4069
注册时间:2017-05-12
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持




2024-07-24 08:35:06 已设置保密 顶部 回复 引用 报告 编辑 删除

fgf719
用户头衔:进士

精华贴   :0
发贴数   :1381
经验值   :5285
注册时间:2008-10-15
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

非常感谢楼主分享,测试过程出现以下问题,希望帮忙解决:
一是spicwidth 类型 int  长度 1 添加字段保存时已存在,应该改为spicswidth,楼主应该是漏了一个s;
二是添加信息勾选远程保存并设置取第1张上传图为标题图片提交时页面空白;
三是不勾选远程保存,直接点击编辑器图像上传按钮,选择本地上传图片后点击“发送到服务器上”时无任何反应,勾选“生成缩略图”提交也同样无反应。
现在上传不能正常进行,希望楼主辛苦把已上传和发布文章时远程保存图片生成缩略图一起分享出来,造福更多站长,再次感谢!




2024-07-24 10:40:17 已设置保密 顶部 回复 引用 报告 编辑 删除

xiaojiekk
用户头衔:秀才

精华贴   :0
发贴数   :58
经验值   :427
注册时间:2016-05-13
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

原帖由 fgf719 于 2024-07-24 10:40:17 发表
非常感谢楼主分享,测试过程出现以下问题,希望帮忙解决:
一是spicwidth 类型 int  长度 1 添加字段保存时已存在,应该改为spi...


已更正原字段spicwidth错误(已存在字段为缩图宽度)  更正为spicswitch
由于字段的错误会导致php页面显示错误,不能正常上传, 更正后就可以了



夜星空:http://www.yeskylog.com
AK资源网:http://www.akzyw.com
QQ:18707710
VX:yeskylog

2024-07-24 12:45:09 已设置保密 顶部 回复 引用 报告 编辑 删除

fgf719
用户头衔:进士

精华贴   :0
发贴数   :1381
经验值   :5285
注册时间:2008-10-15
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

原帖由 xiaojiekk 于 2024-07-24 12:45:09 发表
已更正原字段spicwidth错误(已存在字段为缩图宽度)  更正为spicswitch
由于字段的错误会导致php页面显示错误,不能正常上...

我添加字段时已修改为spicswidth,但仍然无法上传图片和远程保存图片。

[该贴被修改 1 次,最后修改时间 2024-07-24 15:05:11 ]



2024-07-24 15:04:20 已设置保密 顶部 回复 引用 报告 编辑 删除

xiaojiekk
用户头衔:秀才

精华贴   :0
发贴数   :58
经验值   :427
注册时间:2016-05-13
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

字段是spicswitch    不是spicswidth  注意看

注意第三步的  /e/class/connect.php文件修改   红色部分全部要增加和修改

[该贴被修改 1 次,最后修改时间 2024-07-24 16:55:20 ]


夜星空:http://www.yeskylog.com
AK资源网:http://www.akzyw.com
QQ:18707710
VX:yeskylog

2024-07-24 16:05:26 已设置保密 顶部 回复 引用 报告 编辑 删除

fgf719
用户头衔:进士

精华贴   :0
发贴数   :1381
经验值   :5285
注册时间:2008-10-15
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

修改后点击编辑器图像上传按钮可上传了,但是复制图片到编辑器勾选远程保存或勾选设置1为标题图标提交均仍是空白,希望能完善一下,非常感谢。




2024-07-24 21:22:41 已设置保密 顶部 回复 引用 报告 编辑 删除

xiaojiekk
用户头衔:秀才

精华贴   :0
发贴数   :58
经验值   :427
注册时间:2016-05-13
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

原帖由 fgf719 于 2024-07-24 21:22:41 发表
修改后点击编辑器图像上传按钮可上传了,但是复制图片到编辑器勾选远程保存或勾选设置1为标题图标提交均仍是空白,希望能完善一下...



我这边测试是可以的

你使用远程保存要把
//远程保存
function DoTranUrl($url,$classid)
这个函数也一起改啊

按上面的  //上传文件 函数的改  复制红色部分改

[该贴被修改 1 次,最后修改时间 2024-07-24 23:19:14 ]


夜星空:http://www.yeskylog.com
AK资源网:http://www.akzyw.com
QQ:18707710
VX:yeskylog

2024-07-24 23:18:50 已设置保密 顶部 回复 引用 报告 编辑 删除

cnnb
用户头衔:探花

精华贴   :0
发贴数   :5834
经验值   :16647
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

支持下




2024-07-28 07:57:32 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1