Простой каталог

Для создания каталога нам потребуются модули: Views, Taxonomy Redirect, Pathauto.
Так как все термины таксономии имеют одинаковые пути taxonomy/term/%, нельзя задать им разные отображения. К счастью в модуле taxonomy есть замечательный хук hook_taxonomy_term_path, с его помощью можно изменить эти пути. Люди разбирающиеся в программировании и умеющие читать документацию сделают это быстро. Но мы пойдем по легкому пути и используем модуль Taxonomy Redirect.

Шаг 1. Настройка Taxonomy Redirect

  1. Настройки модуля находятся по адресу admin/build/taxonomy_redirect
  2. Выбираем нужный словарь, Path: catalog/!tid, сохраняем.

Шаг 2. Настойка Views

Настройка views.

  1. Создаем новое представление View name: Каталог, View type: Node.
  2. Добавляем отображение типа page.
    • Basic settings:
      • Name: Страница каталога
      • Use pager: Yes
      • Header:
        Жмем кнопку Override,
        вставляем данный код, формат ввода: PHP code
        <?php
        $vid = 1; // id словаря
        $arg_pos = 1; // номер позиции аргумента, в нашем случает 1
        $cols = 3; // кол-во столбцов для отображения
        $show_count = TRUE; // показывать или нет кол-во нод в терминах.

        if (is_numeric(arg($arg_pos))) {
          $tid = arg($arg_pos);
          $terms = taxonomy_get_children($tid, $vid);
          if (!empty($terms)) {
            $output = '<table class="catalog-page">';
            $count = 0;
            $total = count($terms);
           
            foreach ($terms as $tid => $term) {
              if ($count % $cols == 0) {
                $output .= '<tr>';
              }
             
              $item = l($term->name, taxonomy_term_path($term));
              if ($show_count) {
                $count_nodes = taxonomy_term_count_nodes($term->tid);
                $item .= ($count_nodes) ? " ($count_nodes)" : " (0)";
              }
             
              $count++;
              $output .= '<td>'. $item .'</td>';
              if ($count % $cols == 0 || $count == $total) {
                $output .= '</tr>';
              }
            }
            $output .= '</table>';
            return $output;
          }
        }
        ?>
           

        ставим галочку Display even if view has no result
    • Page settings:
      • Path: catalog/%
    • Arguments:
      Жмем кнопку Override
      • Добавляем аргумент Taxonomy: Term ID (with depth) и настраиваем его:
        • Title: %1
        • Breadcrumb: Каталог
        • Validator options:
          • Validator: Taxonomy term
          • Vocabularies: выбираем наш словарь
          • Argument type: Term ID
        • Depth: 2
        • Ставим галочку Set the breadcrumb for the term parents
  3. Добавляем отображение типа page.
    • Basic settings:
      • Name: Корень каталога
      • Title: Каталог
      • Empty text:
        Жмем кнопку Override,
        вставляем данный код, формат ввода: PHP code
        <?php
        $vid = 1; // id словаря
        $cols = 3; // кол-во столбцов для отображения
        $limit = 3; // кол-во выводимых дочерных терминов

        $tree = taxonomy_get_tree($vid, 0, -1, 1);
        if (!empty($tree)) {
          $output = '<table class="catalog-root">';
          $count = 0;
          $total = count($tree);
         
          foreach ($tree as $tid => $term) {
            if ($count % $cols == 0) {
              $output .= '<tr>';
            }
           
            $item = '<h2>'. l($term->name, taxonomy_term_path($term)) .'</h2>';
            $children_list = array();
            $children = taxonomy_get_children($term->tid, $vid);
            $i = 1;
            foreach (taxonomy_get_children($term->tid, $vid) as $child) {
              $children_list[] = l($child->name, taxonomy_term_path($child));
              if ($limit != 0 && $i >= $limit) break;
              $i++;
            }
            if (count($children) > $limit) {
              $children_list[] = l('...', taxonomy_term_path($term));
            }
            $count++;
            $item .= implode(' / ', $children_list);
            $output .= '<td>'. $item .'</td>';
            if ($count % $cols == 0 || $count == $total) {
              $output .= '</tr>';
            }
          }
          $output .= '</table>';
         
          return $output;
        }
        ?>
           
    • Page settings:
      • Path: catalog/all
    • Arguments:
      Жмем кнопку Override
      • Добавляем аргумент Global: Null и настраиваем его:
        • Action to take if argument is not present: Display empty text

