Как переопределить список таксономий / терминов /% в представлении?

28

У меня есть словарь, связанный с типом контента. Только один термин может быть выбран для классификации узла, созданного с этим типом контента. Словарь называется «Транспортные средства» и имеет термины «автомобили, грузовики, лодки». Тип контента также называется «Транспорт».

Я использую путь авто, чтобы он показывал [словарь: имя] / [термин: имя], поэтому при визуализации он будет показывать, например, site.com/vehicles/trucks, который покажет все грузовики ... типичные вещи Drupal .. Хорошо...

Теперь у меня есть представление, которое представляет собой страницу с путем «транспортные средства». Он настроен на отображение всех элементов типа «транспортные средства». Это представление страницы также настроено для принятия аргумента «идентификатор термина таксономии».

Обратите внимание, что когда присутствует термин таксономии, псевдоним URL, сгенерированный для пути таксономии, точно такой же, как и на странице Представлений с предоставленным аргументом:

URL Псевдоним таксономии путь = транспортные средства / грузовики. Страница просмотров с аргументом = автомобили / грузовики.

Это специально. Моя цель состояла в том, чтобы показать все результаты этого типа контента, когда аргумент отсутствовал, и когда он присутствовал, это было бы наиболее важно отфильтровать результаты на основе этого термина таксономии И сохранить те же поля и структуру, что и без аргумента (так же, как site.com/vehicles).

Проблема в том, что это не работает, как ожидалось. site.com/vehicles правильно показывает мой взгляд и связанные фильтры. site.com/vehicles/trucks показывает только обычный, неформатированный список таксономии, предоставленный Drupal.

Это потому, что аргумент идентификатора термина таксономии настроен неправильно?

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

Я знаю, что вы собираетесь предложить - в представлениях есть представление таксономии / термина /% для переопределения представлений по умолчанию для друпалов.

Однако в моем случае это не сработает. У меня есть несколько типов контента, каждый из которых имеет свой собственный словарь, и у каждого из них свой вид и различный набор полей (например, дома и машины имеют очень разные наборы полей). Таксономия / термин /% сработала бы, если бы все типы контента имели одинаковые поля, тогда я мог бы просто имитировать те в этом переопределении, но так как это не так, как я могу правильно получить свой путь с аргументом, чтобы показать результаты, основанные на этот словарный термин и сохранить мою структуру поля?

Извините, если это сбивает с толку. Ссылка на сайт для справки http://www.buyagainbaby.com . В настоящее время сайт использует таксономию / термин /% в качестве переопределения, но, опять же, это должно измениться, чтобы каждое представление отвечало за то, как оно отображает свой набор результатов на основе таксономии.

blue928
источник

Ответы:

20

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

Я нашел решение, которое отлично подходит для моей ситуации, и я поделюсь им, если оно может помочь вам, ребята.

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

Чтобы решить эту проблему, я установил модуль Taxonomy Display http://drupal.org/project/taxonomy_display . Затем я перенастроил каждое представление так, чтобы в качестве аргумента использовался идентификатор термина таксономии.

Дисплей таксономии позволяет связать словарь с определенным видом. Теперь, когда я нажимаю на транспортные средства / грузовики, которые являются псевдонимом для таксономии / term / 3, представление вступает во владение, и это фактически отображается правильно, сохраняя целостность структуры поля.

Если кто-то хочет узнать больше информации о конфигурации, пожалуйста, дайте мне знать.

blue928
источник
Ваше решение звучит как отличный план! К сожалению, я не получаю "Дисплей таксономии, позволяющий связать словарь с определенным видом" - часть ... Не могли бы вы объяснить мне немного подробнее?
Мишель
После установки модуля отображения таксономии вы увидите в его настройках параметры для управления отображением списков терминов таксономии. Виды это вариант. Вы выбираете представление, а затем выбираете, какой элемент в этом представлении вы хотите, чтобы элементы списка таксономии выглядели. Все это предполагает, что вы уже создали представление, которое перечисляет содержимое так, как вы хотите. После того как вы нажмете «Сохранить», ваш список таксономии будет выглядеть точно так же, как результат просмотра, выбранного вами в настройках.
blue928
7

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

  • Каждый путь должен быть уникальным для доступа к странице, термину, представлению или панели страниц. Если у вас есть две части контента с одним и тем же адресом, вы теряете контроль над дисплеем. Drupal дает термин таксономии приоритет над представлениями, поэтому он не будет вызываться. Определение View с использованием таксономии / term / # будет перехватывать термин таксономии, но, как вы указали, не отображает значимый URL.

  • Представления не отвечают на псевдонимы. Это потому, что первое, что Drupal делает с любым запросом, - это преобразование псевдонима в стандарт формата узла / nid для всего контента Drupal. Таким образом, в вашем случае автомобили / грузовики преобразуются в узел / #, присвоенный виду. Представление не может получить контекст из псевдонима напрямую.

Чтобы получить то, что вы хотите, вы делаете одну из нескольких вещей.

  • Создайте меню с обратными вызовами, установленными на путь вашего просмотра. Это создаст правильный URL и позволит представлению ответить.

  • Используйте панели с включенным Page Manager (в Ctools Suite). Если вы определите панель страниц, определенную для соответствующего URL-адреса, вы можете поместить свой вид на панель панели или передать контекст со страницы панели непосредственно на панель содержимого видов. Панель содержимого не имеет пути. Вместо этого для создания своего контента нужны контексты, такие как путь, заданный непосредственно панелью страницы. Этот видео сериал на nodeone.se демонстрирует, как эффективно использовать панели и менеджер страниц.

  • Еще один способ вывести контент на экран - использовать модуль quicktabs . Я не думаю, что он подходит для вашей конкретной ситуации, но он также может напрямую подключаться к представлениям, выбирая вкладки, которые вы определяете для страницы.

штучный камень
источник
3

Представления имеют встроенное представление, которое эмулирует и заменяет термины таксономии. Просто включите его, чтобы переопределить списки таксономии с представлениями. Вид таксономии

Джереми Джон
источник
2

Я на самом деле сделал то же самое несколько дней назад. Мое решение не элегантно, но оно работает. Я переопределил отображение термина таксономии с помощью панелей, а не представлений. Затем я добавил все свои разные представления для каждого термина в область содержимого Panels. Поскольку в моем случае каждое представление имеет фильтр, который ограничивает его результатами определенного словаря, при посещении страницы терминов таксономии он показывает только представление для этого конкретного словаря.

Дайте мне знать, если вам нужно больше информации о том, как я это реализовал.

Патрик Кенни
источник
Я не большой поклонник панелей, но это возможный маршрут. Кроме того, я следовал этому руководству здесь leveltendesign.com/blog/dustin-currie/… . Это работает отлично, за исключением того, что он использует идентификационный номер таксономии, но мне нужно имя таксономии, как с дефисами вместо пробелов. Вы когда-нибудь делали какие-то хитрости?
blue928
2
Мы делаем это все время. Панели определяют страницу для этого (хотя и отключена по умолчанию) из коробки, поэтому я вряд ли назвал бы это неэлегантным.
mpdonadio
Я хотел бы больше деталей! :)
Крис Хэппи
1

WebbyKat предложил отличное решение, чтобы /taxonomy/term/%вместо пути к вашей странице/categories/%

Это работает, но переписывает все ваши термины в одно представление.

timofey.com
источник