Привет.
Подскажите, пожалуйста, а есть ли модуль, позволяющий выводить на одной странице сразу несколько нодов (заголовок+анонс+ссылку)? Т.е., что бы было примерно как в таксономии по ссылке /taxonomy/term/102,130 выводится 2 нода.
Хочется иметь ссылку вида http://site/nodes/123,456,789 и что бы эта страница показывала несколько нодов сразу.
Спасибо заранее!
Комментарии
Раз такого модуля не нашлось, пришлось писать... Если кому тоже понадобится - обращайтесь!
если не трудно, не могли бы вы код модуля привести здесь? очень интересная задумка, мне бы пригодилась...
Не знаю, насколько "красиво" и правильно решил эту задачу, но то что рабочий вариант - это точно
Если кто-нибудь сделает замечания по модулю, буду признателен.
function fewnodes_help($section) {
switch ($section) {
case 'admin/modules#description':
return t('Link to a few nodes at once');
}
}
function fewnodes_menu($may_cache) {
$items = array();
$items[] = array(
'path' => 'fewnodes',
'access' => true,
'callback' => 'fewnodes_page',
'type' => MENU_CALLBACK,
'callback arguments' => array(arg(1)),
);
return $items;
}
function fewnodes_perm() {
return array('access content');
}
function fewnodes_page($nids) {
$nid_array = array();
if (ereg(",", $nids)) {
$nid_array = _fewnodes_check_node_array(explode(",", $nids));
}
if ($nid_array) {
$nodes = array();
$output = "";
$result = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, n.uid, u.name FROM {node} n INNER JOIN {users} u ON n.uid = u.uid WHERE n.nid IN (".implode(",", $nid_array).")"), 0, 10);
while ($node = db_fetch_object($result)) {
$output .= node_view(node_load($node->nid), 1);
}
$output .= theme('pager', NULL, variable_get('default_nodes_main', 10));
return $output;
} else {
return t('Empty node list');
}
}
function _fewnodes_check_node_array($array) {
for ($i=0; $i<count($array); $i++) {
if (empty($array[$i]) || intval($array[$i])==$array[$i]) {
return false;
}
}
return $array;
}
?>
а куда его вставлять?
сохранить этот код в отдельный файл, назвать его fewnodes.module, скопировать его в папку modules вашего Друпала. А дальше как обычно, зайти в админку и включить данный модуль.
После этого у вас будут "работать" ссылки вида http://site.ru/fewnodes/111,222,333
спасибо за модуль...
странно, показывает: Empty node list
drupal 4.7.3
а точно все верно указываете? Ноды существуют? ID нодов указываются через запятую и без пробелов?
а кстати, куда эта ссылка перенаправляет? как выглядит "несколько документов" по ссылке? в каком виде?
Она никуда не перенаправляется, модуль формирует страницу, на которой выводятся анонсы перечисленных в ссылке (URL) нодов. Вот как тут: http://www.drupal.ru/taxonomy/term/14 На этой странице выводится 4 нода. Мой модуль позволяет получить примерно такую же страничку (естественно, без заголовка терма "Программирование и дизайн для web").
Зачем это нужно? А вот у меня, например, есть сторонний проект, на котором нужно размещать ссылку на множество моих нодов. Т.е. эти ноды в друпале никак не связаны, но пользователь стороннего проекта хочет сослаться сразу на несколько нодов и что бы не перечислять N ссылок можно просто сослаться на N нодов в одной ссылке. Надеюсь, понятно изложил
да, спасибо, понятно как это работает... очень нужный модуль...
вы не пробовали его как проект на drupal.org открыть? я думаю, всем бы пригодилось...