Теперь ваш каталог находится по адресу www.site.ru/catalog/all

Шаг 3. Настойка Pathauto

  1. Добавляем алиас вручную для корня каталога. catalog/all теперь будет просто catalog
  2. Шаблон для терминов нашего словаря будет catalog/[catpath-raw].
  3. Неприятная новость для тех у кого словарь таксономии уже был заполнен терминами: только новые термины получат автоматический алиас. Но это решается небольшим php-кодом
    $vid = 1; // заменить на id словаря таксономии
    $path = 'catalog/';  // путь, тот что указывали в taxonomy_redirect (catalog/!tid), но без !tid
    _pathauto_include();
      $result = db_query("SELECT tid, vid, name, description, src, dst FROM {term_data} LEFT JOIN {url_alias} ON CONCAT('%s', CAST(tid AS CHAR)) = src WHERE src IS NULL AND vid = %d", $path, $vid);
     
      $count = 0;
      $placeholders = array();
      while ($category = db_fetch_object($result)) {
        $count += _taxonomy_pathauto_alias($category, 'bulkupdate');
      }
     
      drupal_set_message(format_plural($count,
        'Bulk generation of terms completed, one alias generated.',
        'Bulk generation of terms completed, @count aliases generated.'));

    выполнить код можно через Devel, по адресу http://ваш_сайт/devel/php

Шаг 4. Немного css магии

table.catalog-page tbody,
table.catalog-root tbody {
  border:none;
}
table.catalog-root a {
  color:#494949;
  text-decoration:underline;
}
table.catalog-root a:hover {
  text-decoration:none;
}
table.catalog-root h2 a {
  color:#027AC6;
}
table.catalog-page tr td,
table.catalog-root tr td {
  color:#999;
  padding:0 20px 20px 0;
  vertical-align:top;
  width:33%; /* естественно это для 3х колонок */
}

Результат

Если вы сделаете все правильно, каталог будет выглядеть примерно так:
, .

Комментарии

Можно увидеть скрины настроек?

статья писалась давно, скринов дать не могу

статья для пользователей знающих Views -)

Посмотрел, увидел, что недостаточно точно описан процесс создания представления:

Validator: Taxonomy term
Validator всюду будет категорией

Добавляем аргумент Global: Null и настраиваем его
Не хватает Provide default argument → Fixed entry

Это главное, с остальным люди разберутся

Спасибо. Тема полезная как самому сделать каталог, а не использовать уберкартовский.
И вправду, скринов не хватает. Пока не получается.

Пока не получается

Тут ничего сложного нет, я привёл небольшие поправки выше

Спасибо, за Ваши коментарии к посту.
Хочу у Вас уточнить три момента:
1. "Не хватает Provide default argument > Fixed entry" - должно быть два аргумента "Global: null": Display empty text и Fixed entry ?
2. Что значит "Validator всюду будет категорией" - всюду, это где?
3. Что делать с ошибкой про поля? пробовал включить поля названия терминов и словаря - ничего не выводится. Изменил в "Странице каталога" в Аргументе : Taxonomy: Term ID (with depth) -> Action to take if argument does not validate: на "Display all volue" - все термины отобразились. Но все равно не то. Если я правильно поменял, может нужен фильтр включить по словарю?

Видимо тут написано для продвинутых пользователей друпал.
К большому сожалению я им пока не являюсь.

Аватарки не прикрепляются к моему профилю.

