Взгляды, таксономия, блок и контекст ... что я делаю не так?

drupal.stackexchange https://drupal.stackexchange.com/questions/3168

Вопрос

Что я хочу:
Когда я перейду на страницу ... определенного типа контента ... который помечен термином ... Я хочу, чтобы блок, созданный с помощью представлений, должен сгенерировать список страниц с этим термином.

Я скорректировал свою установку, чтобы свести из статей с таксономией: спорт и термины: гольф, хоккей и т. Д.

Настраивать
У меня есть тип контента «статья» с полями (за другие):

Title
Portal (Term - Singular term allowed)

У меня есть настройка таксономии просмотров, так что, учитывая контекст термина, он должен отфильтровать в список страниц, которые имеют этот термин (код внизу вопроса) ...

Он работает при настройке в качестве страницы и в разделе «Предварительный просмотр» (как показано на рисунке). Это не работает при перемещении в блок.enter image description here

Что показывает:
Обратите внимание на «Спорт: гольф», но в списке спорта показаны все страницы портала (не отфильтрованы). Статья помечена, но список не получает «контекст». Если бы я был прокручивать вниз, были бы показаны все «спортивные страницы», но я хочу только те, которые перечислены в данном контексте (гольф в этом примере).Demo

Редактировать
Это упоминается, чтобы использовать «таксономический идентификатор по URL» ... это не работает. В URL нет «таксономии» - либо фондовый узел/#, либо через псевдоним URL Myip/Portal/Safety/Home (псевдоним PathAuto, который имеет в нем имя термина ... но не идентификатор. Портал/8/дом. Это очень "красиво", и я не уверен, что это тоже сработает, хотя я могу попробовать)

Хорошо ... Я отрегулировал автоматический псевдоним через PathAuto ... Сделав его портал/8/Home ([Узел: Термин: словарь]/[Узел: TID]/[Узел: заголовок]) все еще не работает. Этот псевдоним указывает на узел/#, и это все еще не превращается в «термин через URL», поскольку в URL нет термина.

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

Я не хочу перейти к «типу контента как термин» - где у каждого портала есть собственный тип контента - но на данный момент ... если я хочу двигаться вперед, я тоже могу иметь.

Посмотреть экспорт

$view = new view;
$view->name = 'content';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Content';
$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'] = 'Portal List';
$handler->display->display_options['use_ajax'] = TRUE;
$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['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'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'title' => 'title',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'title' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
  ),
);
$handler->display->display_options['style_options']['override'] = 1;
$handler->display->display_options['style_options']['sticky'] = 0;
$handler->display->display_options['style_options']['empty_table'] = 0;
$handler->display->display_options['exposed_block'] = TRUE;
/* Field: Taxonomy: Term */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['label'] = '';
$handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['name']['alter']['external'] = 0;
$handler->display->display_options['fields']['name']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['name']['alter']['trim'] = 0;
$handler->display->display_options['fields']['name']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['name']['alter']['html'] = 0;
$handler->display->display_options['fields']['name']['element_label_colon'] = 0;
$handler->display->display_options['fields']['name']['element_default_classes'] = 1;
$handler->display->display_options['fields']['name']['hide_empty'] = 0;
$handler->display->display_options['fields']['name']['empty_zero'] = 0;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = 0;
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Sort criterion: Taxonomy: Term */
$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';
/* Sort criterion: Content: Title */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
/* Contextual filter: Taxonomy: Term */
$handler->display->display_options['arguments']['name']['id'] = 'name';
$handler->display->display_options['arguments']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['arguments']['name']['field'] = 'name';
$handler->display->display_options['arguments']['name']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['name']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['name']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['name']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['name']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['name']['glossary'] = 0;
$handler->display->display_options['arguments']['name']['limit'] = '0';
$handler->display->display_options['arguments']['name']['transform_dash'] = 0;
$handler->display->display_options['arguments']['name']['break_phrase'] = 0;
$handler->display->display_options['arguments']['name']['add_table'] = 0;
$handler->display->display_options['arguments']['name']['require_value'] = 0;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'portal' => 'portal',
);

/* Display: Portal List */
$handler = $view->new_display('block', 'Portal List', 'portal_list');
$handler->display->display_options['display_comment'] = 'Displays a list of pages for a given Taxonomy Term Context
';
$handler->display->display_options['block_description'] = 'Portal';
$translatables['content'] = array(
  t('Master'),
  t('Portal List'),
  t('more'),
  t('Apply'),
  t('Reset'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('All'),
  t('Portal'),
);
Это было полезно?

Решение 2

Я на самом деле перешел от этого в модульную «иерархию узла», которая в сочетании с путем-авто и блоком меню творит чудеса.

Но для взглядов ... проблема была решена с правильными «отношениями». Либо отношения на идентификаторе таксономии, описание или заголовок ... против поля на узле. У меня нет этого передо мной, но если мне попросят, у меня все еще есть в моих заметках где -то.

Другие советы

Фундаментальная «проблема» заключается в том, что блочные дисплеи не получают аргументации от URL, что нормально. Таким образом, вам нужно предоставить способ дать блоку отображать аргумент из URL. Подождите, в URL есть только NID.

Таким образом, есть замечательная вещь, называемая «аргумент по умолчанию», которую вы можете настроить в аргументе, который позволяет вам вносить какие -либо аргументы. Вам нужно «Таксономия: термин от URL», и все.

Мне пришлось сделать все вышеперечисленное и удалить третий аргумент из моего COMNAL_EMBED_VIEW CALL:

<?php print views_embed_view('recommended_documents', 'three', **$node->id**); ?>

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top