Доброго время суток!
В недавнем прошлом скачал движок Drupal 5,2 и начал в нем разбираться.
И вот возник вопрос:
Структура сайта предусматривает страницу, на которой будет отображаться полный список добавленных когда-либо node, соответсвующих определенной каегории. Т.е. я хочу сделать страницу, категории Музыка, Вида:
А
- А1(исполнитель на "А")
- 1980 - Название альбома
- 1981 - Название альбома
- А2(исполнитель на "А")
- 1980 - Название альбома
- 1981 - Название альбома
......................................................
Б
- Б1(исполнитель на "Б")
- 1980 - Название альбома
- 1981 - Название альбома
и так далее, где
1980 - Название альбома - ссылка на соответствующий node.
Скажите пожайлуста, какими средствами и как можно добиться такого вида страницы.
Благодарю!
Комментарии
Так и не смог осилить ету проблемку.
Создавал словарь "Зарубежные исполнители", а терминами его были сами исполнители.
Потом с помощью views и lineage делал вид:
список всех исполнителей
A1
A2
A3
...
An
выбирая исполнителя получаю полный список его альбомов.
Но мне охота сделать вид типа:
А1(исполнитель на "А")
А2(исполнитель на "А")
-------------------------------------------------------------------------------
Помогите, плиззз)))). Натолкните на мысль, люди добрые )))))
у меня похожая проблема...
Задача:
Есть каталог товаров, который разбит на разделы. Надо вывести на отдельной странице товары в таком виде:
Шкафы купе
- картинка товара 1_1
- картинка товара 1_2
...
- картинка товара 1_10
|ссылка на все товары раздела|
Мебель для прихожей
- картинка товара 2_1
- картинка товара 2_2
....
- картинка товара 2_10
|ссылка на все товары раздела|
и т.д.
Т.е. надо для каждого раздела выводить 10 первых товаров оттуда + ссылку на страницу, где расположены все товары в разделе.
Можно под каждый раздел сделать отдельный views и выводить сниппеты этих разделов вручную по одному добавляя в body той страницы, где будет подобное меню.
Но хотелось бы в цикле выводить подобное меню. Т.е. получать термины таксономии в виде массива и по ним выводить товары.
Гуру откликнитесь!!! такая задача всплывает очень часто.
Под каждый раздел отдельный views явно не решение)))! Глаза просто на лоб полезут от такого числа views )))
нашел ответ вот здесь http://drupal.org/node/121662
В одном из сниппетов выводятся названия категорий вместе со всеми nid из категории, потом по nid уже можно получить любое поле ноды::
например, для получения титла нужно вызвать
<?php
$node = node_load($nid);
echo $node->title; //выведет титл ноды
?>
Да, этот сниппет подходит, но у меня так и не получилось вывести node title вместо nid. Ругается сильно при использовании рекомендуемой вами функции node_load($nid). Использовал я следующий код:
<?php
if ( ! function_exists('private_get_children') ) {
function private_get_children($vid, $parent = 0) {
$items = array();
$terms = taxonomy_get_tree($vid, $parent, -1, 1);
foreach ( $terms as $term ) {
$results = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $term->tid);
$nid_list = array();
$i = 1;
while ( $next = db_fetch_object($results) ) {
$nid_list[] = l($i++, "node/$next->nid");
}
// Seperate the links with a space character
$count = implode(' ', $nid_list);
$items[] = l($term->name, "taxonomy/term/$term->tid") . " ($count)" . private_get_children($vid, $term->tid);
}
if ( count($items) ) {
return theme('item_list', $items);
}
}
}
$vid = 2; // Set the vid to the vocabulary id of the vocabulary you wish to list the terms from
print private_get_children($vid);
?>
Подскажите как вывести node title вместо nid в этом сниппете! Выложите ваш код, если это возможно.
За найденый сниппет большое спасибо!!!
Попробуй вот это - у меня титлы выводятся:
<?php
$vid = 1; //Set the vid to the vocabulary id of the vocabulary you wish to list the terms from
$indent = "-"; // Set to what you want the indent to be
$terms = taxonomy_get_tree($vid);
foreach ( $terms as $term )
{
$results = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $term->tid);
$title_list = array();
while ( $next = db_fetch_object($results) ) {
$node = node_load($next->nid);
$title_list[]= $node->title;
}
$count = implode('
', $title_list);
print '
$count" . '
';
}
?>
О да !!! пашет ))
Огромное спасибо !!
<?php
$vid = 2; //Set the vid to the vocabulary id of the vocabulary you wish to list the terms from
$indent = "---"; // Set to what you want the indent to be
$terms = taxonomy_get_tree($vid);
foreach ( $terms as $term )
{
$results = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $term->tid);
$title_list = array();
while ( $next = db_fetch_object($results) ) {
$node = node_load($next->nid);
$title_list[] = l($node->title, "node/$next->nid");
}
$count = implode('
', $title_list);
print '
$count" . '
';
}
?>
Выводит node title как ссылки на соответствующий node.