Каталог очень хочется такой же
Но не получается, у меня лезет вот такое

* Display "Defaults" uses fields but there are none defined for it or all are excluded.
* Display "Страница каталога" uses fields but there are none defined for it or all are excluded.
* Display "Корень каталога" uses fields but there are none defined for it or all are excluded.

Row style: Node установите, и пользуйтесь хотя бы переводчиком

очень красноречиво, спасибо.
Но
а) в описании не слово об этом не сказано
б) если ставлю Материал, то все отображается те так, как на этом уроке =\

в описании об этом не сказано тк эти решение этих ошибок очевидно, надо только перевести текст.

Спасибо за ответы, разобрался. просто все немного внимательнее прочитал и аккуратнее сделал ;-)

Вопрос еще такой, в хлебных крошках у меня отображается все вот так
"Главная → Каталог → Каталог → Хозяйственные товары → Бытовая химия"
Собственно как избавиться от второго "Каталог" (ну или от первого?)?

попробуйте в аргументе, поиграть с галочкой Set the breadcrumb for the term parents или возможно у вас стоят другие модули типа Custom Breadcrumbs

Нужно ли отключать какой нить модуль магазина, чтоб не было конфликта? (например с адресом catalog)

views скорее всего перекроет этот адрес, если хотите можете сделать другой по своему усмотрению

А еще, подскажиет пожалуйста, какие поля нужны для обоих страниц этого вида?

нам то откуда знать какие вам нужны поля? какие надо вывести те и выводите. а лучше просто материалы сразу

У меня все получилось.
Как нить выложу скрины.

Сделал без таблиц для примера:

Здравствуйте!

У меня тоже получилось...но только на половину. Корень каталога, как на скрине выше выводится, а вот когда находишься внутри термина, не показывает над материалами остальные подрубрики. (т.е. page Страница каталога)

В какую сторону капать чтобы настроить до конца?

а 2й пункт полностью выполнили? вставили php-код и тд. ?

Да, проверил, все пункты сделаны. Я при создании выбрал в поле View type: Материал. Может здесь ошибка?

тоесть у вас не выводятся категории 2го уровня, те что на странице.
код в Header точно указан? формат ввода php code?
если не трудно, скопируйте экспорт views на http://pastebin.com/ и дайте ссылку сюда.

Вот http://pastebin.com/PW2hP6sm

Да, категории 2 го уровня не хотят выводиться. Корень каталога по адресу site/catalog показывается.

галочка Display even if view has no result в разделе Header стоит? тестируете на странице или через live preview? ваш вью полностью рабочий

pen-exe, ошибка нашлась в taxonomy_redirect.

Спасибо!

спс

В breadcrumb почему-то ставит ссылки типа /taxonomy/term/id и получается 2 страницы: с синонимом и рубриками каталогами и страница из breadcrumb с системным путем - без подрубрик.

Ставил, убирал Set the breadcrumb for the term parents не помогает. Создавал для конкретной /taxonomy/term/id тоже ни к чему не привело. Да и дололнительных модулей для breadcrumb не стоит. Вопрос открыт вообщем :-/

тоже самое

версия views какая?

6.x-2.8

апгрейдился до 6.x-3.0-alpha3

Помогло? У меня таже самая проблема.

Здравствуйте.

У меня след. структура каталога:

Раздел1
-Категория1.1
--Подкатегория1
--Подкатегория2
--...
-Категория1.2
--Подкатегория1
--Подкатегория2
--...
Раздел2
-Категория2.1
--Подкатегория1
--Подкатегория2
--...

Подскажите, пжл, как вывести на странице РазделN ссылки на все принадлежащие данному разделу категории и подкатегории?

Скажите пожалуйста, вот у Вас каталог содержит разделы: Авто, досуг, СМИ и.т.д. Я сделал описания этих разделов, как мне вывести это описание в "Страница каталога" чтобы оно находилось сразу под названием раздела, помогите пожалуйста!

