[РЕШЕНО]Настройка Magic Tabs

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

Аватар пользователя kpv_dnepr kpv_dnepr 16 декабря 2009 в 21:24

Помогите разобраться с модулем Magic Tabs, я сам не программист, по этому где то не доганяю!

Инструкция гласит следующее:
Добавить в блок этот код, который вызывае функцию magic_tabs_example_callback

<?php print magic_tabs_get('magic_tabs_example_callback'); ?>

Эта функция
<?php
function magic_tabs_example_callback($active = 0, $a1, $a2) {
$tabs[] = array(
'title' => t('First magic tab'),
'content' => t('%param: Content of first magic tab', array('%param' => $a1)),
);
$tabs[] = array(
'title' => t('Second magic tab'),
'content' => t('%param: Content of the second magic tab', array('%param' => $a2)),
);
$tabs[] = array(
'title' => t('Third magic tab'),
'content' => ($active == 2 || $active == -1) ? magic_tabs_get('magic_tabs_inline_callback') : '',
);
?>
Это все работает!!!

Теперь вместо надписи Content of first magic tab хочу вывести блок, инструкция гласит следующее:
== Displaying a custom block ==
The easiest way to display a custom block, is to find out the block id and add:
<?php
$bid = 2;
$block = (object)module_invoke('block', 'block', 'view', $bid);
$block->module = 'block';
$block->delta = $bid;
$tabs[] = array(
'title' => t('Display a custom block'),
'content' => theme('block', $block),
);
?>

Что не делаю, блок вывести не получается???
HELP!!!
P.S. Ссылка на инструкцию!

Комментарии

Аватар пользователя BOOZ BOOZ 16 декабря 2009 в 21:57

зачем показывать блок в блоке ???? по-моему надо в табы подгружатъ views....вот пример здесь

<?php
print magic_tabs_get('observer_most_read_tabs');
?>
<?php
function observer_most_read_tabs() {
  $tabs[] = array(t('Most Read'), 'views_build_view',
          array('block', views_get_view('most_read'),
            NULL, FALSE/*pager*/, 8));
  $tabs[] = array(t('Most Commented'), 'views_build_view',
          array('block', views_get_view('most_popular'),
            NULL, FALSE/*pager*/, 8));
  $tabs[] = array(t('Top Tags'), 'views_build_view',
          array('block', views_get_view('most_tags'),
            NULL, FALSE/*pager*/, 8));
  return $tabs;
}

function theme_observer_most_read_tabs_tabs($items) {
  return theme('item_list', $items, NULL, 'ul', array('class' => 'obs-tabs'));
}
function theme_observer_most_read_tabs_content($content) {
  return theme('obs_round_box', $content, array('class' => 'obs-no-ul'));
}
?>

Аватар пользователя BOOZ BOOZ 17 декабря 2009 в 0:13

пардон, для 6 друпала будет так...

$view = views_get_view('your_view_name');
  $view->set_display('default');
  $view->init_handlers();
  $form_state = array(
    'view' => $view,
    'display' => $view->display_handler->display,
    'method' => 'get',
    'rerender' => TRUE,
    'no_redirect' => TRUE,
  );
  $output = drupal_build_form('views_exposed_form', $form_state);
  return $output;
Аватар пользователя gagrago gagrago 19 декабря 2009 в 2:40

опа. интересно. как раз выбираю модуль для закладок (для вывода анонсов на главную через вьюсы видимо)

Что выбрать: magic_tabs или quick_tabs (плюсы и минусы, кроме явы)? или через panels? или jstools? Tabbed Block? или Tabs + Views Tabs + CCK Fieldgroup Tabs? другие варианты?

что походит для блоков, что для страниц? всё это местами обсуждается, но в одном месте не собрано. может найдется эксперт, который разложит по полочкам?

Аватар пользователя Dan Dan 19 декабря 2009 в 4:25

"gagrago" wrote:
Что выбрать: magic_tabs или quick_tabs (плюсы и минусы, кроме явы)? или через panels? или jstools? Tabbed Block? или Tabs + Views Tabs + CCK Fieldgroup Tabs? другие варианты?

Поставьте и посмотрите. Что подойдёт, то и используйте. Я из всего это выбрал [module=quicktabs], почему - уже и не упомню.

kpv_dnepr, попробуйте [module=quicktabs] - там тоже всё примерно также делается. Плюс есть AJAX на подгрузку контента.

Аватар пользователя kpv_dnepr kpv_dnepr 19 декабря 2009 в 14:21

Решение пришло после разбора модуля quick_tabs, спасибо Dan, оно оказалось в разборе функции module_invoke, мне для вывода блока views Exposed Filters нужно было правильно указать id блока, с одной поправкой, id блока нужно указывать в одинарных кавычках
Рабочий кусок кода
<?php

$block = (object)module_invoke('views', 'block', 'view', 'find_arenda-block_1');

?>