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']);

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

3) Чуть выше мы видим строчки вида:

<?php
//...
if ($title):

<h1...>
endif;

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

4) Идем в info файл шаблона (для темы Bartik это файл bartik.info) и вписываем туда свой новый регион:

<?php
//...
regions[content_front] = Content Front

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

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

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

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

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

Рецепт:

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

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

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

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

5) ???

6) PROFIT!!!