в самом первом коде, заменить

if (is_numeric(arg($arg_pos))) {
  $tid = arg($arg_pos);
  $terms = taxonomy_get_children($tid, $vid);
  if (!empty($terms)) {
    $output = '<table class="catalog-page">';

на
if (is_numeric(arg($arg_pos))) {
  $tid = arg($arg_pos);
  $term = taxonomy_get_term($tid);
  if ($term->description) {
    $output = '<div class="term-description">'. check_markup($term->description) .'</div>';
  }
  $terms = taxonomy_get_children($tid, $vid);
  if (!empty($terms)) {
    $output .= '<table class="catalog-page">';

Подскажите, пожалуйста, как сделать вторую страницу? На первой странице один тип материала(например, новости), а на второй другой (например, объявления), а словарь каталога с его термины общие.

всё описано в статье, просто на нужной станице установите разные фильтры по типу материала

Нашел статью! Пригодилось! Спасибо! Вот только ни как не могу найти сниппет для отображения картинки при использования модуля Taxonomy Image.
При выводе Страницы каталога все понятно - добавил переменную
$imager = taxonomy_image_display($tid, $tags = null, $profile = null, $overrides = array());

и вывод
 $output .= '<div class="catinline">'.'<div class="catimager">'. $imager .'</div>'. $item .'</div>';

а вот на странице Корень каталога так не получается сделать.
На бросите ссылкой если был такой вопрос уже?
Спасибо!

$imager = taxonomy_image_display($term->tid);

Так не понял что куда применить и добавить для того что бы заработал модуль taxonomy image если не трудно разьясните.

если надо вставить картинки в корень каталога для терминов верхнего уровня, то в коде №2 после строки

$item = '<h2>'. l($term->name, taxonomy_term_path($term)) .'</h2>';

написать
$item .= taxonomy_image_display($term->tid);

А мне нужно по коду номер1, возможно такое ?

тогда

$terms = taxonomy_get_children($tid, $vid);
  if (!empty($terms)) {
    $output = '<table class="catalog-page">';

заменить на
$output = taxonomy_image_display($tid);
$terms = taxonomy_get_children($tid, $vid);
  if (!empty($terms)) {
    $output .= '<table class="catalog-page">';

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

хмм, старнно. $tid - id открытого термина, соответственно и картинка должна выводится его.
Может вы что-то напутали?

http://legginsopt.com.ua/drupal/category/%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%...

вот пример, я присвоил картинку термину "Книги" но картинка расположилась на странице термина, а мне нужно на уровень выше и чтоб картинка ссылалась на этот термин ))

вам тогда нужна картинка в корне каталога, выше я уже давал код, вы сказали это не то

У меня просто нет кода номер 2, у меня все построено только на номер 1, мне просто нужно что бы пункты(термины) сопровождались картинками ссылающимися на них.

тогда

$output .= '<td>'. $item .'</td>';

заменить на
$output .= '<td>'. taxonomy_image_display($term->tid) . $item .'</td>';

Спасибо работает, осталось только картинку ссылкой разобраться как сделать.

Ничего не вышло.
1. Дублирование термина. Стоит "Уникальность: Да", Но так как у нас тип представления Материал, а не Термин...
2. Стили не подключаются в квыводу, все термины кучей с одинаковым классом.

выводите термины используя поле Taxonomy: All terms, тогда дублирования не будет

Выложите код для экспорта представления.

исключено, пока сами не будете делать ничего не получится

Спасибо, статья очень помогла.
Подскажите, пожалуйста, еще такой момент:
Как можно вывести при нажатии на родителя только его подтермины, чтобы материал прикрепленный к подтерминам при этом не выводился, а уже при нажатии на дочерний термин, выводился материал?

C этим разобрался, параметр depth нужно выставить в ноль.

Но почему-то не работает :

$term = taxonomy_get_term($tid);
  if ($term->description) {
    $output = '<div class="term-description">'. check_markup($term->description) .'</div>';
  }

урл имеет вид catalog/art - родитель. т.е. здесь по идее должно вывестись описание, а ниже дочерние термины. Дочерние есть, описания нет, но по урлу taxonomy/term/24 описание выводится. Где-то ошибка, помогите, плз, разобраться.

$output = '<table class="catalog-page">';
тут надо перед = поставить . (точку)

Ставил, не помогает.

все получилось, спасибо, точку нужно перед следующим ставить.


Получилось только когда додумался добавить "Фильтр-таксономия-Терм="

Вопрос 1: Когда я жму на ссылки каталога - я вижу ссылки типа "catalog/409", а нужно чтобы вместо 409 было имя термина таксономии. Как это сделать ?

Вопрос 2: "немного css магии" куда втыкать ? Я не программист, но я понятливый, если пальцем не лениво показать :)

Еще есть "косяк": Сайт у меня многоязычный. Каталог будет на разных языках. Когда захожу по ссылке в каталог на другом языке - сам каталог не показан, что очевидно, таксономия еще не вся переведена на другие языки. Т.е. в русском варианте сайта у меня каталог показывается полностью, в других языковых вариантах показана просто белая странца. Но надпись "Каталог" везде показывается на русском. Как решать такие проблемы с контентом типа page я знаю - там добавляются переводы и для каждого языка получается своя надпись. А как дела такие решаются в views ?

P.S.
Зато (спасибо автору статьи) попутно я научился делать вьюсы кучи других моментов нужных мне. )

1) шаг 3й делали? там надо поставить галочку чтобы алиасы для терминов создались
2) код вставлять в style.css в папке в темой. сбросить кеш
3) думаю Internationalization поможет, у него есть какие-то доп. модули для перевода views

