У меня есть словарь, связанный с типом контента. Только один термин может быть выбран для классификации узла, созданного с этим типом контента. Словарь называется «Транспортные средства» и имеет термины «автомобили, грузовики, лодки». Тип контента также называется «Транспорт».
Я использую путь авто, чтобы он показывал [словарь: имя] / [термин: имя], поэтому при визуализации он будет показывать, например, site.com/vehicles/trucks, который покажет все грузовики ... типичные вещи Drupal .. Хорошо...
Теперь у меня есть представление, которое представляет собой страницу с путем «транспортные средства». Он настроен на отображение всех элементов типа «транспортные средства». Это представление страницы также настроено для принятия аргумента «идентификатор термина таксономии».
Обратите внимание, что когда присутствует термин таксономии, псевдоним URL, сгенерированный для пути таксономии, точно такой же, как и на странице Представлений с предоставленным аргументом:
URL Псевдоним таксономии путь = транспортные средства / грузовики. Страница просмотров с аргументом = автомобили / грузовики.
Это специально. Моя цель состояла в том, чтобы показать все результаты этого типа контента, когда аргумент отсутствовал, и когда он присутствовал, это было бы наиболее важно отфильтровать результаты на основе этого термина таксономии И сохранить те же поля и структуру, что и без аргумента (так же, как site.com/vehicles).
Проблема в том, что это не работает, как ожидалось. site.com/vehicles правильно показывает мой взгляд и связанные фильтры. site.com/vehicles/trucks показывает только обычный, неформатированный список таксономии, предоставленный Drupal.
Это потому, что аргумент идентификатора термина таксономии настроен неправильно?
Это проблема с весом, когда таксономические крючки запускаются после просмотра? Если так, как я могу переставить веса здесь, чтобы они срабатывали правильно и давали мне результаты, которые мне нужны?
Я знаю, что вы собираетесь предложить - в представлениях есть представление таксономии / термина /% для переопределения представлений по умолчанию для друпалов.
Однако в моем случае это не сработает. У меня есть несколько типов контента, каждый из которых имеет свой собственный словарь, и у каждого из них свой вид и различный набор полей (например, дома и машины имеют очень разные наборы полей). Таксономия / термин /% сработала бы, если бы все типы контента имели одинаковые поля, тогда я мог бы просто имитировать те в этом переопределении, но так как это не так, как я могу правильно получить свой путь с аргументом, чтобы показать результаты, основанные на этот словарный термин и сохранить мою структуру поля?
Извините, если это сбивает с толку. Ссылка на сайт для справки http://www.buyagainbaby.com . В настоящее время сайт использует таксономию / термин /% в качестве переопределения, но, опять же, это должно измениться, чтобы каждое представление отвечало за то, как оно отображает свой набор результатов на основе таксономии.
источник
Я считаю, что есть несколько факторов, которые необходимо учитывать при настройке:
Каждый путь должен быть уникальным для доступа к странице, термину, представлению или панели страниц. Если у вас есть две части контента с одним и тем же адресом, вы теряете контроль над дисплеем. Drupal дает термин таксономии приоритет над представлениями, поэтому он не будет вызываться. Определение View с использованием таксономии / term / # будет перехватывать термин таксономии, но, как вы указали, не отображает значимый URL.
Представления не отвечают на псевдонимы. Это потому, что первое, что Drupal делает с любым запросом, - это преобразование псевдонима в стандарт формата узла / nid для всего контента Drupal. Таким образом, в вашем случае автомобили / грузовики преобразуются в узел / #, присвоенный виду. Представление не может получить контекст из псевдонима напрямую.
Чтобы получить то, что вы хотите, вы делаете одну из нескольких вещей.
Создайте меню с обратными вызовами, установленными на путь вашего просмотра. Это создаст правильный URL и позволит представлению ответить.
Используйте панели с включенным Page Manager (в Ctools Suite). Если вы определите панель страниц, определенную для соответствующего URL-адреса, вы можете поместить свой вид на панель панели или передать контекст со страницы панели непосредственно на панель содержимого видов. Панель содержимого не имеет пути. Вместо этого для создания своего контента нужны контексты, такие как путь, заданный непосредственно панелью страницы. Этот видео сериал на nodeone.se демонстрирует, как эффективно использовать панели и менеджер страниц.
Еще один способ вывести контент на экран - использовать модуль quicktabs . Я не думаю, что он подходит для вашей конкретной ситуации, но он также может напрямую подключаться к представлениям, выбирая вкладки, которые вы определяете для страницы.
источник
Представления имеют встроенное представление, которое эмулирует и заменяет термины таксономии. Просто включите его, чтобы переопределить списки таксономии с представлениями.
источник
Я на самом деле сделал то же самое несколько дней назад. Мое решение не элегантно, но оно работает. Я переопределил отображение термина таксономии с помощью панелей, а не представлений. Затем я добавил все свои разные представления для каждого термина в область содержимого Panels. Поскольку в моем случае каждое представление имеет фильтр, который ограничивает его результатами определенного словаря, при посещении страницы терминов таксономии он показывает только представление для этого конкретного словаря.
Дайте мне знать, если вам нужно больше информации о том, как я это реализовал.
источник
WebbyKat предложил отличное решение, чтобы
/taxonomy/term/%
вместо пути к вашей странице/categories/%
Это работает, но переписывает все ваши термины в одно представление.
источник