Проблемы с Реализацией структуры сайт

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

Аватар пользователя GRAF_FATALIST GRAF_FATALIST 20 октября 2007 в 20:26

Доброго время суток!

В недавнем прошлом скачал движок Drupal 5,2 и начал в нем разбираться.
И вот возник вопрос:
Структура сайта предусматривает страницу, на которой будет отображаться полный список добавленных когда-либо node, соответсвующих определенной каегории. Т.е. я хочу сделать страницу, категории Музыка, Вида:

А

  • А1(исполнитель на "А")
    • 1980 - Название альбома
    • 1981 - Название альбома
  • А2(исполнитель на "А")
    • 1980 - Название альбома
    • 1981 - Название альбома

......................................................

Б

  • Б1(исполнитель на "Б")
    • 1980 - Название альбома
    • 1981 - Название альбома

и так далее, где
1980 - Название альбома - ссылка на соответствующий node.

Скажите пожайлуста, какими средствами и как можно добиться такого вида страницы.
Благодарю!

Комментарии

Аватар пользователя GRAF_FATALIST GRAF_FATALIST 24 октября 2007 в 19:16

Так и не смог осилить ету проблемку.
Создавал словарь "Зарубежные исполнители", а терминами его были сами исполнители.
Потом с помощью views и lineage делал вид:

список всех исполнителей
A1
A2
A3
...
An
выбирая исполнителя получаю полный список его альбомов.
Но мне охота сделать вид типа:
А1(исполнитель на "А")

  • 1980 - Название альбома
  • 1981 - Название альбома

А2(исполнитель на "А")

  • 1980 - Название альбома
  • 1981 - Название альбома

-------------------------------------------------------------------------------
Помогите, плиззз)))). Натолкните на мысль, люди добрые )))))

Аватар пользователя muxoh muxoh 29 октября 2007 в 19:49

у меня похожая проблема...

Задача:

Есть каталог товаров, который разбит на разделы. Надо вывести на отдельной странице товары в таком виде:

Шкафы купе
- картинка товара 1_1
- картинка товара 1_2
...
- картинка товара 1_10
|ссылка на все товары раздела|

Мебель для прихожей
- картинка товара 2_1
- картинка товара 2_2
....
- картинка товара 2_10
|ссылка на все товары раздела|
и т.д.
Т.е. надо для каждого раздела выводить 10 первых товаров оттуда + ссылку на страницу, где расположены все товары в разделе.

Можно под каждый раздел сделать отдельный views и выводить сниппеты этих разделов вручную по одному добавляя в body той страницы, где будет подобное меню.
Но хотелось бы в цикле выводить подобное меню. Т.е. получать термины таксономии в виде массива и по ним выводить товары.
Гуру откликнитесь!!! такая задача всплывает очень часто.

Аватар пользователя muxoh muxoh 30 октября 2007 в 21:35

нашел ответ вот здесь http://drupal.org/node/121662
В одном из сниппетов выводятся названия категорий вместе со всеми nid из категории, потом по nid уже можно получить любое поле ноды::
например, для получения титла нужно вызвать
<?php
$node = node_load($nid);
echo $node->title; //выведет титл ноды
?>

Аватар пользователя GRAF_FATALIST GRAF_FATALIST 31 октября 2007 в 5:18

Да, этот сниппет подходит, но у меня так и не получилось вывести 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 в этом сниппете! Выложите ваш код, если это возможно.

За найденый сниппет большое спасибо!!!

Аватар пользователя muxoh muxoh 31 октября 2007 в 17:04

Попробуй вот это - у меня титлы выводятся:

<?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 '

' . str_repeat($indent,$term->depth)." ".l($term->name, "taxonomy/term/$term->tid") . "
$count" . '

';

}

?>

Аватар пользователя GRAF_FATALIST GRAF_FATALIST 31 октября 2007 в 19:13

О да !!! пашет ))
Огромное спасибо !!

<?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 '

' . str_repeat($indent,$term->depth)." ".l($term->name, "taxonomy/term/$term->tid") . "
$count" . '

';

}
?>

Выводит node title как ссылки на соответствующий node.