Как выводить на главную только блоки?

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

Аватар пользователя meydan meydan 25 сентября 2010 в 1:35

Привет!

Я создал несколько типов материалов(новости, статьи ну и т.д.). Создал для каждого типа свой блок (через views) который выводит по три последних материала.
Теперь мне надо вывести эти блоки на главную. Причем так чтобы там не было стандартного вывода материалов с постраничной навигацией. Только блоки.

Варианты удаления $content не предлагать Smile

Заранее спасибо.

Комментарии

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 25 сентября 2010 в 3:19

Но лучше так

в template.php темы:

<?php

function названиетемы_preprocess_page(&$vars$hook) { 
  if (
$vars['is_front']) {  
  
$vars['content'] = '<div class="left-col">'.$vars['front_left_col'] .'</div>';
  
$vars['content'] .= '<div class="right-col">'.$vars['front_right_col'] .'</div>'
  }
}

?>

В этом примере, мы подменяем $content на главной двумя регионами (можно хоть сто) - $front_left_col и $front_right_col, в которые можно вставлять блоки

Всё что нужно, это прописать $front_left_col и $front_right_col в .info темы, тогда они станут видимы на странице управления блоками и в них можно определять блоки

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

Аватар пользователя Full_acсess Full_acсess 25 сентября 2010 в 8:04

еще вариант, если у вас используется главная страница по умолчанию создаете в папке используемой темы файл page-front.tpl.php (если не по умолчанию тогда page-node-[nid].tpl.php), в него кидаете то же самое что и в page.tpl.php только там где у вас $content заменяете на свои регионы которые можете прописать в .info файле, да и вообще можете менять что хотите, даже сделать альтернативную верстку для главной станицы.

ЗЫ: не забывайте чистить кеш

Аватар пользователя Arslaman Arslaman 1 октября 2010 в 11:23

То что вы заменяете $content на нужное вам не убирает те тяжелые действия по сбору контента из базы. Если я что-то делаю, то стараюсь это делать качественно. Как друпалу дать правильный пинок, чтобы при генерации этой страницы друпал не делал лишние действия?

Аватар пользователя neitrino neitrino 25 ноября 2011 в 19:10

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:

<?php

function названиетемы_preprocess_page(&$vars, $hook) {
if ($vars['is_front']) {
$vars['content'] = '

'.$vars['front_left_col'] .'

';
$vars['content'] .= '

'.$vars['front_right_col'] .'

';
}
}

?>

А в 7-ке что-то не работает, даже с учетом новых обозначений переменных. На месте вывода пишет Array. Если только одним блоком переопределить, то все ок.
Может кто подскажет решение для 7-ки?

Аватар пользователя Слава Юдаков Слава Юдаков 25 ноября 2011 в 20:30

есть способ проще.

вот как сделано на aquaria-info.ru:

  • через views сделано представление "ПОСЛЕДНИЕ СТАТЬИ" и назначено страницей с адресом frontpage
  • эта страница frontpage через настройки сайта назначена страницей по умолчанию
  • ну и все это обвешано дополнительными блоками с условиями «вывода на главной»

те есть, не надо руками править темплейтов, не нужны дополнительные модули, работает в любой версии друпала