December 1, 2011

Drupal 7. Сообщение об отсутствии материалов на главной.

Всем привет! Не так давно публиковал решение задачи по убиранию с главной страницы приветственной надписи и сообщения о том что «ни одного материала еще не создано» (главная страница сайта целиком состоит из блоков views’ов). Тогда я написал здесь жутко извращенный рецепт и даже на drupal.ru это прокомментировали так - «у вас мозг воспален» =)

Публикую более элегантный способ на который были получены подсказки:

  1. Создаем в templates новый шаблон page—front.tpl.php (я просто скопировал его из page.tpl.php)
  2. Находим строчки с отображением региона content -
<?php
//...
print render($page['content']);

и исправляем на:

<?php
//...
print render($page['content_front']);

Здесь можно было бы просто удалить эти строчки, но для удобства расположения вьюсов я создал новый регион отображаемый только на главной.

  1. Чуть выше мы видим строчки вида:
    <?php
    //...
    if ($title):
    
    <h1...>
    endif;

Их спокойно удаляем так как они то как раз и отвечают за вывод заголовка.

  1. Идем в info файл шаблона (для темы Bartik это файл bartik.info) и вписываем туда свой новый регион:
<?php
//...
regions[content_front] = Content Front
  1. Сбрасываем кэш

  2. На главной чисто =) А в структуре сайта появился новый регион для добавления блоков на главную — Content Front

Думаю этот вариант намного лучше будет =) Парсер съел скобки у php. Так что не забудьте их поставить в нужных местах.

Собственно извращение:

Не так давно столкнулся с задачей убирания сообщения об отсутствии материалов на главной странице Drupal-сайта. Такое происходит при выводе данных сторонними модулями. На том проекте вывод материалов на главной странице целиком реализован на блоках Views. Все бы хорошо, да прямо в центре страницы красовалась надпись об отсутствии материалов на главной. Немного погуглив нашел 2 способа с иззвращениями, но затем придумал свой третий извращенский путь:

Рецепт:

  1. Идем в “Типы материалов” и создаем новый тип “Заглушка”, машинное имя для него пусть будет zagg. Поля для него можно не редактировать.

  2. Создаем в папке templates вашей темы пустой файл node–zagg.tpl.php

  3. Сбрасываем кэш. Нужно для того чтобы у нового типа данных применялся для отображения свежесозданный шаблон.

  4. Создаем новый материал с типом данных “Заглушка” и отмечаем галочкой его вывод на главную.

  5. ???

  6. PROFIT!!!

Другие проекты:

hmdw.me

rhamdeew © 2026