如果在ECshop后台批量添加过大量类目的人都能体会到是多么的不方便(这点还是要说一下ECshop的产品经理,细节上还是要多注意),每次添加都需要在几百个类目里面找到要添加的父类目也是一个麻烦事,比如我的 Tao Fashion 站,里面一共有400多个类目
每次添加一个新类目,即使是同一父类目下的,都需要从头再找一遍,非常不方便,设置类目的顺序的时候,也要自己记着这个父类目下已经添加几个了,记着下一个添加的时候+1,经常弄错。
咱是新人类,要用技术的办法解决这个问题,实现在Category List上可以直接选择某个类目在他下面添加子类目,添加的时候自动选择好这个父类目,然后Sort Order在目前最大值的基础上加1,添加成功后,在成功页点击“继续添加”,也自动选择好上次添加的父类目,Sort Order +1,这样做了以后,时间至少缩短4/5。
照我的说明依葫芦画瓢吧,比较简单:
1、在后台Admin目录下,打开category.php,找到“//-- 添加商品分类”这一段,修改代码如下,用于在加载类目添加页时,传入要选择的父类目ID和最大Sort Order + 1的值。
//-- 添加商品分类 if ($_REQUEST[‘act‘] == ‘add‘) { admin_priv(‘cat_manage‘); if ($_REQUEST[‘cat_id‘] == ‘‘) { $cat_id = 0; } else { $cat_id = $_REQUEST[‘cat_id‘]; } $smarty->assign(‘ur_here‘, $_LANG[‘04_category_add‘]); $smarty->assign(‘action_link‘, array(‘href‘ => ‘category.php?act=list‘, ‘text‘ => $_LANG[‘03_category_list‘])); $smarty->assign(‘goods_type_list‘, goods_type_list(0)); // 取得商品类型 $smarty->assign(‘attr_list‘, get_attr_list()); // 取得商品属性 $smarty->assign(‘cat_select‘, cat_list(0, $cat_id , true)); $smarty->assign(‘form_act‘, ‘insert‘); //取得最大的Sort_order $sortorder = $db->getOne("SELECT max(sort_order) FROM ". $ecs->table(‘category‘) . " WHERE parent_id = $cat_id"); $smarty->assign(‘cat_info‘, array(‘is_show‘ => 1,‘sort_order‘ => $sortorder+1)); assign_query_info(); $smarty->display(‘category_info.htm‘); }
2、在后台Admin目录下,打开category.php,找到//-- 商品分类添加时的处理” 这一段,修改代码如下,用于在添加成功后,点击“继续添加”链接时,自动传入上次添加的父类目ID和Sort Order+1值。
修改这一句就可以了:
$link[0][‘href‘] = ‘category.php?act=add&cat_id=‘.$cat[‘parent_id‘];
3、在后提Admin/templates/目录下,打开category_list.htm文件
在
<a href="category.php?act=move&cat_id={$cat.cat_id}">{$lang.move_goods}</a> |
之前添加一行以下代码,用于可以在类目List页直接点击某个类目,并在这个类目下添加子类目
<a href="category.php?act=add&cat_id={$cat.cat_id}">Add</a> |
好了,基本上大功告成了,贴张截图,后台界面我自己略有调整,上面的修改出来的样式不一定一致哈
类目List截图
在类目List上点击某个类目的“Add”后的截图
转载:http://blog.sina.com.cn/s/blog_70ea94110101h5dh.html