Возможно, это простой вопрос, но я не могу понять, как вернуть тело node без menu . Я сделал модуль, который загружает содержимое node в пользовательскую область.
function loadnode_in_region_menu_alter(&$items) {
$items['load_node/%'] = array(
'page callback' => 'loadnode_in_region_node_page_view',
'page arguments' => array(1),
'access callback' => 'user_access',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function loadnode_in_region_node_page_view($nid) {
$node = node_load($nid, NULL, false);
$vnode = node_view($node);
return drupal_render($vnode);
}
Javascript выглядит так:
jQuery.ajax({
type: 'GET',
url: Drupal.settings.basePath + 'load_node/' + id,
dataType: 'html',
success: function(data){
jQuery('#ajax-result').html(data);
},
});
Результат выглядит так, с дублирующимся меню:
Если я меняю строку с
return drupal_render($vnode);
на
echo drupal_render($vnode); OR print drupal_render($vnode);
Результат выглядит так, как мне бы хотелось, но некоторые поля отображаются неправильно, например голосование и изображение. И изображение не открывается в Lightbox.
Можно ли вернуть тело ноды без меню?
Версия Drupal:
7.xКатегория:
Node API
Вопрос задан 11.03.2017 - 10:38