ecshop商品分类增加自定义分类图!(不同分类展示不同广告必备)
首先我们来看看实际的效果:
(1)添加新的商品分类多了可以自定义上传的分类图
(2)添加完分类后,编辑分类可以修改、删除(选择不保留的时候)或重新上传自定义的分类图。完全不用怕占用你宝贵的空间
(3)当点击该分类后可以看到下面实际效果
本文的这种方法对分类广告的操作简便,但对EC原文件改动较大,适合有基础的朋友但不利于EC版本的升级。
另一种方法操作比较繁复一点,但对EC原文件改动很少,很适合EC版本升级和基础较弱的朋友。
核心提示:请大家在增加代码的时候一定要小心小心再小心!!看准是否正确的位置增加!因为我提供的行号有可能与你的行号不同!请尽量按查找的代码来进行增加!
好了现在我们开始实现这一功能:
一、执行以下SQL语句
alter table `ecs_category` add cat_img varchar(255) NOT NULL DEFAULT '';
复制代码
alter table `ecs_category` add cat_img_link varchar(255) NOT NULL DEFAULT '';
复制代码
二、用DW等软件找到网站目录/admin/category.php
(1)查找
$exc = new exchange($ecs->table("category"), $db, 'cat_id', 'cat_name');
复制代码
这一语句,并在该语句下面大约行20增加:
include_once(ROOT_PATH . '/includes/cls_image.php');
$image = new cls_image($_CFG['bgcolor']);
// 最大上传文件大小
$php_maxsize = ini_get('upload_max_filesize');
$htm_maxsize = '2M';
复制代码
(2)查找
$cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array();
复制代码
,并在该语句下面大约行111增加:
$cat['cat_img'] = ''; //自定义上传分类图
$cat['cat_img_link'] = !empty($_POST['cat_img_link']) ? trim($_POST['cat_img_link']) : '';
//检查是否有上传分类图片
if (isset($_FILES['cat_img']))
{
//如果有错误
if($_FILES['cat_img']['error'])
{
if ($_FILES['cat_img']['error'] == 0)
{
if (!$image->check_img_type($_FILES['cat_img']['type']))
{
sys_msg("上传的分类图类型无效", 1, array(), false);
}
}
elseif ($_FILES['cat_img']['error'] == 1)
{
sys_msg(sprintf("上传的分类图超过了大小", $php_maxsize), 1, array(), false);
}
elseif ($_FILES['cat_img']['error'] == 2)
{
sys_msg(sprintf("上传的分类图超过了大小", $htm_maxsize), 1, array(), false);
}
}
else //没有错误检查是否存在temp目录
{
if ($_FILES['cat_img']['tmp_name'] != 'none')
{
if (!$image->check_img_type($_FILES['cat_img']['type']))
{
sys_msg('无效的分类图片', 1, array(), false);
}
}
}
//如果上传了分类图,则进行相应处理
if ($_FILES['cat_img']['tmp_name'] != '' && $_FILES['cat_img']['tmp_name'] != 'none')
{
$catimg = $image->upload_image($_FILES['cat_img']); // 上传的商品色彩图
if ($catimg === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
else
{
$cat['cat_img'] = $catimg;
}
}
}
复制代码
(3)查找下一段
$cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array();
复制代码
并在该语句下面大约行323增加:
$issave_catimg = !empty($_POST['issave_catimg']) ? intval($_POST['issave_catimg']) : 1;
$cat['cat_img_link'] = !empty($_POST['cat_img_link']) ? trim($_POST['cat_img_link']) : '';
//检查是否有上传分类图片
if (isset($_FILES['cat_img']))
{
//如果有错误
if($_FILES['cat_img']['error'])
{
if ($_FILES['cat_img']['error'] == 0)
{
if (!$image->check_img_type($_FILES['cat_img']['type']))
{
sys_msg("上传的分类图类型无效", 1, array(), false);
}
}
elseif ($_FILES['cat_img']['error'] == 1)
{
sys_msg(sprintf("上传的分类图超过了大小", $php_maxsize), 1, array(), false);
}
elseif ($_FILES['cat_img']['error'] == 2)
{
sys_msg(sprintf("上传的分类图超过了大小", $htm_maxsize), 1, array(), false);
}
}
else //没有错误检查是否存在temp目录
{
if ($_FILES['cat_img']['tmp_name'] != 'none')
{
if (!$image->check_img_type($_FILES['cat_img']['type']))
{
sys_msg('无效的分类图片', 1, array(), false);
}
}
}
//如果上传了分类图,则进行相应处理
if ($_FILES['cat_img']['tmp_name'] != '' && $_FILES['cat_img']['tmp_name'] != 'none')
{
$catimg = $image->upload_image($_FILES['cat_img']); // 上传的商品色彩图
if ($catimg === false)
{
sys_msg($image->error_msg(), 1, array(), false);
}
else
{
$cat['cat_img'] = $catimg;
}
//检查是否存在上传的分类图,如果有则删除
$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);
}
}
}
if($issave_catimg == 2)
{
//检查是否存在上传的分类图,如果有则删除
$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);
$cat['cat_img'] = '';
}
}
复制代码
(4)查找
if ($cat_count == 0 && $goods_count == 0)
{
复制代码
,并在该行下面大约619增加:
//检查是否存在上传的分类图,如果有则删除
$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);
}
复制代码
三、用DW等软件打开网站目录/category.php
(1)查找
$smarty->display('category.dwt', $cache_id);
复制代码
,在该语句上面大约行396增加:
//获取自定义分类增加的信息
$cat_id = intval($_REQUEST['id']);
$sql = "SELECT * FROM " .$GLOBALS['ecs']->table('category'). " WHERE cat_id='$cat_id' LIMIT 1";
$cat_info = $GLOBALS['db']->getRow($sql);
if($cat_info)
{
$cat_img = $cat_info['cat_img'];
$cat_img_link = $cat_info['cat_img_link'];
$smarty->assign('cat_img', $cat_img);
$smarty->assign('cat_img_link', $cat_img_link);
}
复制代码
四、打开网站目录/admin/templates/category_info.htm
(1)找到
<tr>
<td class="label">{$lang.cat_desc}:</td>
<td>
<textarea name='cat_desc' rows="6" cols="48">{$cat_info.cat_desc}</textarea>
</td>
</tr>
复制代码
在该代码下面增加:
<tr>
<td class="label">自定义分类图:</td>
<td>
<input name="cat_img" type="file" />
{if $cat_info.cat_img}
<img src="images/yes.gif" border="0" />
<span style="color:#F00">是否保留当前的分类图:</span>
是<input type="radio" name="issave_catimg" id="issave_catimg" value="1" checked="checked" />
否<input type="radio" name="issave_catimg" id="issave_catimg" value="2" />
{else}
<img src="images/no.gif" />
{/if}
</td>
</tr>
<tr>
<td class="label">分类图链接地址:</td>
<td>
<input name="cat_img_link" type="text" value='{$cat_info.cat_img_link}' maxlength="200" size="50" />
</td>
</tr>
复制代码
五、打开网站目录/themes/当前使用的模板/category.dwt
在合适的位置增加(注意这里的模板代码请跟据自己实际情况做出修改):
{if $cat_img}
<div style="width:750px;">
<a href="{$cat_img_link}" target="_blank"><img src="{$cat_img}" /></a>
</div>
<div class="blank5"></div>
{/if}
文章转载:http://www.gehut.cn/