ecshop批量添加商品分类
你是否有苦恼过用ecshop添加数十个,数百个或更多商品分类,批量添加商品分类的这个功能就非常不错,分类之间使用半角逗号分隔。
开发思路:在默认的添加分类基础上,input 输入框修 改成 textarea 文本框,文本框的下面加上提示语“多个分类之间用英文的逗号隔开”,提交后foreach循环插入数据库,End!
1,admin/templates/category_info.htm,查找
<input type='text' name='cat_name' maxlength="20" value='{$cat_info.cat_name|escape:html}' size='27' /> <font color="red">*</font>
修改成
<textarea name='cat_name' rows="3" cols="48">{$cat_info.cat_name|escape:html}</textarea> <font color="red">*</font> <span class="notice-span" {if $help_open}style="display:block" {else} style="display:none" {/if} id="noticeCat_name">{$lang.notice_cat_name}</span>
2,admin/category.php,查找
/*------------------------------------------------------ */ //-- 商品分类添加时的处理 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'insert') { /* 权限检查 */ admin_priv('cat_manage'); /* 初始化变量 */ $cat['cat_id'] = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0; $cat['parent_id'] = !empty($_POST['parent_id']) ? intval($_POST['parent_id']) : 0; $cat['sort_order'] = !empty($_POST['sort_order']) ? intval($_POST['sort_order']) : 0; $cat['keywords'] = !empty($_POST['keywords']) ? trim($_POST['keywords']) : ''; $cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : ''; $cat['measure_unit'] = !empty($_POST['measure_unit']) ? trim($_POST['measure_unit']) : ''; $cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : ''; $cat['show_in_nav'] = !empty($_POST['show_in_nav']) ? intval($_POST['show_in_nav']): 0; $cat['style'] = !empty($_POST['style']) ? trim($_POST['style']) : ''; $cat['is_show'] = !empty($_POST['is_show']) ? intval($_POST['is_show']) : 0; $cat['grade'] = !empty($_POST['grade']) ? intval($_POST['grade']) : 0; $cat['filter_attr'] = !empty($_POST['filter_attr']) ? implode(',', array_unique(array_diff($_POST['filter_attr'],array(0)))) : 0; $cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array(); if (cat_exists($cat['cat_name'], $cat['parent_id'])) { /* 同级别下不能有重复的分类名称 */ $link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)'); sys_msg($_LANG['catname_exist'], 0, $link); } if($cat['grade'] > 10 || $cat['grade'] < 0) { /* 价格区间数超过范围 */ $link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)'); sys_msg($_LANG['grade_error'], 0, $link); } /* 入库的操作 */ if ($db->autoExecute($ecs->table('category'), $cat) !== false) { $cat_id = $db->insert_id(); if($cat['show_in_nav'] == 1) { $vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'"); $vieworder += 2; //显示在自定义导航栏中 $sql = "INSERT INTO " . $ecs->table('nav') . " (name,ctype,cid,ifshow,vieworder,opennew,url,type)". " VALUES('" . $cat['cat_name'] . "', 'c', '".$db->insert_id()."','1','$vieworder','0', '" . build_uri('category', array('cid'=> $cat_id), $cat['cat_name']) . "','middle')"; $db->query($sql); } insert_cat_recommend($cat['cat_recommend'], $cat_id); admin_log($_POST['cat_name'], 'add', 'category'); // 记录管理员操作 clear_cache_files(); // 清除缓存 /*添加链接*/ $link[0]['text'] = $_LANG['continue_add']; $link[0]['href'] = 'category.php?act=add'; $link[1]['text'] = $_LANG['back_list']; $link[1]['href'] = 'category.php?act=list'; sys_msg($_LANG['catadd_succed'], 0, $link); } }
改成
/*------------------------------------------------------ */ //-- 商品分类添加时的处理 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'insert') { /* 权限检查 */ admin_priv('cat_manage'); /* 初始化变量 */ $cat['cat_id'] = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0; $cat['parent_id'] = !empty($_POST['parent_id']) ? intval($_POST['parent_id']) : 0; $cat['sort_order'] = !empty($_POST['sort_order']) ? intval($_POST['sort_order']) : 0; $cat['keywords'] = !empty($_POST['keywords']) ? trim($_POST['keywords']) : ''; $cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : ''; $cat['measure_unit'] = !empty($_POST['measure_unit']) ? trim($_POST['measure_unit']) : ''; //$cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : ''; $cat['show_in_nav'] = !empty($_POST['show_in_nav']) ? intval($_POST['show_in_nav']): 0; $cat['style'] = !empty($_POST['style']) ? trim($_POST['style']) : ''; $cat['is_show'] = !empty($_POST['is_show']) ? intval($_POST['is_show']) : 0; $cat['grade'] = !empty($_POST['grade']) ? intval($_POST['grade']) : 0; $cat['filter_attr'] = !empty($_POST['filter_attr']) ? implode(',', array_unique(array_diff($_POST['filter_attr'],array(0)))) : 0; $cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array(); $cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : ''; $arrCatName = explode("," ,$cat['cat_name']); foreach($arrCatName as $arrCatNameValue) { $cat['cat_name'] = $arrCatNameValue; if (cat_exists($cat['cat_name'], $cat['parent_id'])) { /* 同级别下不能有重复的分类名称 */ $link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)'); sys_msg($_LANG['catname_exist'], 0, $link); } if($cat['grade'] > 10 || $cat['grade'] < 0) { /* 价格区间数超过范围 */ $link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)'); sys_msg($_LANG['grade_error'], 0, $link); } /* 入库的操作 */ if ($db->autoExecute($ecs->table('category'), $cat) !== false) { $cat_id = $db->insert_id(); if($cat['show_in_nav'] == 1) { $vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'"); $vieworder += 2; //显示在自定义导航栏中 $sql = "INSERT INTO " . $ecs->table('nav') . " (name,ctype,cid,ifshow,vieworder,opennew,url,type)". " VALUES('" . $cat['cat_name'] . "', 'c', '".$db->insert_id()."','1','$vieworder','0', '" . build_uri('category', array('cid'=> $cat_id), $cat['cat_name']) . "','middle')"; $db->query($sql); } insert_cat_recommend($cat['cat_recommend'], $cat_id); } } admin_log($_POST['cat_name'], 'add', 'category'); // 记录管理员操作 clear_cache_files(); // 清除缓存 /*添加链接*/ $link[0]['text'] = $_LANG['continue_add']; $link[0]['href'] = 'category.php?act=add'; $link[1]['text'] = $_LANG['back_list']; $link[1]['href'] = 'category.php?act=list'; sys_msg($_LANG['catadd_succed'], 0, $link); }
3,最后一步,languages/zh_cn/admin/category.php,下面添加
$_LANG['notice_cat_name'] = '如果您需要添加多个分类,请在分类之间使用半角逗号分隔。';
阅读剩余
版权声明:
作者:z1988
链接:https://www.z1988.com/279.html
文章版权归作者所有,未经允许请勿转载。
作者:z1988
链接:https://www.z1988.com/279.html
文章版权归作者所有,未经允许请勿转载。
THE END