(转)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,红包管理
============================
 
下面开始制作
 
 
1、数据库写入 insert into ecs_admin_action(parent_id,action_code) vals(3,'user_add')
(3为会员管理的ID,后面为要设置的新权限名称)
 
2、在lang ges/zh_cn/admin/priv_action.php中找到”//会员管理” 插入
   $_LANG['user_add'] = '添加诚购人';   
   (这个是为了使得在分配权限的时候,显示这一项的名称)
3、
  (1)、在lang ges\zh_cn\admin\common.php找到会员管理,插入$_LANG['11_user_add'] = '添加诚购人';
       (这个是为了在管理平台左侧管理列表中显示这一项)
 
  (2)、admin/incl?s/inc_menu.php 文件中添加对应的二级栏目的数组链接
       $modules['08_members']['11_user_add']              = 'users.php?act=addMgod';
 
  (3)、打开admin/incl?s/inc_priv.php  找到“会员权限管理”添加一行$purview
 
['11_user_add'] = 'user_add';
 
 
4、权限问题
 
   由于权限判断在admin\incl?s\lib_main.php里,当权限判断失败,则返回FALSE并跳转上一页面,
 
如果将function admin_priv($priv_str, $msg_type = '' , $msg_output = tr)中$msg_output参数改
 
为false,则不进行跳转,但是要想实现跳转功能,则需要再各种控制权限的地方做跳转功能,很麻烦。
 
(1)、于是想到了个傻办法,打开admin\users.php,找到“添加会员帐号”,会发现里面第一行就是“
 
检查权限”,也就是说在验证完权限失败后将直接跳过这个语句块,所以干脆并将整个elseif段复制下来
 
,粘贴后改为
 
//-- 自定义添加会员帐号,MGOD
elseif ($_REQST['act'] == 'addMgod')
{
    
    admin_priv('user_add'); //这个对应插入数据库中的user_add
$user = array(  'rank_points'   => $_CFG['register_points'],
                    'pay_points'    => $_CFG['register_points'],
                    'sex'           => 0,
                    'credit_line'   => 0
                    );
    
    $sql = 'SELECT * FROM ' . $ecs->table('reg_fields') . ' WHERE type < 2 AND display = 1 
 
AND id != 6 ORDER BY dis_order, id';
    $extend_info_list = $db->getAll($sql);
    $smarty->assign('extend_info_list', $extend_info_list);
 
    $smarty->assign('ur_here',          $_LANG['11_user_add']);//对应上
    $smarty->assign('action_link',      array('text' => $_LANG['11_user_add'], //对应
 
上'href'=>'index.php?act=menu'));
    $smarty->assign('form_action',      'insertMgod');//一会在INSERT方法上也要做手脚
    $smarty->assign('user',             $user);
    $smarty->assign('special_ranks',    get_rank_list(tr));
 
    assign_qry_info();
    $smarty->display('user_info.htm');//输出到哪个admin\templates文件中,这里不用改,一会直
 
接打开模板做修改
}
 
 
(2)、再将“添加会员帐号”的esleif语句块复制并将第一行admin_priv('users_manage');改为同上面
 
一样的admin_priv('user_add'); 验证。
 
(3)、打开admin\templates\user_info.htm,如果这里不修改,则上面添加会员功能实现了,但是无输
 
入密码框。搜索{if $form_action eq "insert"},改为{if $form_action eq "insert"||$form_action 
 
eq "insertMgod"}  ,使得跟上面   $smarty->assign('form_action',      'insertMgod');里的内容
 
一样。
 
打完收工!抛砖引玉,以此类推!由于本站还没完全做好,所以不做任何广告~~拿去用吧!
posted @ 2012-03-19 09:15  前望  阅读(317)  评论(0编辑  收藏  举报