Сделал таксономию по типу:
Овощи
-Картошка
-Томат
-Морковь
Фрукты
-Яблоко
-Груша
-Абрикос
Включил вьюху Taxonomy term (A view to emulate Drupal core's handling of taxonomy/term).
Хочу, чтобы на странице "Овощи" были овощи.
Как?
Сделал таксономию по типу:
Овощи
-Картошка
-Томат
-Морковь
Фрукты
-Яблоко
-Груша
-Абрикос
Включил вьюху Taxonomy term (A view to emulate Drupal core's handling of taxonomy/term).
Хочу, чтобы на странице "Овощи" были овощи.
Как?
Комментарии
А может все таки не хочешь?
views
Переиначим.
Овощи
-корнеплоды
--картошка
--морковка
Вот ссылку на корнеплоды не получается сделать. И всё, что в корнеплодах, не показывается, т.е. тизеров нет, т.к. это подкатегория. Как же добраться до них?
Во вьюхе по-умолчанию стоит тип отображаемого Content.
Ставлю Fields.
Добавляю поле Content: Body, ставлю трим на 600, т.е. делаю тизеры, как и было.
Добавляю поле Content: All taxonomy terms.
Получается просто ссылка на этот же термин, т.е. корневой.
Фантазия дальше не помогает.
Has taxonomy term ID (with depth), has taxonomy term ID depth.
Покажите дальше дорогу.
Транслирую на страницу термина Fields Content: All taxonomy term
Фильтр такой:
Content: Has taxonomy term ID (with depth)
Depth 10 (максимальная)
Дальше настройки ни на что не влияют.
Имеем: родительский термин показывает вложенные плюс себя самого.
Вложенный термин показывает только себя.
Надо: родительский термин показывает только вложенные, а вложенные не должны иметь ничего.
Тьфу, звиняюсь, соврал Вам!
Добавляем контекстный фильтр "Родительский термин", в настройках: Обеспечить значение по умолчанию → Тип - term ID from url → Load default filter from term page → Specify validation criteria → Термин таксономии.
Разумеется, отображение блока.
Айдар
---поправил
Никак не мог найти "(term) Taxonomy term: Parent term".
Оказывается, чтобы появились дополнительные аргументы, надо врубить Relationships
Content: Taxonomy terms on node
Спасибо!
Нарисовалась проблема — появились повторы вложенных терминов таксономии согласно количеству материалов с ними:
href="http://www.drupal.ru/node/38090#comment-431318
Неужели нет готового решения элементарной задачи?
Не подтверждаю!
Айдар
Смотрите, как я делал
Создать Views
"Разделы и подразделы"
Дисплей "Страница с подтерминами" (Page)
Format
Format: Unformatted list
Show: Content
Teaser
+Display links
Advanced
Contextual filters
***
Content: Has taxonomy term ID (with depth)
+Allow multiple values
When the filter value is NOT in the URL
Show "Page not found"
+Specify validation criteria
Validator
taxonomy term
Filter value type
Term ID
Action to take if filter value does not validate
Show "Page not found"
***
Content: Has taxonomy term ID depth modifier
***
Дисплей "Список подразделов" (Block)
Format: Unformatted list | Settings
Show: Fields | Settings
Fields
***
Content: All taxonomy terms (Подразделы)
Label
Подразделы
+Link this field to its term page
Unordered list
***
Advanced
Contextual filters
***
(term) Taxonomy term: Parent term
Relationship
term
When the filter value is NOT available
Provide default value
Taxonomy term ID from URL
+Load default filter from term page
+Display record count with link
+Specify validation criteria
Validator
Taxonomy term
+Категории для материалов (например, название словаря)
Filter value type
Term ID
***
Relationships
***
Content: Taxonomy terms on node (включить перед Taxonomy term: Parent term)
***
Administration » Structure » Blocks
Поместить блок
View: Разделы и подразделы: Список подразделов
в регион Content
Собственно, то же самое.
Смотрите, у меня во вьюшке дисплеи:
1."Страница с подтерминами", в котором показывается "Content Teaser"
При этом фильтры:
Content: Has taxonomy term ID (with depth)
Content: Has taxonomy term ID depth modifier
Это страница для блогоподобной ленты материалов в категории.
2. Блок "Список подразделов"
При этом фильтр:
(term) Taxonomy term: Parent term
Relationships:
Content: Taxonomy terms on node
Это как раз для отображения списка подтерминов таксономии.
На сколько я понял, второй дисплей у меня как ваш пример.
Пытаюсь по-другому
Нашёл ещё одно решение, и снова нерабочее для текущей версии. Выводит все имеющиеся термины таксономии. Везде.
Это тоже не помогло.
Мля, попкорн кончился.
Боже мой, я не верю органам чувств! Неужели, после почти месяца извратов, я нашёл то, что нужно?
Оргазм
Нашёл вьюху, которая меня устроила:
$view->name = 'child_terms';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'Child Terms';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = '%1 Sub-Categories';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'list';
$handler->display->display_options['style_options']['class'] = 'sub-cat';
$handler->display->display_options['row_plugin'] = 'fields';
/* Relationship: Taxonomy term: Parent term */
$handler->display->display_options['relationships']['parent']['id'] = 'parent';
$handler->display->display_options['relationships']['parent']['table'] = 'taxonomy_term_hierarchy';
$handler->display->display_options['relationships']['parent']['field'] = 'parent';
$handler->display->display_options['relationships']['parent']['required'] = 0;
/* Field: Taxonomy term: Name */
$handler->display->display_options['fields']['name_1']['id'] = 'name_1';
$handler->display->display_options['fields']['name_1']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name_1']['field'] = 'name';
$handler->display->display_options['fields']['name_1']['label'] = '';
$handler->display->display_options['fields']['name_1']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['external'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['name_1']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['name_1']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['trim'] = 0;
$handler->display->display_options['fields']['name_1']['alter']['html'] = 0;
$handler->display->display_options['fields']['name_1']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['name_1']['element_default_classes'] = 1;
$handler->display->display_options['fields']['name_1']['hide_empty'] = 1;
$handler->display->display_options['fields']['name_1']['empty_zero'] = 1;
$handler->display->display_options['fields']['name_1']['link_to_taxonomy'] = 1;
/* Sort criterion: Taxonomy term: Name */
$handler->display->display_options['sorts']['name']['id'] = 'name';
$handler->display->display_options['sorts']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['sorts']['name']['field'] = 'name';
$handler->display->display_options['sorts']['name']['order'] = 'DESC';
/* Contextual filter: Taxonomy term: Term ID */
$handler->display->display_options['arguments']['tid']['id'] = 'tid';
$handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_term_data';
$handler->display->display_options['arguments']['tid']['field'] = 'tid';
$handler->display->display_options['arguments']['tid']['relationship'] = 'parent';
$handler->display->display_options['arguments']['tid']['default_action'] = 'default';
$handler->display->display_options['arguments']['tid']['exception']['title_enable'] = 1;
$handler->display->display_options['arguments']['tid']['exception']['title'] = '%1 Sub-Categories';
$handler->display->display_options['arguments']['tid']['default_argument_type'] = 'taxonomy_tid';
$handler->display->display_options['arguments']['tid']['default_argument_options']['term_page'] = 1;
$handler->display->display_options['arguments']['tid']['default_argument_options']['node'] = 0;
$handler->display->display_options['arguments']['tid']['default_argument_options']['limit'] = 0;
$handler->display->display_options['arguments']['tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['tid']['specify_validation'] = 1;
$handler->display->display_options['arguments']['tid']['validate']['type'] = 'taxonomy_term';
$handler->display->display_options['arguments']['tid']['validate_options']['vocabularies'] = array(
'product_categories' => 0,
'categories' => 0,
'tags' => 0,
'plant_types' => 0,
'health_categories' => 0,
'faq_category' => 0,
'gallery_collections' => 0,
'newsletter' => 0,
'sources' => 0,
);
$handler->display->display_options['arguments']['tid']['validate_options']['type'] = 'tids';
$handler->display->display_options['arguments']['tid']['validate_options']['transform'] = 0;
$handler->display->display_options['arguments']['tid']['break_phrase'] = 1;
$handler->display->display_options['arguments']['tid']['not'] = 0;
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
$handler->display->display_options['block_caching'] = '4';
/* Display: Block2 */
$handler = $view->new_display('block', 'Block2', 'block_1');
$translatables['child_terms'] = array(
t('Master'),
t('%1 Sub-Categories'),
t('more'),
t('Apply'),
t('Reset'),
t('Sort by'),
t('Asc'),
t('Desc'),
t('Parent'),
t('Block'),
t('Block2'),
);
Делает то же, что и модуль, только, само собой, гибче значительно.