Виведення ноди в попапі

Виведення ноди в попапі

Anton Martyniuk

Отже, рано чи пізно наступає момент коли потрібно при кліку відкривати ноди в модальних вікнах Ctools. Як варіант можна користуватись модулем Colorbox Node, але "Модулі для слабаків"(с). Дана стаття не є останнью інстанцією і є результатом написання коду методом тику. Момент, як писати кастомні модулі я опущу, залишу тільки смачненьке. Припустимо у нас є список тизерів нод і при кліку на заголовок потрібно відкривати ноду в попапі для цього потрібно:
1. Оголошуємо hook_menu()
function modal_menu() {
$items['test/%ctools_js'] = array(
'title' => 'Modal',
'page callback' => 'modal_callback',
'page arguments' => array(1),
'access callback' => TRUE,
);
return $items;
}
2. Описуємо колбек функцію модального вікна
function modal_callback($js = NULL, $nid){
$nid = arg(2);
$node = node_load($nid);
$content = node_view($node,$view_mode = 'full');
$node_modal = render($content);
if(!$js){
return $node_modal;
}
$output = array();
$output[] = ctools_modal_command_display('Test', $node_modal);
print ajax_render($output);
drupal_exit();
return $output;
}
В даному куску кода я айдішку ноди дістаю з 3-го аргумента урла.
3. Для посилання яке буде відповідати за виклик модального вікна ставимо адресу накшталт такої - [b]test/nojs/[nid] [/b]ну і не забуваємо, що в лінка повинен бути клас - [b]ctools-use-modal[/b]. Вуаля, тепер нода відкривається в модальному вікні