Всё получилось, только пришлось пересоздать уже созданные ранее алиасы таксономии.
Спасибо !

Правда, алиасы теперь сломались )
Удалил все, пересоздаю с /catalog, они пишут что создаются по 100 штук за раз, но реально создалось 378 и на этом остановилось. Пока не понимаю причину.

Если у кого-то не получается - рекомендую:
Перед созданием каталога - тщательно продумайте и сделайте все алиасы таксономии заранее.
Сделайте полный бэкап сайта (чтобы не мучаться как я сутки восстанавливая).
Не трогайте pathauto в шаге №3 этой статьи.
В PHP коде, предложенном Автором, ВНИМАТЕЛЬНО посмотрите на первые строки, где задаются переменные, например порядковый номер словаря таксономии, который вы будете использовать для создания каталога. Эту нужную цифру можно увидеть в админке таксономии, если навести мышкой на линк словаря.

В остальном инструкция 100% работоспособная. Автору благодарность.

Чтиво по теме

а можно сделать так что бы если термины не используються они не выводились? в списке...

нет нельзя

а вот что бы подсчет товара был в каждой категории и термине??? к этому вот варианту каталога можно привернуть?

категория и термин одно и тоже, всё считается и выводится

Те у кого получилось сделать это, скиньте скрины настроек вьюса 2 и 3 шагов.
Спасибо!

А есть возможность весь этот каталог вставить в блок и вывести например в колонке справа во вьюхе (новые товары) ???

Типа заходит юзер на главную а там новые товары а справа в блоке вся эта навигация или так не выйдет?

Не хочется в заголвоке вьюхи это дело...

1) php-код это обычный сниппет, можно вставлять хоть куда.
2) здесь можно редактировать свои комментарии, 2 подряд нельзя публиковать будет блокировка аккаунта за флуд.

Я пытался вставлять код из заголовка вьюх в блоки или в подвал. там он не срабатывает рисует текст когда, хоть формат Php выставлен.

Так что с вопросом о том почему не считается количество материала... и работает немного не так... ибо как на втором скриншоте такое и в помине нет.

http://agatawar.ru/shop/catalog

