您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop后台菜单与权限管理修改说明
如萱2024-12-15Ecshop商城教程已有人查阅
导读1,admin/includes/inc_menu.php ECSHOP管理中心菜单数组--配置菜单组及URL2,languages/zh_cn/admin/common.php ECSHOP管理中心共用语言文件--配置菜单显示名
主要php文件:
1,admin/includes/inc_menu.php ECSHOP管理中心菜单数组--配置菜单组及URL
2,languages/zh_cn/admin/common.php ECSHOP管理中心共用语言文件--配置菜单显示名
3,admin/includes/inc_priv.php ECSHOP权限对照表--将菜单action与权限绑定
4,languages/zh_cn/admin/priv_action.php ECSHOP权限名称语言文件---配置权限显示的中文名
主要数据表:ecs_admin_action
这里用后台商品管理来说明这几个配置文件:权限:
1.ecs_admin_action 管理员权限表。权限以分组的形式存储,首先要添加一个权限管理的一级分组节点(此权限分组节点仅作为分组归类,没有实际权限控制作用),再添加所属的权限名。
配置摘要:
+-----------+-----------+------------------+------------+
| action_id | parent_id | action_code | relevance |
+-----------+-----------+------------------+------------+
| 1 | 0 | goods | |
| 21 | 1 | goods_manage | |
| 22 | 1 | remove_back | |
| 23 | 1 | cat_manage | |
| 24 | 1 | cat_drop | cat_manage |
| 25 | 1 | attr_manage | |
| 26 | 1 | brand_manage | |
| 27 | 1 | comment_priv | |
| 84 | 1 | tag_manage | |
| 70 | 1 | goods_type | |
| 94 | 1 | goods_auto | |
| 103 | 1 | virualcard | |
| 105 | 1 | picture_batch | |
| 106 | 1 | goods_export | |
| 107 | 1 | goods_batch | |
| 108 | 1 | gen_goods_script | |
+-----------+-----------+------------------+------------+
#第一条goods就是下面权限的父权限
2.priv_action.php 权限名称语言文件。设置权限的中文名称,一般用于在修改角色权限时显示中文权限名称。
配置摘要:
3.inc_menu.php 管理中心菜单数组。显示在后台左侧的菜单项。以多维数组形式来表示菜单的分级,第一维即是顶级菜单。
配置摘要:
配置摘要:
5.inc_priv.php 权限对照表。一个菜单指向的Action页可能只使用一个权限,也可能使用多个权限,Action对应多个权限时,使用数组来表示。
如代号02_goods_add的商品添加Action只调用了goods_manage权限,因此配置为:$purview['02_goods_add'] = 'goods_manage'; 而代号01_goods_list的商品列表页包含的操作多,因此调用多个权限:$purview['01_goods_list']= array('goods_manage', 'remove_back');
配置摘要:
ec内置两个函数:
admin_priv(权限名); 权限不通过时跳转的方式提示;
check_authz_json(权限名);权限不通过时返回json提示数据,一般与make_json_result 或 make_json_error 配合返回数据/错误信息使用。
6.admin/goods.php
代码摘要:
--------------------------------------------------------------------------------
【注意】
1,菜单组的权限控制不一定要与权限绑定,可以直接使用admin_priv(action_code)控制菜单指向的action的访问权限。
2,action_code就是权限名。
添加一个新后台菜单权限的流程:
1.在ecs_admin_action表中添加action信息;action_id parent_id action_code
222 0 test_action
223 222 test_child
2.inc_menu.php中添加菜单action和url
#[菜单组名][自定义菜单的action名]=action的url
4.在inc_priv.php新增对应 该action的权限对照名
6.编辑新增admin/test_action.php,代码如下:
3,languages/zh_cn/admin/common.php ECSHOP管理中心公用语言配置
1,admin/includes/inc_menu.php ECSHOP管理中心菜单数组--配置菜单组及URL
2,languages/zh_cn/admin/common.php ECSHOP管理中心共用语言文件--配置菜单显示名
3,admin/includes/inc_priv.php ECSHOP权限对照表--将菜单action与权限绑定
4,languages/zh_cn/admin/priv_action.php ECSHOP权限名称语言文件---配置权限显示的中文名
主要数据表:ecs_admin_action
这里用后台商品管理来说明这几个配置文件:权限:
1.ecs_admin_action 管理员权限表。权限以分组的形式存储,首先要添加一个权限管理的一级分组节点(此权限分组节点仅作为分组归类,没有实际权限控制作用),再添加所属的权限名。
配置摘要:
+-----------+-----------+------------------+------------+
| action_id | parent_id | action_code | relevance |
+-----------+-----------+------------------+------------+
| 1 | 0 | goods | |
| 21 | 1 | goods_manage | |
| 22 | 1 | remove_back | |
| 23 | 1 | cat_manage | |
| 24 | 1 | cat_drop | cat_manage |
| 25 | 1 | attr_manage | |
| 26 | 1 | brand_manage | |
| 27 | 1 | comment_priv | |
| 84 | 1 | tag_manage | |
| 70 | 1 | goods_type | |
| 94 | 1 | goods_auto | |
| 103 | 1 | virualcard | |
| 105 | 1 | picture_batch | |
| 106 | 1 | goods_export | |
| 107 | 1 | goods_batch | |
| 108 | 1 | gen_goods_script | |
+-----------+-----------+------------------+------------+
#第一条goods就是下面权限的父权限
2.priv_action.php 权限名称语言文件。设置权限的中文名称,一般用于在修改角色权限时显示中文权限名称。
配置摘要:
/* 权限管理的一级分组 */
$_LANG['goods'] = '商品管理';
//商品管理部分的权限
$_LANG['goods_manage'] = '商品添加/编辑';
$_LANG['remove_back'] = '商品删除/恢复';
$_LANG['cat_manage'] = '分类添加/编辑';
$_LANG['cat_drop'] = '分类转移/删除';
$_LANG['attr_manage'] = '商品属性管理';
$_LANG['brand_manage'] = '商品品牌管理';
$_LANG['comment_priv'] = '用户评论管理';
$_LANG['goods_type'] = '商品类型';
$_LANG['tag_manage'] = '标签管理';
$_LANG['goods_auto'] = '商品自动上下架';
$_LANG['topic_manage'] = '专题管理';
$_LANG['virualcard'] = '虚拟卡管理';
$_LANG['picture_batch'] = '图片批量处理';
$_LANG['goods_export'] = '商品批量导出';
$_LANG['goods_batch'] = '商品批量上传/修改';
$_LANG['gen_goods_script'] = '生成商品代码';
$_LANG['suppliers_goods'] = '供货商商品管理';
菜单:3.inc_menu.php 管理中心菜单数组。显示在后台左侧的菜单项。以多维数组形式来表示菜单的分级,第一维即是顶级菜单。
配置摘要:
$modules['02_cat_and_goods']['01_goods_list'] = 'goods.php?act=list'; // 商品列表
$modules['02_cat_and_goods']['02_goods_add'] = 'goods.php?act=add'; // 添加商品
$modules['02_cat_and_goods']['03_category_list'] = 'category.php?act=list';
$modules['02_cat_and_goods']['05_comment_manage'] = 'comment_manage.php?act=list';
$modules['02_cat_and_goods']['06_goods_brand_list'] = 'brand.php?act=list';
$modules['02_cat_and_goods']['08_goods_type'] = 'goods_type.php?act=manage';
$modules['02_cat_and_goods']['11_goods_trash'] = 'goods.php?act=trash'; // 商品回收站
$modules['02_cat_and_goods']['12_batch_pic'] = 'picture_batch.php';
$modules['02_cat_and_goods']['13_batch_add'] = 'goods_batch.php?act=add'; // 商品批量上传
$modules['02_cat_and_goods']['14_goods_export'] = 'goods_export.php?act=goods_export';
$modules['02_cat_and_goods']['15_batch_edit'] = 'goods_batch.php?act=select'; // 商品批量修改
$modules['02_cat_and_goods']['16_goods_script'] = 'gen_goods_script.php?act=setup';
$modules['02_cat_and_goods']['17_tag_manage'] = 'tag_manage.php?act=list';
$modules['02_cat_and_goods']['50_virtual_card_list'] = 'goods.php?act=list&extension_code=virtual_card';
$modules['02_cat_and_goods']['51_virtual_card_add'] = 'goods.php?act=add&extension_code=virtual_card';
$modules['02_cat_and_goods']['52_virtual_card_change'] = 'virtual_card.php?act=change';
$modules['02_cat_and_goods']['goods_auto'] = 'goods_auto.php?act=list';
4.common.php 管理中心共用语言文件。设置inc_menu中设置的菜单的中文名称,每一维都要设置名称。配置摘要:
/* 菜单分类部分 */
$_LANG['02_cat_and_goods'] = '商品管理';
/* 商品管理 */
$_LANG['01_goods_list'] = '商品列表';
$_LANG['02_goods_add'] = '添加新商品';
$_LANG['03_category_list'] = '商品分类';
$_LANG['04_category_add'] = '添加分类';
$_LANG['05_comment_manage'] = '用户评论';
$_LANG['06_goods_brand_list'] = '商品品牌';
$_LANG['07_brand_add'] = '添加品牌';
$_LANG['08_goods_type'] = '商品类型';
$_LANG['09_attribute_list'] = '商品属性';
$_LANG['10_attribute_add'] = '添加属性';
$_LANG['11_goods_trash'] = '商品回收站';
$_LANG['12_batch_pic'] = '图片批量处理';
$_LANG['13_batch_add'] = '商品批量上传';
$_LANG['15_batch_edit'] = '商品批量修改';
$_LANG['16_goods_script'] = '生成商品代码';
$_LANG['17_tag_manage'] = '标签管理';
$_LANG['18_product_list'] = '货品列表';
$_LANG['52_attribute_add'] = '编辑属性';
$_LANG['53_suppliers_goods'] = '供货商商品管理';
$_LANG['14_goods_export'] = '商品批量导出';
$_LANG['50_virtual_card_list'] = '虚拟商品列表';
$_LANG['51_virtual_card_add'] = '添加虚拟商品';
$_LANG['52_virtual_card_change'] = '更改加密串';
$_LANG['goods_auto'] = '商品自动上下架';
将菜单链接的Action与权限关联:5.inc_priv.php 权限对照表。一个菜单指向的Action页可能只使用一个权限,也可能使用多个权限,Action对应多个权限时,使用数组来表示。
如代号02_goods_add的商品添加Action只调用了goods_manage权限,因此配置为:$purview['02_goods_add'] = 'goods_manage'; 而代号01_goods_list的商品列表页包含的操作多,因此调用多个权限:$purview['01_goods_list']= array('goods_manage', 'remove_back');
配置摘要:
//商品管理权限
$purview['01_goods_list'] = array('goods_manage', 'remove_back');
$purview['02_goods_add'] = 'goods_manage';
$purview['03_category_list'] = array('cat_manage', 'cat_drop'); //分类添加、分类转移和删除
$purview['05_comment_manage'] = 'comment_priv';
$purview['06_goods_brand_list'] = 'brand_manage';
$purview['08_goods_type'] = 'attr_manage'; //商品属性
$purview['11_goods_trash'] = array('goods_manage', 'remove_back');
$purview['12_batch_pic'] = 'picture_batch';
$purview['13_batch_add'] = 'goods_batch';
$purview['14_goods_export'] = 'goods_export';
$purview['15_batch_edit'] = 'goods_batch';
$purview['16_goods_script'] = 'gen_goods_script';
$purview['17_tag_manage'] = 'tag_manage';
$purview['50_virtual_card_list'] = 'virualcard';
$purview['51_virtual_card_add'] = 'virualcard';
$purview['52_virtual_card_change'] = 'virualcard';
$purview['goods_auto'] = 'goods_auto';
在Action中判断管理员是否有改访问操作权限:ec内置两个函数:
admin_priv(权限名); 权限不通过时跳转的方式提示;
check_authz_json(权限名);权限不通过时返回json提示数据,一般与make_json_result 或 make_json_error 配合返回数据/错误信息使用。
6.admin/goods.php
代码摘要:
/*------------------------------------------------------ */
//-- 商品列表,商品回收站
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'list' || $_REQUEST['act'] == 'trash')
{
admin_priv('goods_manage');
........................................
/*------------------------------------------------------ */
//-- 修改商品货号
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'edit_goods_sn')
{
check_authz_json('goods_manage');
$goods_id = intval($_POST['id']);
$goods_sn = json_str_iconv(trim($_POST['val']));
/* 检查是否重复 */
if (!$exc->is_only('goods_sn', $goods_sn, $goods_id))
{
make_json_error($_LANG['goods_sn_exists']);
}
$sql="SELECT goods_id FROM ". $ecs->table('products')."WHERE product_sn='$goods_sn'";
if($db->getOne($sql))
{
make_json_error($_LANG['goods_sn_exists']);
}
if ($exc->edit("goods_sn = '$goods_sn', last_update=" .gmtime(), $goods_id))
{
clear_cache_files();
make_json_result(stripslashes($goods_sn));
}
}
经验分割线--------------------------------------------------------------------------------
【注意】
1,菜单组的权限控制不一定要与权限绑定,可以直接使用admin_priv(action_code)控制菜单指向的action的访问权限。
2,action_code就是权限名。
添加一个新后台菜单权限的流程:
1.在ecs_admin_action表中添加action信息;action_id parent_id action_code
222 0 test_action
223 222 test_child
2.inc_menu.php中添加菜单action和url
#[菜单组名][自定义菜单的action名]=action的url
$modules['17_action_test']['a_test_action'] = 'test_action.php?act=list';
$modules['17_action_test']['a_test_child'] = 'test_action.php?act=test_child';
3.在common.php中添加菜单中文名
#对应上述菜单的配置名
$_LANG['17_action_test'] = '测试菜单'; #顶级菜单(菜单组名)
$_LANG['a_test_action'] = '测试父权限 '; #子菜单
$_LANG['a_test_child'] = '测试子权限 ';
*此时刷新可以看到管理列表多出了测试菜单组。4.在inc_priv.php新增对应 该action的权限对照名
#权限对照名=权限名(action_code),权限对照名要对应菜单action名
$purview['a_test_action'] = 'test_action';
$purview['a_test_child'] = 'test_child';
5.在priv_action.php为action权限配置一个中文名。
#权限名(action_code)=权限中文名
$_LANG['test_action'] = '测试父权限 ';
$_LANG['test_child'] = '测试子权限 ';
*此时在角色管理可以看到多出了这两个权限中文名。6.编辑新增admin/test_action.php,代码如下:
1 <?php
2
3 /**
4 * ECSHOP 权限管理测试页
5 * $Author: GaZeon
6 */
7 define('IN_ECS', true);
8
9 require(dirname(__FILE__) . '/includes/init.php');
10
11
12 if ($_REQUEST['act'] == 'list')
13 {
14 /* 检查权限 */
15 admin_priv('test_action');
16
17 echo '访问权限通过,欢迎来到父权限测试';
18 }
19 else if ($_REQUEST['act'] == 'test_child')
20 {
21 /* 检查权限 */
22 admin_priv('test_child');
23
24 echo '访问权限通过,欢迎来到子权限测试';
25 }
可以自行使用不同的角色测试。3,languages/zh_cn/admin/common.php ECSHOP管理中心公用语言配置
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop安装常见报错的处理方法
在安装Ecshop的时候,会遇到几个问题:1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\ \ecshop\install\includes
ecshop模板开发标签及调用
描述:用于html转码,url转码,在没有转码的变量上转换单引号,十六进制转码,十六进制美化转码。默认是html转码。可选:html url quotes
ecshop后台分页功能修改
ecshop分页规则,分以下几个步骤1.点击类别,获取第一页获取默认分类列表数据2.点击“下一页”,采用ajax调取分页内容实例分析(比如订单列表分页admin/order.php)
ecshop购物车页面继续购物按钮变成回到上一步的修改方法
ecshop购物车页面继续购物按钮改成回到上一步的修改方法:大家都知道,ecshop 的购物车页面有的继续购物按钮是返回到首页的,而这样是非常不利于用户体验的
相关源码
-
自适应APP应用程序介绍推广落地页pbootcms网站源码下载移动应用开发商设计的营销型落地页模板,基于PbootCMS内核深度开发采用前沿响应式架构,无缝适配手机端操作习惯与PC端展示需求。查看源码 -
(自适应响应式)工业机床工程农业机械设备网站源码下载框架适用于工程机械、机床设备等工业领域。通过模块调整可快速转型为农业机械、物流设备展示系统。预留7种工业产品展示模板。查看源码 -
(自适应响应式)绿色环保材料设备科技类营销型网站pbootcms源码下载本模板基于PbootCMS开发,主要面向环保设备、环保材料及相关科技企业。采用HTML5+CSS3技术构建,具备响应式特性,确保在各类设备上均有良好展示效果。查看源码 -
帝国cms7.2淘宝客导购自媒体博客网站模板源码本模板基于帝国CMS7.2内核深度开发,为淘宝客、商品导购类自媒体及博客网站设计。通过可视化后台管理,可快速搭建具备商品推荐、比价功能的内容平台,帮助用户实现流量高效转化。查看源码 -
(自适应)平面设计网络工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为设计工作室、创意机构打造的作品展示解决方案。通过模块化布局与极简交互设计,呈现设计作品的视觉细节,支持作品分类、案例解析等多维度展示方式。查看源码 -
(自适应响应式)法律咨询律师事务所法务pbootcms源码下载为律师事务所、法律咨询机构设计,特别适合展示法律服务、律师团队和成功案例。采用响应式技术,确保在不同设备上都能提供专业的法律信息展示和咨询服务。查看源码
| 分享笔记 (共有 篇笔记) |
