功能很簡單,不過是很多人想要的.見圖:
現在開始第一步:
進入MYSQL,在表 v9_category_priv 里面加一個新字段:is_model tinyint(1) 型,默認為0;
第二步:在語言包里加幾個字段:
phpcms/languages/zh-cn/admin.lang.php 里加:
$LANG['member_group_private'] = '會員模型權限';
$LANG['member_group_name'] = '會員模型名稱';
然后在admin的模型文件里:
phpcms/modules/admin/templates/category_edit.tpl.php 和
phpcms/modules/admin/templates/category_add.tpl.php
這里以 category_edit.tpl.php 為例,在line:263下插入代碼:
- <tr><td colspan=2><hr style="border:1px dotted #F2F2F2;"></td>
- </tr>
- <tr>
- <th width="200"><?php echo L('member_group_private')?>:</th>
- <td>
- <table width="100%" class="table-list">
- <thead>
- <tr>
- <th align="left"><?php echo L('member_group_name');?></th><th><?php echo L('allow_vistor');?></th><th><?php echo L('allow_contribute');?></th>
- </tr>
- </thead>
- <tbody>
- <?php
- $group_cache = getcache('member_model','commons');
- foreach($group_cache as $_key=>$_value) {
- if($_value['groupid']==1) continue;
- ?>
- <tr>
- <td><?php echo $_value['name'];?></td>
- <td align="center"><input type="checkbox" name="priv_membermodel[]" <?php echo $this->check_category_priv('visit',$_value['modelid'],0);?> value="visit,<?php echo $_value['modelid'];?>" ></td>
- <td align="center"><input type="checkbox" name="priv_membermodel[]" <?php echo $this->check_category_priv('add',$_value['modelid'],0);?> value="add,<?php echo $_value['modelid'];?>" ></td>
- </tr> //Vevb.com
- <?php }?>
- </tbody>
- </table>
- </td>
- </tr>
第三步,現在修改持行文件:
phpcms/modules/admin/category.php
在里面的每一行 $this->update_priv($catid, $_POST['priv_groupid'],0);下面都插一行:
$this->update_priv($catid, $_POST['priv_membermodel'],0,1,1);
再修改一下該頁面的一個function,代碼如下:
- private function update_priv($catid,$priv_datas,$is_admin = 1,$is_model = 0,$isdel = 0) {
- $this->priv_db = pc_base::load_model('category_priv_model');
- if($isdel==0){$this->priv_db->delete(array('catid'=>$catid,'is_admin'=>$is_admin));}
- if(is_array($priv_datas) && !emptyempty($priv_datas)) {
- foreach ($priv_datas as $r) {
- $r = explode(',', $r);
- $action = $r[0];
- $roleid = $r[1];
- $this->priv_db->insert(array('catid'=>$catid,'roleid'=>$roleid,'is_admin'=>$is_admin,'is_model'=>$is_model,'action'=>$action,'siteid'=>$this->siteid));
- }
- }
- }
到這里,后臺的這個小功能算是完成了,下面修改前臺頁面.
第四步:這里我們只舉例“在線投稿”,打開持行文件:
phpcms/modules/member/content.php
將其中代碼替換:
- if($cat['siteid']==$siteid && $cat['child']==0 && $cat['type']==0 && $priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) break;
- //替換為:
- if($cat['siteid']==$siteid && $cat['child']==0 && $cat['type']==0 && $priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add')) && $priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['modelid'], 'is_model'=>1, 'action'=>'add'))) break;
- if (!$priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
下面也添加一行:
- if (!$priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['modelid'], 'is_model'=>1, 'action'=>'add'))) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
這樣就完成了.
新聞熱點
疑難解答