1) а текстовый редактор отключен?
2) у вас всё 1 в 1? комментарии в коде читали? так надо настройки некоторые менять? шаг 2.3 сделали весь?

1) у меня bueeditor стоит
2) почти один в один я забабахал в первый код - второй код. Сейчас изменил и все проверил. Теперь по адресу shop/catalog - вьюшный Header не выводиться.

2) и зачем это? статья 100% рабочая, делайте 1 в 1 и всё получиться

один в 1 никак ибо пути заняты эти. меняю только пути

кроме путей надо и в коде менять
$arg_pos = 1; // номер позиции аргумента, в нашем случает 1

опаньки. вот оно что...

Уже неделю бьюсь с решением этой статьи.
Делаю всё в точности как описано.
При выполнения 2 шага (настройки вьюх) , не сохраняется вьвс, пишет: Display "По умолчанию" uses fields but there are none defined for it or all are excluded.
Для исправления этого, добавил одно поле = "Таксономия: Term"
Вьювс сохранился.
В предпросмотре Корня каталога выводится ошибка: '. l($term->name, taxonomy_term_path($term)) .'
Что я не так делаю?

P.S. Я прогер с большим стажем, но в веб-программировании новичок...
Потому, просьба "не пинать в живот" :)

какая конкретно вылезла ошибка?

1. Display "По умолчанию" uses fields but there are none defined for it or all are excluded.
2. '. l($term->name, taxonomy_term_path($term)) .'

2) это не ошибка, а туоп текст, в чем проблема то? где error сам?

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

Вообще-то 1С-программист, язык программирования русский. Включая написание sql-запросов.
Добавил поле

формат ввода php-код включили?

Ха-хахаха. Ой как стыдно....

Ставил Full html, конечно же PHP код выполнять не будет.
В модулях включил PHP-filter, поменял формат ввода и все заработало.

Спасибо, pen-exe !!!

В качестве главного рубрикатора это лучшее решение.
На одном из мега-сайтов www.alibaba.com понравилось меню, выводимое в левом блоке.
Может кто-то умеет такое?

taxonomy_menu + темизация.
и если возникает вопрос не по теме, то создавайте вопрос в соответствующем разделе, иначе бан.

Добрый день!
Как можно сделать такой каталог на D7?
Taxonomy Redirect для 7 нет. Чем можно его заменить?

Нашел замену Taxonomy Redirect для 7-го друпала - http://www.drupal.ru/node/67320

доброе время суток.
На мультиязычном сайте столкнулся с массой проблем.
Каталог работает отлично, но на страницах не переводятся термины. Подскажите, куда и как копать. Заранее спасибо!

Реализовал каталог по вашему примеру, возникла проблема:
корневой каталог отображается, при выборе категории открывается страница с заголовком категории но запись не отображается, запись для данной категории создана?

не могу сказать в чем ваша ошибка, проверьте все описаные действия по шагам.

Спасибо большое! У меня все заработало с первого раза!

Возможно ли сделать в представлении "Корень каталога" поиск по материалам с помощью exposed filters?

Сделал!
Кому актуально, вот рецепт:

  1. Добавляем отображение типа page.
    • Basic settings:
      • Name: Поиск по каталогу
      • Заголовок: Результаты поиска
      • Стиль строки: Материал
      • Отображать в блоке: Да
    • Настройки страницы:
      • Адрес: catalog/all/search_result
    • Фильтры:
      • Добавляем необходимые фильтры и делаем их доступными пользователю
      • Сохраняем.
  2. Идем в /admin/build/block/list/ваша_тема, Находим нужный блок, жмем настроить
    • ПОКАЗЫВАТЬ БЛОК НА ОПРЕДЕЛЕННЫХ СТРАНИЦАХ:
      • Показывать только на перечисленных страницах.
    • СТРАНИЦЫ:
      • catalog
      • Сохраняем
  3. Выбираем область отображения
    Сохраняем
  4. Идем на страницу /catalog и видим форму поиска, вводим данные и попадаем на страницу /catalog/all/search_result?много_параметров с результатами поиска

