设为首页收藏本站

豆壳DouPHP开发者社区

 找回密码
 立即注册

【手动更新教程】upto v1.3 Release 20151109

[复制链接]
nbwbcn 发表于 2015-11-9 23:26:49 | 显示全部楼层 |阅读模式
本帖最后由 nbwbcn 于 2015-11-9 23:27 编辑

*仅适用于v1.3 Release 20151102升级到v1.3 Release 20151109
*发帖只为像我一样已经大量修改过文件的朋友,不适合直接在线升级的,可以选择手动patch。
*行号仅为参考,如果自己修改过可能不在此行,可以搜索原来的代码进行替换。
*涉及模板的修改请查找自己正在使用的模板目录对应文件。
*数据库sql命令请自行修改“表前缀”。

升级包下载:
http://down.douco.com/patch/Patch_To_DouPHP_1.3_Release_20151102.zip
1、admin\product.php 第135行


  1. $upfile = $img->upload_image('image', $id); // 上传的文件域
复制代码

替换为 (优化 后台商品图片命名逻辑


  1. $upfile = $img->upload_image('image', $dou->auto_id('product')); // 上传的文件域
复制代码
删除第150-169行


  1. // 为了产品图片管理方便,重新以产品ID定义图片名称
  2.     if ($_FILES['image']['name'] != '') {
  3.         // 格式化图片名称
  4.         $good_id = mysql_insert_id();
  5.         $no_ext = explode('.', $file);
  6.         $file_thumb = $no_ext[0] . '_thumb' . '.' . $no_ext[1];
  7.         $new_name = $images_dir . $good_id . '.' . $no_ext[1];
  8.         $new_name_thumb = $images_dir . $good_id . '_thumb' . '.' . $no_ext[1];
  9.         
  10.         // 图片存在的话,先删除图片
  11.         @ unlink('../' . $new_name);
  12.         @ unlink('../' . $new_name_thumb);
  13.         
  14.         // 重命名图片名称
  15.         rename('../' . $file, '../' . $new_name);
  16.         rename('../' . $file_thumb, '../' . $new_name_thumb);
  17.         $resql = "update " . $dou->table('product') . " SET image='$new_name' WHERE id='$good_id'";
  18.     }
  19.     $dou->query($resql);
复制代码

2、include\mysql.class.php 第109行或其他function前后增加

  1.     // 获取下一个自增(id)值
  2.     function auto_id($table) {
  3.         return $this->get_one("SELECT auto_increment FROM information_schema.`TABLES` WHERE  TABLE_SCHEMA='" . $this->dbname . "' AND TABLE_NAME = '" . trim($this->table($table), '`') . "'");
  4.     }
复制代码
3、include\upload.class.php 第80行或其他function前后增加

  1.     /**
  2.      * +----------------------------------------------------------
  3.      * 批量上传图片函数
  4.      * $upfile 上传的图片域
  5.      * $images_url 图片地址
  6.      * $image_name 给上传的图片重命名
  7.      * +----------------------------------------------------------
  8.      */
  9.     function upload_gallery($upfile, $images_url, $image_name = '') {
  10.         if ($GLOBALS['dou']->dir_status($this->images_dir) != 'write') {
  11.             echo $GLOBALS['_LANG']['upload_dir_wrong'];
  12.         }
  13.         
  14.         // 没有命名规则默认以时间作为文件名
  15.         if (empty($image_name)) {
  16.             $image_name = time(); // 设定当前时间为图片名称
  17.         }
  18.         
  19.         if (@ empty($_FILES[$upfile]['name'])) {
  20.             echo $GLOBALS['_LANG']['upload_image_empty'];
  21.         }
  22.         $name = explode(".", $_FILES[$upfile]["name"]); // 将上传前的文件以“.”分开取得文件类型
  23.         $img_count = count($name); // 获得截取的数量
  24.         $img_type = $name[$img_count - 1]; // 取得文件的类型
  25.         if (stripos($this->upfile_type, $img_type) === false) {
  26.             echo $GLOBALS['_LANG']['upload_file_support'] . $this->upfile_type . $GLOBALS['_LANG']['upload_file_support_no'] . $img_type;
  27.         }
  28.         $photo = $image_name . "." . $img_type; // 写入数据库的文件名
  29.         $upfile_name = $this->images_dir . $photo; // 上传后的文件名称
  30.         $upfile_ok = move_uploaded_file($_FILES[$upfile]["tmp_name"], $upfile_name);
  31.         if ($upfile_ok) {
  32.             $img_size = $_FILES[$upfile]["size"];
  33.             $img_size_kb = round($img_size / 1024);
  34.             if ($img_size_kb > $this->upfile_size_max) {
  35.                 @unlink($upfile_name);
  36.                 echo $GLOBALS['_LANG']['upload_out_size'] . $this->upfile_size_max . "KB";
  37.             } else {
  38.                 echo '<li><img src="' . ROOT_URL . $images_url . $photo . '" id="' . $photo . '" class="del">';
  39.                 echo '<input type="hidden" name="gallery[]" value="' . $images_url . $photo . '" /></li>';
  40.             }
  41.         } else {
  42.             $GLOBALS['_LANG']['upload_wrong'] = preg_replace('/d%/Ums', $upfile_size_max, $GLOBALS['_LANG']['upload_wrong']);
  43.             echo $GLOBALS['_LANG']['upload_wrong'];
  44.         }
  45.     }
  46.    
复制代码
4、user.php (如已安装会员模块)第500行增加(修复通过订单号查看其他会员订单详情的问题)

  1.         if($order['user_id'] != $_USER['user_id']){
  2.                 $dou->dou_msg('您只能查看自己的订单!',$_URL['order_list']);
  3.         }
复制代码


5、更新数据库版本信息,避免在此提示安装补丁。
使用命令行工具或phpmyadmin等工具进入网站使用的数据库,运行:



  1. UPDATE `表前缀_config` SET `value` = 'v1.3 Release 20151109' WHERE `name` = 'douphp_version';
复制代码

将config表中`name`='update_date'的内容手工修改'update', 'patch', 'article', 'product'四个字符后面的日期为'20151109';如果安装了会员模块还要修改user后面的日期为20151109。


6、登录后台清除缓存。完工。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

Ignorant 发表于 2015-11-15 01:24:06 | 显示全部楼层
太牛了,每次小升级都能出个升级教程就好了
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|DouCo.Com ( 闽ICP备07031922号  

GMT+8, 2019-7-19 12:53 , Processed in 0.456336 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.|Style by Coxxs

快速回复 返回顶部 返回列表