xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Ярлыки (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
Похожие записи

Комментарии RSS

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

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

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

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании