
На главной странице сайт travelbilet.ru, который я успешно перевел на drupal с целью его SEO и вывода в топ, красуется панель с 4 вкладками. Эти вкладки - 3 отдельных страницы и 1 views. Реализовано это следующим образом.
Нам потребуются следующие ингридиенты:
- модуль Tabs и сотоварищи (jQuery UI Tabs);
- 3 наполненные ноды и их id
- Объект views, который настроен так, как нам хочется
Код вставляется в страницу (ноду), которая объединит в своем теле вышеупомянутые 3 страницы и объект views.
<?
$show_teaser = FALSE;
$show_body = TRUE;
$node1 = node_load(108); //ID первой ноды
node_prepare($node1);
node_invoke($node1, 'view', $show_teaser, $show_body);
$node1_view = theme('node', $node1, $show_teaser, $show_body);
$node2 = node_load(109); //ID второй ноды
node_prepare($node2);
node_invoke($node2, 'view', $show_teaser, $show_body);
$node2_view = theme('node', $node2, $show_teaser, $show_body);
$node3 = node_load(6); //ID третьей ноды
node_prepare($node3);
node_invoke($node3, 'view', $show_teaser, $show_body);
$node3_view = theme('node', $node3, $show_teaser, $show_body);
$view = views_get_view('superfront'); //нужный views
$view->set_display('page');
$view->display_handler->set_option('items_per_page', 9);
$view->display_handler->set_option('use_pager', false);
$node4_view = $view->preview();
//Теперь у нас есть 4 уже темизированных вывода. Далее обернем их в массив и отрендерим.
$form['avia'] = array(
'#type' => 'tabset',
'#attributes' => array('class'=>'fronttab'),
);
$form['avia']['tab1'] = array(
'#type' => 'tabpage',
'#title' => 'Авиабилеты <span class="tabsmall">// забронировать и купить</span>',
'#content' => $node1_view
);
$form['avia']['tab2'] = array(
'#type' => 'tabpage',
'#title' => 'Ж-Д билеты <span class="tabsmall">// расписание поездов</span>',
'#content' => $node2_view
);
$form['avia']['tab3'] = array(
'#type' => 'tabpage',
'#title' => 'Компания Нордвест',
'#content' => $node3_view,
'#attributes' => array('class'=>'ui-tabs-selected active selected'),
);
$form['avia']['tab4'] = array(
'#type' => 'tabpage',
'#title' => 'Спецпредложения <span class="tabsmall">// скидки и акции</span>',
'#content' => $node4_view
);
print(tabs_render($form)); //Финальный рендер


