[РЕШЕНО] Admin menu только на определенной теме оформления

Главные вкладки

Аватар пользователя remmor remmor 19 мая 2014 в 16:16

Есть прекрасный модуль Administration menu, который намного меню управления, удобнее даже семерочного. Одна проблема - оно показывается везде независимо от темы оформления, что бывает очень неудобно. Может кто-нибудь знает решение, чтобы его привязать только в нужным темам - или хотя бы только к теме, выбранной для администрирования?
PS Решил патчем. Файл admin_menu.module, текущая версия 7.x-3.0-rc4, начиная со строки 155
Вместо

<?php function admin_menu_page_build(&$page) {
  if (!
user_access('access administration menu') || admin_menu_suppress(FALSE)) {
    return;
?>

ставим

<?php function admin_menu_page_build(&$page) {
    global 
$theme;
  if (!
user_access('access administration menu') || admin_menu_suppress(FALSE) || variable_get('admin_theme') !== $theme) {
    return;
?>

Получаем сокрытие меню во всех темах, кроме определенным админским.

Комментарии

Аватар пользователя remmor remmor 19 мая 2014 в 17:40

"Lotar" wrote:
а в чем проблема?его только администратор по умолчанию видит.

Это тоже неудобно, при разработке. Решил патчем.

Аватар пользователя drupby drupby 19 мая 2014 в 18:03

"remmor" wrote:
PS Решил патчем.

зачем в модуль лезть , если то же самое можно решить с помощью hook_page_alter в своем модуле или в template.php той темы, для которой его не нужно отображать

Аватар пользователя remmor remmor 20 мая 2014 в 11:52

"drupby" wrote:
зачем в модуль лезть , если то же самое можно решить с помощью hook_page_alter в своем модуле или в template.php той темы, для которой его не нужно отображать

Приведите пример как. Без танцев с бубном. Но не сокрытием через css - а полным убиранием кода

Аватар пользователя drupby drupby 20 мая 2014 в 15:36

"remmor" wrote:
Приведите пример как. Без танцев с бубном. Но не сокрытием через css - а полным убиранием кода

/**
 * Implements hook_page_alter().
 */

function MYMODULE_page_alter(&$page) {
  global $theme;
  if (!user_access('access administration menu') || variable_get('admin_theme') !== $theme) {
    $page['page_bottom']['admin_menu']['#access'] = FALSE;
  }
}