サイト管理者に列を削除する権限がないため、phpcms は列を削除できません。解決策: まず「admin.class.php」ファイルを見つけて開き、次にサイト管理者の削除権限を追加します。列; 最後に「category.php」ファイルを変更するだけで十分です。
phpcms は列を削除できません? PHPCMS サイト管理者には列を削除する権限がありません
phpcms V9 (スーパーを除く)管理者 、他の管理者には列を削除または変更する権限がありません。これはシステムのバグである可能性があります。
分析:
PHPCMS v9 は、権限を判断するときに、admin_role_priv テーブルに記録されている権限のみを決定します。つまり、設定した「列の権限」に関係なく、ロールを設定するときに行う「権限設定」です。 admin:check_priv() から、このメソッドが列の権限をまったく考慮していないことがわかります。そのため、スーパー管理以外でログインした場合、列を変更したり削除したりすると、「この項目を操作する権限がありません。」というメッセージが表示されます。
場所: phpcms/modules/admin/classes/admin.class.php
推奨: 「phpcms チュートリアル」
解決策:
1. /phpcms/modules/admin/classes/admin.class.php を検索し、おそらく 177 行目で
$r =$privdb->get_one(array('m'=>ROUTE_M,'c'=>ROUTE_C,'a'=>$action,'roleid'=>$_SESSION['roleid'],'siteid'=>$siteid));
を見つけ、文の下に次の文を追加します:
//添加站点管理员的删除栏目权限 by:醒木 if(ROUTE_C == 'category'){ $catid = $_GET['catid'] ? $_GET['catid'] : $_POST['catid']; //获取角色当前权限设置 pc_base::load_app_class('role_cat', '', 0); $priv = role_cat::get_roleid($_SESSION['roleid'], $siteid); if($priv[$catid][$action]) $r = true; }
2. /phpcms/modules/admin/category.php で
foreach ($arrchildid_arr as $arr_v) { $this->update_priv($arr_v, $_POST['priv_groupid'], 0); }
を見つけて、次のように変更します:
foreach ($arrchildid_arr as $arr_v) { $this->update_priv($arr_v, $_POST['priv_roleid']); //添加站点管理员的删除栏目权限 by:醒木 $this->update_priv($arr_v, $_POST['priv_groupid'], 0); }
ヒント:
商品変更列を追加するときは、商品を削除するための対応する権限を必ず確認してください。
以上がphpcms で列を削除できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。