官方微博: 腾讯  
首页 > ECSHOP教程 > ECSHOP二次开发 > ECSHOP二次开发教程 > ecshop商品分类增加自定义分类图!(不同分类展示不同广告必备)

ecshop商品分类增加自定义分类图!(不同分类展示不同广告必备)

ECSHOP教程 / ecshop 教程网(www.ecshop119.com) 2012-05-26

首先我们来看看实际的效果:
(1)添加新的商品分类多了可以自定义上传的分类图

(2)添加完分类后,编辑分类可以修改、删除(选择不保留的时候)或重新上传自定义的分类图。完全不用怕占用你宝贵的空间

(3)当点击该分类后可以看到下面实际效果


本文的这种方法对分类广告的操作简便,但对EC原文件改动较大,适合有基础的朋友但不利于EC版本的升级。


另一种方法操作比较繁复一点,但对EC原文件改动很少,很适合EC版本升级和基础较弱的朋友。

核心提示:请大家在增加代码的时候一定要小心小心再小心!!看准是否正确的位置增加!因为我提供的行号有可能与你的行号不同!请尽量按查找的代码来进行增加!

好了现在我们开始实现这一功能:
一、执行以下SQL语句

  1. alter table  `ecs_category` add cat_img varchar(255) NOT NULL DEFAULT '';
复制代码
  1. alter table  `ecs_category` add cat_img_link varchar(255) NOT NULL DEFAULT '';
复制代码

二、用DW等软件找到网站目录/admin/category.php
(1)查找

  1. $exc = new exchange($ecs->table("category"), $db, 'cat_id', 'cat_name');
复制代码

这一语句,并在该语句下面大约行20增加:

  1. include_once(ROOT_PATH . '/includes/cls_image.php');
     
  2. $image = new cls_image($_CFG['bgcolor']);
     
  3. // 最大上传文件大小
     
  4. $php_maxsize = ini_get('upload_max_filesize');
     
  5. $htm_maxsize = '2M';
复制代码

(2)查找

  1. $cat['cat_recommend']  = !empty($_POST['cat_recommend'])  ? $_POST['cat_recommend'] : array();
复制代码

,并在该语句下面大约行111增加:

  1. $cat['cat_img']       = '';  //自定义上传分类图
     
  2. $cat['cat_img_link']  = !empty($_POST['cat_img_link'])     ? trim($_POST['cat_img_link']) : '';
     
  3. //检查是否有上传分类图片
     
  4. if (isset($_FILES['cat_img']))
     
  5. {
     
  6.   //如果有错误
     
  7.   if($_FILES['cat_img']['error'])
     
  8.   {
     
  9.    if ($_FILES['cat_img']['error'] == 0)
     
  10.    {
     
  11.     if (!$image->check_img_type($_FILES['cat_img']['type']))
     
  12.     {
     
  13.      sys_msg("上传的分类图类型无效", 1, array(), false);
     
  14.     }
     
  15.    }
     
  16.    elseif ($_FILES['cat_img']['error'] == 1)
     
  17.    {
     
  18.     sys_msg(sprintf("上传的分类图超过了大小", $php_maxsize), 1, array(), false);
     
  19.    }
     
  20.    elseif ($_FILES['cat_img']['error'] == 2)
     
  21.    {
     
  22.     sys_msg(sprintf("上传的分类图超过了大小", $htm_maxsize), 1, array(), false);
     
  23.    }
     
  24.   }
     
  25.   else  //没有错误检查是否存在temp目录
     
  26.   {
     
  27.    if ($_FILES['cat_img']['tmp_name'] != 'none')
     
  28.    {
     
  29.     if (!$image->check_img_type($_FILES['cat_img']['type']))
     
  30.     {
     
  31.      sys_msg('无效的分类图片', 1, array(), false);
     
  32.     }
     
  33.    }
     
  34.   }
     
  35.   
     
  36.   //如果上传了分类图,则进行相应处理
     
  37.   if ($_FILES['cat_img']['tmp_name'] != '' && $_FILES['cat_img']['tmp_name'] != 'none')
     
  38.   {
     
  39.    
     
  40.    $catimg   = $image->upload_image($_FILES['cat_img']); // 上传的商品色彩图
     
  41.    if ($catimg === false)
     
  42.    {
     
  43.     sys_msg($image->error_msg(), 1, array(), false);
     
  44.    }
     
  45.    else
     
  46.    {
     
  47.     $cat['cat_img'] = $catimg;
     
  48.    }
     
  49.   }
     
  50. }
复制代码

(3)查找下一段

  1. $cat['cat_recommend']  = !empty($_POST['cat_recommend'])  ? $_POST['cat_recommend'] : array();
复制代码

