удалить вкладку "тема" в блоках для определенных ролей
Я хотел бы скрыть/удалить вкладки тематических блоков для определенных ролей в drupal. Например, администратор может редактировать оба блока тем, но другие роли могут редактировать только блоки, доступные в их текущей теме.
Как вы можете видеть на картинке, я хотел бы скрыть СЕМЬ от других ролей, которые не являются Администратором? Любые идеи.
Спасибо!
2
2 answers
function HOOK_menu_alter(&$items) {
global $user;
if(in_array('administrator', $user->roles) == FALSE && in_array('admin/structure/block/list/seven', array_keys($items)) == TRUE) {
// This allows the path to still be registered but not displayed
$items['admin/structure/block/list/seven']['type'] = MENU_CALLBACK;
}
}
2
Author: Chad Payne, 2016-02-17 19:07:01
Ваш ответ привел меня к правильному решению.
Правильный ответ таков:
function remove_tab_for_non_admins_menu_alter(&$items) {
if(isset($items['admin/structure/block/list/seven'])) {
$items['admin/structure/block/list/seven']['access callback'] = 'remove_tab_for_non_admin_check_access';
}
}
function remove_tab_for_non_admin_check_access() {
global $user;
return in_array('administrator', $user->roles);
}
1
Author: Michael, 2016-02-18 21:12:18