Удалить содержание из документа типа book

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

Аватар пользователя VladSavitsky VladSavitsky 21 мая 2008 в 0:46

Задача

При просмотре документа типа book снизу выводится навигация по книге - дочерние документы, а также предыдущий, следующий документы и "вверх" на один уровень.
Нужно удалить эту навигацию.

Решение

Друпал 6

Варианты:

  • Исправление шаблона навигации модуля book
  • Вариант, который будет работать после обновления версии Друпал.

Исправление шаблона навигации модуля book

Можно подправить шаблон в папке системного модуля. Недостаток в том, что после обновления версии Друпал нужно будет заново вносить эти изменения.

  • Перейдите в папку модулей Друпал: …/drupal/modules/book
  • Найдите book-navigation.tpl.php и сделайте резервную копию в той же папке (book-navigation.tpl.php-backup)
  • Откройте файл и удалите в нём весь код. А именно:
    <?php if ($tree || $has_links): ?>
      <div id="book-navigation-<?php print $book_id; ?>" class="book-navigation">
        <?php print $tree; ?>

        <?php if ($has_links): ?>
        <div class="page-links clear-block">
          <?php if ($prev_url) : ?>
            <a href="<?php print $prev_url; ?>" class="page-previous" title="<?php print t('Go to previous page'); ?>"><?php print t('‹ ') . $prev_title; ?></a>
          <?php endif; ?>
          <?php if ($parent_url) : ?>
            <a href="<?php print $parent_url; ?>" class="page-up" title="<?php print t('Go to parent page'); ?>"><?php print t('up'); ?></a>
          <?php endif; ?>
          <?php if ($next_url) : ?>
            <a href="<?php print $next_url; ?>" class="page-next" title="<?php print t('Go to next page'); ?>"><?php print $next_title . t(' ›'); ?></a>
          <?php endif; ?>
        </div>
        <?php endif; ?>

      </div>
    <?php endif; ?>

  • Проверьте получен ли нужный результат
    • Если нет - восстановите файл из резервной копии.
    • Если да - наслаждайтесь.

Вариант, который будет работать после обновления версии Друпал

Используя переопределение тем, вы может применить этот метод и он будет работать даже после обновления версии Друпал.

  • Перейдите в папку модуля book: drupal/modules/book
  • Скопируйте файл book-navigation.tpl.php в папку вашей темы (ищите вашу тему примерно по такому пути: sites/all/themes/theme_name/
  • Измените новый book-navigation.tpl.php и удалите этот код: <?php print $tree; ?>
  • Из-за нового реестра тем(theme registry), эти изменения не будут видны сразу, - вам нужно открыть страницу example.com/admin/settings/performance и нажать кнопку "Clear cached data" (Очистить кеш данных) внизу страницы.
  • Готово Smile

Друпал 5

Для того, чтобы реализовать это в Drupal5, вам нужно переопределить метод “theme_book_navigation” в вашем файле template.php.
Скопируйте эту функцию из файла “book.module” и замените “theme” на имя вашей темы как обычно.

Для удаления "дерева" (tree) - просто закомментируйте эту строку:

$tree = book_tree($node->nid);

Drupal’s link function strips out the text of the navigation links because it doesn’t like the arrow symbols this uses. Simply change them to “<” and “>” and it should work without a problem.

Использованные материалы

Remove Table of Contents from Drupal Book

Оригинал статьи: Удалить содержание из документа типа book.

Комментарии

Аватар пользователя spim spim 31 декабря 2008 в 8:17

метод переопределения понравился. что еще кнопка очистки кэша делает непонятно.. но когда в базе чистишь все таблицы кэшей - переопределение не происходит - скорее всего не запускается считывание реестра модулей.

вот вопрос как вывести дерево в нужное место? не под материалом а так? встретил много слов по этому поводу - реальной информации очень мало...

book-navigation.tpl.php получается встраивается в контент... и переопределить местоположение вывода у меня получилось только закрыв 3

перед выводом дерева нод и с мясом удалив навигацию предыдущие-следующий...

<?php if ($tree || $has_links): ?>

<?php print $tree; ?>

<?php endif; ?>

решение мне не нравится.. но в горячке перед НГ ничего более путного пок не рождается.. хотя есть еще 15 часов Smile

Аватар пользователя cpu cpu 17 марта 2009 в 11:58

Эта навигация встраивается в перменную -$content.
Не могу найти, где это делается.
Вообще надо, что бы навигация была за пределами
div class="content".
Не кто не разбирался с этим?