Drupal → Как отключить Toolbar, но оставить Shortcuts

15.08.2012

Ярлыки (Shortcuts) это хороший способ держать на виду самые необходимые ссылки, но есть одна проблема — они не работают без Toolbar. Т.е. если у определённой роли отобрать право access toolbar, то ярлыки пропадут тоже. Выход:

1. Создаём модуль

2. Копируем в папку модуля файл modules/toolbar/toolbar.tpl.php

3. Редактируем скопированный файл:

<div id="toolbar" class="<?php print $classes; ?> clearfix">
  <?php if ($user->uid == 1) { ?>
    <div class="toolbar-menu clearfix">
      <?php print render($toolbar['toolbar_home']); ?>
      <?php print render($toolbar['toolbar_user']); ?>
      <?php print render($toolbar['toolbar_menu']); ?>
      <?php if ($toolbar['toolbar_drawer']) { ?>
        <?php print render($toolbar['toolbar_toggle']); ?>
      <?php } ?>
    </div>
  <?php } ?>

  <div class="<?php echo $toolbar['toolbar_drawer_classes']; ?>">
    <?php print render($toolbar['toolbar_drawer']); ?>
  </div>
</div>

здесь я добавил проверку на админа.

4. Добавляем в код модуля:

/**
 * Implements helper_theme_registry_alter().
 */
function MODULENAME_theme_registry_alter(&$theme_registry) {
  $theme_registry['toolbar']['path'] = $theme_registry['toolbar']['theme path'] = drupal_get_path('module', 'MODULENAME');
}

5. Сбрасываем кэш.

До:

Страница с тулбаром и ярлыками

После:

Страница без тулбара, но с ярлыками

Можно конечно ограничиться копированием toolbar.tpl.php в папку темы, но тогда тулбар будет появляться на админских страницах, где используется Seven.

По материалам Как переопределить функцию темизации в своём модуле.

Написанное актуально для
Drupal 7
Похожие записи

Комментарии

andypost@drupal.org
16.08.2012, 03:34

Первый хороший пост о тулбаре! Его есть куда развивать, да и Дрис писал недавно о респонсив версии, пока всё в рамках спарка.

я думала люди делятся на две категории: admin_menu(_source) или admin. Оказалось, ещё ещё и третья категория :)

Странное решение. У меня тоже admin_menu

а я просто через ксс в файле modules/toolbar/toolbar.css отключал дислей
#toolbar {display:none;}

Добавить комментарий