Как вставить баннер (блок) между нодами на главной странице
пт., 05/09/2008 - 14:47 — admin
Требуется вставить рекламный блок на главной странице между анонсами новостей. К примеру, между третьей и четвертой новостью. Чтобы этот блок как-бы разбивал материалы на главной сверху и снизу. Решение найдено простое:
1. Устанавливаем Views
2. Создаем views для главной страницы "frontpage" с настройками под главную страницу. Используются:
Название: * frontpage Описание: Базовый вид главной страницы.
Страница: Подготовить страничный вид
URL: frontpage
Типы видов: Список вида
Использовать разбиение на страницы
Не включать "Главную страницу"
Материалов - сколько нужно.
Поля: Материалы Тело Обработчки "Полный Текст"
Аргументы: Материал Селектор Ленты По умолчанию "Отобразить все значения", Заголовок "Заполняете сами"
Фильтры: Материал: Главная страница, Материал: Опубликовано
Критерии сортировки: Материал: Приклеено, Материал: Время создания.
3. Создаем блок для баннера. Называем как хотим.
4. Самое важное. Вставляем нижеприведенный код (функцию) в файл template.php темы, в конец файла.
Функция:
"function phptemplate_views_view_list_frontpage($view, $nodes, $type) {
$block = module_invoke('block', 'block', 'view', 39);
$block1 = module_invoke('block', 'block', 'view', НОМЕР ДРУГОГО БЛОКА);
$j=0;
foreach ($nodes as $i => $node) {
if($j == 3)$output .= "<div class='front_banner'>".$block['content']."</div>";
if($j == НОМЕР НОДЫ)$output .= "<div class='front_banner'>".$block1['content']."</div>";
$j++;
$node = node_load($node->nid);
$output .= node_view($node,true);
}
return $output;
}
"
"39" - это номер блока, который был создан.
Эта функция позволяет вставить два баннера в какое угодно место среди новостей на главной странице сайта