В общем, несколько дней разбираюсь, не смог(...
Пока нет материала, все идеально, поставил в 2 колонки, как мне надо. Все красиво. Но рано радовался, как только добавляю материал, все! Ничего нет!
Только что-то такого рода - Все термины: Категория 33
Это если в полях название "Все термины" не убрать
А так только название категории и все. Пробовал все категории удалять, заново создавать, материал также. Удалял все синонимы, потом создавал заново категории, материал. Не получается. Только удаляю материал, все ОК. Категории, навигация. Не могу сам разобраться, пожалуйста, подскажите)

Все получилось, все настроил. Автору огромное спасибо!!!

Спасибо, все работает!
Provide default argument → Fixed entry могли бы все-таки в статью внести)

Добрый вечер. Использую views-7.x-3.0-rc1. Подскажите пожалуйста как сделать этот каталог? Уже все тыкал-перетыкал. Не понимаю куда вставить php-код. И вообще как то все без результатно.

это решение для 6ки, для 7ки немного подругому

а как для семерки сделать не подскажите?

Добрый день. А как в представление добавить количество материалов на странице catalog/all (корень каталога), чтобы после названия родительской и дочерней категории выводилось количество материалов?

Здравствуйте! Отличная статья, у меня все получилось сделать со 2го раза )
Но вот возник вопрос... есть 2 разных словаря и их терминами, и подтерминами, выглядит это вот так:
Словарь №1:
Марка\модель автомобия:
- Опель
-- Вектра А
-- Кадет
- Форд
-- Фокус 2
-- Фиеста

Словарь №2:
Тип запчасти:
- Оптика
- Ходовая
- Кузов

Можно ли используя эту статью в "Корне каталога" вывести родительские термины Словаря №1 и под ними термины Словаря №2? Примерно так:

Опель
Ходовая, Оптика, Кузов

Форд
Ходовая, Оптика, Кузов

Подскажите пожалуйста, пытаюсь с аргументами побаловаться, но что-то не получается пока. Может в коде нужны какие-то исправления? Чтобы он подхватывал не чилдренов а термины другого словаря? Помогите пожалуйста разобраться.

Делается всё через подстановку скрытых полей, как реализовано на сайте mobilepart ;)

