БАЗА:
wp 2.3.2
плагин WP Shopping Cart (E-Commerce) v3.5.1 (http://www.instinct.co.nz/) – онлайн-магазин
плагин Role Manager v2.2.2 (http://www.im-web-gefunden.de/wordpress-plugins/role-manager/) – управление ролями и способностями
ОПИСАНИЕ СИТУАЦИИ:
Управление настройками плагина WP Shopping Cart (E-Commerce) осуществляется через созданное им в админ-панели меню e-Commerce (Доска объявлений Написать Управление Комментарии Ссылки Внешний вид Плагины Пользователи Настройки e-Commerce)
В wp существует набор предопределённых способностей (http://codex.wordpress.org/Roles_and_Capabilities#Capabilities) для формирования ролей пользователей. Установлен плагин Role Manager для комфортного управления ролями и способностями
ЦЕЛЬ:
Создать новую способность, которая определяла бы доступ к пункту меню e-Commerce для изменения настроек магазина. По аналогии можно будет создавать способности для доступа к меню любых плагинов (AdSence, Sape и т.д.) и поручать управление ими отдельным пользователям
ЗАТРУДНЕНИЯ:
Пытался выяснить, где определён перечень уже существующих способностей (типа switch_themes, edit_plugins, moderate_comments и т.п.). Оказалось, что они упоминаются в файлах
/wp-admin/includes/schema.php
/wp-admin/menu.php
и в базе данных wp, таблица wp-options, строки wp_user_roles (создаётся при инсталляции wp) и IWG_RoleMan_CapList (создаётся при инсталляции плагина Role Manager)
Пример строки из menu.php:
$menu[25] = array(__(‘Presentation’), ‘switch_themes’, ‘themes.php’);
Т.е. нужно создать что-то типа
array(__(‘e-Commerce’), ‘e_commerce’, ‘admin.php?page=wp-shopping-cart/display-log.php’);
Role Manager позволяет задать имя (e_commerce) для новой способности. Но совершенно неясно, где надо прописывать "псевдоним" (e-Commerce), который отображается в настройках Role Manager (название, понятное для человека) и путь
Думал сделать по аналогии со стандартными capabilities. Фраза Delete Published Pages ("псевдоним" способности удалять опубликованные страницы) отображается в списке способностей в настройках Role Manager, но… эта фраза – Delete Published Pages – не содержится ни в одном из файлов в папке WordPress со всеми подпапками! Не нашёл я её и в базе данных… логически не понимаю, как такое может быть %-p
В строке IWG_RoleMan_CapList таблицы wp_options базы вордпресса лежит:
a:37:{i:0;s:16:"activate_plugins";i:1;s:12:"create_users";i:2;s:19:"delete_others_pages";i:3;s:19:"delete_others_posts";i:4;s:12:"delete_pages";i:5;s:12:"delete_posts";i:6;s:20:"delete_private_pages";
ну и так далее… в строке wp_users_roles что-то типа того, т.е. никакого объявления путей – сплошная вордпрессовская интуиция )))
БУДУ РАД ЛЮБЫМ ИДЕЯМ! =Р
ЗАРАНЕЕ СПАСИБО!
P.S. ПОХОЖИЕ СИТУАЦИИ:
http://wordpress.org/support/topic/159762