[转帖]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为基础)
|