[原创]ECshop订单操作权限的开发

2016-07-07 15:22 来源:www.chinab4c.com 作者:ecshop专家

[转帖]ECshop订单操作权限的开发
--------------------------------------------------------------------------------------
作者:xiaodu

发表: 2008-9-21

网站: http://www.eblhost.cn/forum/viewthread.php?tid=18
--------------------------------------------------------------------------------------

ECshop是当前最流行的电子商城软件,而且由于完全开源,对于我们二次开发出符合我们自身特点的系统,非常有利。下面就以一个简单的实例,描述一次关于订单操作权限的添加过程。

一 基础知识

首先我们需要了解以下一些基本的知识:
1.ECshop的所有可用权限列表存储在数据库’ecs_admin_action’表中
2.权限判断通过admin_priv函数实现
3.管理员的权限设置可以通过后台编辑管理员信息来分配

二 权限详解

1、商品管理,共有9个权限项目,以下分别是:
goods_manage,商品添加/编辑
remove_back,商品删除/恢复
cat_manage,分类添加/编辑
cat_drop,分类转移/删除
attr_manage,商品属性管理
brand_manage,商品品牌管理
comment_priv,用户评论管理
tag_manage,标签管理
goods_type,商品类型

2、文章管理,共有6个权限项目,以下分别是:
article_cat,文章分类管理
article_manage,文章内容管理
shopinfo_manage,网店信息管理
shophelp_manage,网店帮助管理
vote_priv,在线调查管理
topic_manage,专题管理

3、会员管理,共有8个权限项目,以下分别是:
feedback_priv,会员留言管理
integrate_users,会员数据整合
sync_users,同步会员数据
users_manage,会员管理
users_drop,会员删除
user_rank,会员等级管理
surplus_manage,会员余额管理
account_manage,会员账户管理

4、权限管理,共有7个权限项目,以下分别是:

template_manage,模板管理
admin_manage,管理员添加/编辑
admin_drop,删除管理员
allot_priv,分派权限
logs_manage,管理日志列表
logs_drop,删除管理日志
agency_manage,办事处管理

5、系统设置,共有9个权限项目,以下分别是:
shop_config,商店设置
ship_manage, 配送方式管理
payment,支付方式管理
shiparea_manage,配送区域管理
area_manage,地区列表管理
friendlink,友情链接管理
db_backup,数据库备份
db_renew,数据库恢复
flash_manage,Flash 播放器管理

6、订单管理,共有10个权限项目,以下分别是:
order_os_edit,编辑订单状态
order_ps_edit,编辑付款状态
order_ss_edit,编辑发货状态
order_edit,添加编辑订单
order_view,查看未完成订单
order_view_finished,查看已完成订单
repay_manage,退款申请管理
booking,缺货登记管理
sale_order_stats,订单销售统计
client_flow_stats,客户流量统计
7、促销管理,共有6个权限项目,以下分别是:
snatch_manage,夺宝奇兵
ad_manage,广告管理
gift_manage,赠品管理
card_manage,祝福贺卡
pack,商品包装
bonus_manage,红包管理

三 订单操作权限的开发

上面提到的权限列表是我们比较常用的一些,我们具体来看下针对订单操作权限,主要是

order_os_edit,编辑订单状态
order_ps_edit,编辑付款状态
order_ss_edit,编辑发货状态
order_edit,添加编辑订单
order_view,查看未完成订单

假如我们某一个管理员需要”PDF打印订单”权限,(假设”PDF打印”功能已经实现),我们来看以下具体的操作步骤

1.首先在数据库ecs_admin_action中插入一行code为”pdf_manage”,parents_id为6(sql语句)

2.在languages/zh_cn/admin/priv_action.php中找到”//订单管理部分权限”,在下面新加一行
$_LANG['pdf_manage'] = ‘PDF打印管理’;
3.在后台编辑某管理员权限页面,我们可以看到这个选项,分配给他。

当然这个时候该管理员还没有真正拥有这个权限。打开admin/order.php 搜索$priv_list(大概在2950行)
修改代码为以下部分:

/* 取得订单操作权限 */
$actions = $_SESSION['action_list'];
if ($actions == ‘all’)
{
$priv_list= array(’os’ => true, ’ss’ => true, ‘ps’ => true, ‘edit’ => true,‘pdf_manage’=>true);
//如果是拥有所有权限(比如admin),分配他PDF打印权限,当然如果你希望是特定的某一个人,这行可以不加
}
else
{
$actions = ‘,’ . $actions . ‘,’;
$priv_list= array(
‘os’ => strpos($actions, ‘,order_os_edit,’) !== false,
’ss’ => strpos($actions, ‘,order_ss_edit,’) !== false,
‘ps’ => strpos($actions, ‘,order_ps_edit,’) !== false,
‘edit’=> strpos($actions, ‘,order_edit,’) !== false,
‘pdf_manage’=> strpos($actions, ‘,pdf_manage,’) !== false

);
}
if ($priv_list['pdf_manage'])
{
$list['pdf_manage'] = true; // 确认
}
最后,在模板admin/templates/order_info.htm中找到合适的位置添加如下代码:
{if $operable_list.pdf_manage}
<input name=”pdf_creat” type=”submit” value=”{$lang.pdf_creat}” class=”button” />
{/if}
好了一次简单的”订单操作权限”扩展功能就完成,接下来该做什么了呢?呵呵,还不是该去喝口茶的时候
测试–花费更多的时间测试以保证你所做的一切是可用的。这个更重要~

xiaodu@eblhost.cn



(注:以上代码均以ECshop当前最新版本2.60为基础)




回答:
强.这样的修改权限.收藏

强悍的贴。。经典收藏了。。

先收藏,以后备用

没话说,收藏先!

多谢鼓励

修改了一个小错误


------------
http://bbs.ecshop.com/thread-67388-1-1.html
http://bbs.ecshop.com/thread-69730-1-1.html


楼主能不能教一下如何能够实现,给新添加的管理员用户设置了相应权限时,登录后台时隐藏其该管理员没有权限管理的选项。

就是说能不能设了那个些权限,登录后台后在“菜单”列表里只能看到那些拥有权限的项目菜单。

谢谢!

想给编辑一个广告发布的权限,不知道在那里设置,如何设置?好像在后台权限设置中没有这一项.

没话说,收藏先!www.qiyajun.cn

好贴顶顶先..

支持,ec能人,我喜欢

喜欢,收藏先。。发现发贴已经不用验证码了。。呵呵,升级了。

好强悍······我就是不会;请加我QQ帮忙指点下··谢谢!我订单存在很大问题;QQ:245448001

好帖,一定要收藏!