并在该语句下面大约行323增加:

  1. $issave_catimg       = !empty($_POST['issave_catimg']) ? intval($_POST['issave_catimg']) : 1;
     
  2. $cat['cat_img_link']  = !empty($_POST['cat_img_link'])     ? trim($_POST['cat_img_link']) : '';
     

  3.  
  4.          //检查是否有上传分类图片
     
  5.          if (isset($_FILES['cat_img']))
     
  6.          {
     
  7.                    //如果有错误
     
  8.                    if($_FILES['cat_img']['error'])
     
  9.                    {
     
  10.                             if ($_FILES['cat_img']['error'] == 0)
     
  11.                             {
     
  12.                                      if (!$image->check_img_type($_FILES['cat_img']['type']))
     
  13.                                      {
     
  14.                                                sys_msg("上传的分类图类型无效", 1, array(), false);
     
  15.                                      }
     
  16.                             }
     
  17.                             elseif ($_FILES['cat_img']['error'] == 1)
     
  18.                             {
     
  19.                                      sys_msg(sprintf("上传的分类图超过了大小", $php_maxsize), 1, array(), false);
     
  20.                             }
     
  21.                             elseif ($_FILES['cat_img']['error'] == 2)
     
  22.                             {
     
  23.                                      sys_msg(sprintf("上传的分类图超过了大小", $htm_maxsize), 1, array(), false);
     
  24.                             }
     
  25.                    }
     
  26.                    else  //没有错误检查是否存在temp目录
     
  27.                    {
     
  28.                             if ($_FILES['cat_img']['tmp_name'] != 'none')
     
  29.                             {
     
  30.                                      if (!$image->check_img_type($_FILES['cat_img']['type']))
     
  31.                                      {
     
  32.                                                sys_msg('无效的分类图片', 1, array(), false);
     
  33.                                      }
     
  34.                             }
     
  35.                    }
     
  36.                   
     
  37.                    //如果上传了分类图,则进行相应处理
     
  38.                    if ($_FILES['cat_img']['tmp_name'] != '' && $_FILES['cat_img']['tmp_name'] != 'none')
     
  39.                    {
     
  40.                             $catimg   = $image->upload_image($_FILES['cat_img']); // 上传的商品色彩图
     
  41.                             if ($catimg === false)
     
  42.                             {
     
  43.                                      sys_msg($image->error_msg(), 1, array(), false);
     
  44.                             }
     
  45.                             else
     
  46.                             {
     
  47.                                      $cat['cat_img'] = $catimg;
     
  48.                             }
     
  49.                            
     
  50.                             //检查是否存在上传的分类图,如果有则删除
     
  51.                             $cat_img = $db->getOne('SELECT cat_img FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");
     
  52.                             if($cat_img != '' && is_file('../' . $cat_img))
     
  53.                             {
     
  54.                                      @unlink('../' . $cat_img);
     
  55.                             }        
     
  56.                    }
     
  57.          }
     
  58.          
     
  59.          if($issave_catimg == 2)
     
  60.          {
     
  61.                    //检查是否存在上传的分类图,如果有则删除
     
  62.                    $cat_img = $db->getOne('SELECT cat_img FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");
     
  63.                    if($cat_img != '' && is_file('../' . $cat_img))
     
  64.                    {
     
  65.                             @unlink('../' . $cat_img);
     
  66.                             $cat['cat_img'] = '';
     
  67.                    }
     
  68.          }
复制代码

(4)查找

  1. if ($cat_count == 0 && $goods_count == 0)
     
  2. {
复制代码

,并在该行下面大约619增加:

  1.                    //检查是否存在上传的分类图,如果有则删除
     
  2.                    $cat_img = $db->getOne('SELECT cat_img FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");
     
  3.                    if($cat_img != '' && is_file('../' . $cat_img))
     
  4.                    {
     
  5.                             @unlink('../' . $cat_img);
     
  6.                    }
复制代码

三、用DW等软件打开网站目录/category.php
(1)查找

  1. $smarty->display('category.dwt', $cache_id);
复制代码

,在该语句上面大约行396增加:

  1. //获取自定义分类增加的信息
     
  2. $cat_id = intval($_REQUEST['id']);
     
  3. $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('category'). " WHERE cat_id='$cat_id' LIMIT 1";
     
  4. $cat_info  = $GLOBALS['db']->getRow($sql);
     
  5. if($cat_info)
     
  6. {
     
  7. $cat_img      = $cat_info['cat_img'];
     
  8. $cat_img_link = $cat_info['cat_img_link'];
     
  9. $smarty->assign('cat_img', $cat_img);
     
  10. $smarty->assign('cat_img_link', $cat_img_link);
     
  11. }
复制代码

四、打开网站目录/admin/templates/category_info.htm
(1)找到

  1.       <tr>
     
  2.         <td class="label">{$lang.cat_desc}:</td>
     
  3.         <td>
     
  4.           <textarea name='cat_desc' rows="6" cols="48">{$cat_info.cat_desc}</textarea>
     
  5.         </td>
     
  6.       </tr>
复制代码

在该代码下面增加:

  1. <tr>
     
  2. <td class="label">自定义分类图:</td>
     
  3. <td>
     
  4. <input name="cat_img" type="file" />
     
  5. {if $cat_info.cat_img}
     
  6. <img src="images/yes.gif" border="0" />
     
  7. <span style="color:#F00">是否保留当前的分类图:</span>
     
  8. 是<input type="radio" name="issave_catimg" id="issave_catimg" value="1" checked="checked" />
     
  9. 否<input type="radio" name="issave_catimg" id="issave_catimg" value="2" />
     
  10. {else}
     
  11. <img src="images/no.gif" />
     
  12. {/if}
     
  13. </td>
     
  14. </tr>
     
  15. <tr>
     
  16. <td class="label">分类图链接地址:</td>
     
  17. <td>
     
  18. <input name="cat_img_link" type="text" value='{$cat_info.cat_img_link}' maxlength="200" size="50" />
     
  19. </td>
     
  20. </tr>
复制代码

五、打开网站目录/themes/当前使用的模板/category.dwt
在合适的位置增加(注意这里的模板代码请跟据自己实际情况做出修改):

  1. {if $cat_img}
     
  2.       <div style="width:750px;">
     
  3.        <a href="{$cat_img_link}" target="_blank"><img src="{$cat_img}" /></a>      
     
  4.       </div>
     
  5.       <div class="blank5"></div>     
     
  6. {/if}

转载请注明:ECshop119模板屋-ECshop教程网(全国最专业的ECSHOP插件制作商-专业ECSHOP二次开发)

帮助目录

在线反馈

可以将问题或建议反馈给我们。

提交在线反馈

与网友交流ECSHOP开发修改。

加入QQ群交流