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

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家



好久没发点东西上来咯!今天有空发点实用的上来呵呵~~Join it!

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


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


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


当然实现这种分类广告展示还有另外一种方法请参考:
http://bbs.ecshop.com/viewthread.php?tid=91717&extra=&page=1这一贴的回复第2页29楼


本贴的这种方法对分类广告的操作简便,但对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. if ($_FILES['cat_img']['tmp_name'] != '' && $_FILES['cat_img']['tmp_name'] != 'none')
  37. {

  38. $catimg= $image->upload_image($_FILES['cat_img']); // 上传的商品色彩图
  39. if ($catimg === false)
  40. {
  41. sys_msg($image->error_msg(), 1, array(), false);
  42. }
  43. else
  44. {
  45. $cat['cat_img'] = $catimg;
  46. }
  47. }
  48. }
复制代码


(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. 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. if ($_FILES['cat_img']['tmp_name'] != '' && $_FILES['cat_img']['tmp_name'] != 'none')
  37. {
  38. $catimg= $image->upload_image($_FILES['cat_img']); // 上传的商品色彩图
  39. if ($catimg === false)
  40. {
  41. sys_msg($image->error_msg(), 1, array(), false);
  42. }
  43. else
  44. {
  45. $cat['cat_img'] = $catimg;
  46. }

  47. //检查是否存在上传的分类图,如果有则删除
  48. $cat_img = $db->getOne('SELECT cat_img FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");
  49. if($cat_img != '' && is_file('../' . $cat_img))
  50. {
  51. @unlink('../' . $cat_img);
  52. }
  53. }
  54. }

  55. if($issave_catimg == 2)
  56. {
  57. //检查是否存在上传的分类图,如果有则删除
  58. $cat_img = $db->getOne('SELECT cat_img FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");
  59. if($cat_img != '' && is_file('../' . $cat_img))
  60. {
  61. @unlink('../' . $cat_img);
  62. $cat['cat_img'] = '';
  63. }
  64. }
复制代码

(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}
复制代码


试试为自己的分类添加自定义上传的分类图吧!

大家觉得好的话就顶顶吧!HAVE FUN!





分类页的广告?

是的!分类页自定义广告!

不错的东西
支持一下

谢谢楼主
请教下哦,下面代码加了以后,后台产品分类提示:Parse error: syntax error, unexpected T_ELSE in E:\work2009\ecshop\ECShop_V2.7.0_UTF8_Release0720\upload\admin\category.php on line 716


//检查是否存在上传的分类图,如果有则删除

$cat_img = $db->getOne('SELECT cat_img FROM ' .$ecs->table('category'). " WHERE cat_id='$cat_id'");

if($cat_img != '' && is_file('../' . $cat_img))

{

@unlink('../' . $cat_img);

}

楼主很强大~~~

7# maxtoo

这位朋友你的语法肯定错误了请注意看图片一定要在“{”的下面增加啊:

谢谢楼住,是我位置加错咯

很好 很强大!

做个记号备用,谢谢楼主

这个非常强大。赶快测试一下多谢分享

就先拿这个小试牛刀了

厉害啊!!