Как вывести список терминов в виде галереи?

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

Аватар пользователя SantaCluster SantaCluster 1 июня 2009 в 2:40

Прошу помощи или совета.

Необходимо вывести термины словаря в виде некой галереи, причем с разбиением по термиинам словаря (см. рисунок)

То есть, выбирая раздел "Каталог" (допустим так называется наш словарь), мы видели список всех материалов, сгруппированных по терминам словаря.
Если мы выбрали "Каталог/термин1", то отображаются только материалы, относящиеся к первому термину.

Как это реализовать с помощью CCK+Views?
знаю, подобное реализуется с помощью Ubercart, но только ради этого ставить такого монстра не хотелось бы.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 1 июня 2009 в 10:19

Блок слева:

<?php
// словарь 2 уровня
$vid // id словаря
$page_views "taxonomy/term/"// sample "taxonomy/term/$value_2->tid"
$terms_level_1 taxonomy_get_tree($vid,$parent 0,$depth 1);
foreach(
$terms_level_1 as $value_1){
$terms_level_2 taxonomy_get_tree($vid,$parent =  $value_1->tid,$depth 1);
$items = array();
foreach(
$terms_level_2 as $value_2){
$items[] = l($value_2->name,$page_views.$value_2->tid);
};
if(
count($items)) $out .=  theme('item_list'$items$value_1->name);
}
print 
$out;
?>

Затем темизируем страницу, например taxonomy/term/% c помощью views для получения нужного контента.

Аватар пользователя matveev matveev 7 июня 2009 в 22:29

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
Блок слева:

<?php
// словарь 2 уровня
$vid // id словаря
$page_views "taxonomy/term/"// sample "taxonomy/term/$value_2->tid"
$terms_level_1 taxonomy_get_tree($vid,$parent 0,$depth 1);
foreach(
$terms_level_1 as $value_1){
$terms_level_2 taxonomy_get_tree($vid,$parent =  $value_1->tid,$depth 1);
$items = array();
foreach(
$terms_level_2 as $value_2){
$items[] = l($value_2->name,$page_views.$value_2->tid);
};
if(
count($items)) $out .=  theme('item_list'$items$value_1->name);
}
print 
$out;
?>

Затем темизируем страницу, например taxonomy/term/% c помощью views для получения нужного контента.

Спасибо, полезно.

Аватар пользователя SantaCluster SantaCluster 2 июня 2009 в 2:51

блок слева я реализовал с помощью модуля taxonomy_navifator.
так что тут пока меня всё устраивает.

а вот с остальным содержимым - пока проблема. все материалы из словаря "Каталог" выводятся в виде "сетки" почти как надо.
Но вот как сделать, чтбы они ещё и группировались по названию термина (с выводом его названия в подзаголовке), как я на рисунке сделал.

в "кишках" друпала не силён, всякие сниппеты и прочий код без подсказки не знаю куда засунуть. поэтому просьба - немножко подробнее про это дело, если уж без этого никак.

UPD:
после долгих и упорных ковыряний во вьюсах, нарыл решение:
в настройках стиля отображения после добавления поля Таксономия:Термин, оно появилось в поле для группировки.
первоначальную задачу удалось решить.

теперь по ссылке /catalog отображается весь список материалов, сгруппированный по названию терминов каталога.

Внимание, вопрос:
если перейти вглубь по иерархии (/catalog/termin1), то отображается обычный "плоский" вид (материалы один за другим).
Как сделать то же самое (как только что было сделано для уровня /catalog) для остальных уровней вложенности?
Создавать для каждого термина словаря свой вьюс? или есть способ с помощью параметров автоматизировать это дело? (наверняка - есть такой способ)
Подскажите, куда рыть дальше.