Задача
При просмотре документа типа 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" (Очистить кеш данных) внизу страницы.
- Готово
Друпал 5
Для того, чтобы реализовать это в Drupal5, вам нужно переопределить метод “theme_book_navigation” в вашем файле template.php.
Скопируйте эту функцию из файла “book.module” и замените “theme” на имя вашей темы как обычно.
Для удаления "дерева" (tree) - просто закомментируйте эту строку:
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.
Комментарии
метод переопределения понравился. что еще кнопка очистки кэша делает непонятно.. но когда в базе чистишь все таблицы кэшей - переопределение не происходит - скорее всего не запускается считывание реестра модулей.
вот вопрос как вывести дерево в нужное место? не под материалом а так? встретил много слов по этому поводу - реальной информации очень мало...
book-navigation.tpl.php получается встраивается в контент... и переопределить местоположение вывода у меня получилось только закрыв 3
перед выводом дерева нод и с мясом удалив навигацию предыдущие-следующий...
<?php if ($tree || $has_links): ?>
<?php endif; ?>
решение мне не нравится.. но в горячке перед НГ ничего более путного пок не рождается.. хотя есть еще 15 часов
Эта навигация встраивается в перменную -$content.
Не могу найти, где это делается.
Вообще надо, что бы навигация была за пределами
div class="content".
Не кто не разбирался с этим?
тоже интересно