Добрый день, три дня пытался разобраться, как под семерку такое настроить. И не смог :(
Может кто уже настраивал, подскажите, пожалуйста?

Скажите как сделать ссылки вида /catalog/category/12/ ?

со слешем на конце? это бред
а без в статье написано

как быть если словарей больше одного ? а указать можно только один.

если словарей больше одного, то и отображение каталога надо придумывать новое, в данном примере это не предусмотрено.

Напишите плз как сделать аналогичное на drupal 7?

Basic settings:

    Name: Страница каталога
    Use pager: Yes
    Header:
    Жмем кнопку Override,
    вставляем данный код, формат ввода: PHP code

в Use pager нет возможности выбрать Yes
В Header (как я понимаю, Шапке) нет возможности добавить вообще никакое поле
помогите пожалуйста, не могу понять что не так. может еще какие модули необходимы?

подскажите, а как сделать taxonomy_image ссылкой на термин? что-то я потерялся :(

Dxxxs, я реализовал так:
$output .= '<td><a href="/catalog/'.$term->tid.'"> '. taxonomy_image_display($term->tid) .'<BR>'. $item .'</td>';

А у меня следующий вопрос:
Есть такая структура:
-Раздел
--Подраздел
---Подподраздел

Всё выводится правильно, заходя в Раздел я виду Подраздел, заходя в него я вижу Подподраздел.
Но вот в "Подподраздел" добавлена Нода, и когда я захожу в главный "Раздел" то сверху выводится дочерний термин, а под ним эта нода.
Как сделать, чтобы ноды добавленые в конечный "Подподраздел" выводились только когда я нахожусь на странице самого "Подподраздел" ?

когда добавляете аргумент Taxonomy: Term ID (with depth), попробуйте поиграться с настройкой Depth, указать там 1

Ещё почему-то работать перестает, если использовать модуль Hierarchical Select, хотя с модулем выбирать удобнее в какой термин разместить ноду... Кто поможет с решением?

Суть проблемы в том, что перестает отображаться сам материал, когда заходим в термин в котором он размещен.

А можно ли как -то задавать кол-во терминов, не дочерних, что бы не все сразу выводились ?

не понял вопроса

есть словарь в котором допустим 10 главных терминов и 20 дочерних. Как вывести не все 10,а только 5

Большое спасибо за статью! 100% рабочий вариант.
Очень понравился Ваш код для корня каталога, но мне нужно разместить такой список таксономии в блоке. Я хочу сделать его html-списком, чтобы потом темзировать через CSS и сделать многоуровневое разворачивающееся меню.

Есть ли возможность сделать такой сниппет для вывода каталога развернутым списком с выводом всех дочерних терминов?

Пробовала сделать такой вывод через taxonomy menu, но там у меня с адресами терминов совсем не складывается.

Все. Придумала как:

<?php
$vid = 2;  // Номер словаря
$pole = array();
$items = array();
$terms = taxonomy_get_tree($vid);
//var_dump($terms);

foreach ( $terms as $term ) {
  $count = db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d", $term->tid));
  $pole[]=Array (l($term->name, taxonomy_term_path($term)) . (($count) ? " (".$count.")": ""), $term->depth, $count, $term->tid)  ;
}
$depth =-1;
foreach ($pole as $list) {
  //$depth- глубина предыдущего уровня
  //$list[1] - глубина текущего элемента
  if ($list[1] == $depth) {
    echo "</li>";
    next;
  }
  while ($list[1] != $depth) {
    if ($list[1] > $depth) {
      $depth++;
      echo "\n<ul>";
      next;
    }
    if ($list[1] < $depth) {
      $depth--;
      echo "\n</li>\n</ul>";
    }
  }

  echo "\n<li>$list[0]";
  $depth=$list[1];
}

//Закрываем все открытые теги до нулевого уровня:
$depth=0;
while ($list[1] != $depth) {
  if ($list[1] > $depth) {
    $depth++;
    echo "</li>\n</ul>";
  }
}
?>

Здравствуйте еще раз! Мне надо на странице термина "производителя" вывести еще
1) список коллекций, связанных с ним
2) список товарных групп, связанных с ним

Я точно так же переопределила вывод производителей

Сделала связь терминов. Связала между собой термины из разных словарей. Но аргумент не могу сделать правильный из-за того, что адрес был переопределен.

Создала views - термин
Блок

Поля
(Related term) Таксономия: Термин

Relationships
Таксономия: Связанные термины

А в аргументах не могу разобраться.
Наиболее очевидное

Аргументы
Do not use relationship

Action to take if argument is not present:
Provide default argument
Raw value from URL
Path component: 2

Validator: Термин таксономии
Словари Производители

Argument type: Term name or synonym
Action to take if argument does not validate: Display all values

И в итоге показываются вообще все связанные термины, независимо от текущего. Какие мне настройки поменять, чтобы зафильтровать по текущему термину?

Я пробовала разные варианты. Все пока без толку.

У меня назрел такой вопрос.
Как в "Корне каталога" у дочерних терминов вывести изображения (taxonomy image). Получается вывести только у верхнего уровня.

Структура такая
- Кровельные материалы
-- Металлочерепица
-- Гибкая черепица
-- ...
- ...
...

Вот как у терминов уровня "Металлочерепица" в Корне каталога вывести изображения?

Заранее спасибо!

Зачем делать тормоза цикле в виде
foreach (taxonomy_get_children($term->tid, $vid) as $child) {
если перед этим уже было:
 taxonomy_get_tree(