Taxonomy Redirect на Drupal7 заменит Taxonomy display

Главные вкладки

Аватар пользователя sashken sashken 22 августа 2011 в 8:20

Долго искал замену Taxonomy Redirect для 7-го Друпала. И нашел - Taxonomy display.

САМОЕ ГЛАВНОЕ!!!
Во Views должен быть выключен Вид - Taxonomy term (который вьюсовский) или у этого вида должен быть изменен адрес.
Вместо - taxonomy/term/% пишите любой адрес вида - wwwww/%
Лично я создал клон Вида Taxonomy term, сам Taxonomy term выключил. А в клоне изменил адрес taxonomy/term/% на wwwww/%

Далее, устанавливаем модуль Taxonomy display.

Переходим в настройки вывода словаря таксономии вывод которого вы хотите изменить - admin/structure/taxonomy/ИМЯ_СЛОВАРЯ/display

Внизу на вкладке "Custom display settings" (Расширенные параметры вывода), ставим галочку у "Taxonomy term page" (Страница термина), жмём Save (Сохранить).

Появляется новая подвкладка "Taxonomy term page" (Страница термина), переходим на неё - admin/structure/taxonomy/ИМЯ_СЛОВАРЯ/display/full

Внизу выбираем следующее:
Term display - выбираем Hidden (Скрыто)
Associated content display - выбираем Views (Представления)
View (Просмотреть) - выбираем свой Views (я выбрал ранее созданный клон Taxonomy term)
View's display - выбираем страницу из своего Views
Жмём Save (Сохранить).

Переходим на страницу термина и смотрим результат.

Всё!

Комментарии

Аватар пользователя sashken sashken 17 сентября 2011 в 11:47

Если вы используете Exposed Filters и Pathauto, то для их правильной работы:
в клоне стандартного вида Taxonomy Term не нужно менять адрес на свой, надо оставить адрес taxonomy/term/%

П.С. Все равно не получается так как хочу сделать. Отписал issue на Taxonomy Display

Аватар пользователя XDmitry XDmitry 19 октября 2011 в 21:42

Все сделал, как описано. В представлении создал страницу с адресом (example/%), аргументы по терминам и т.д. Все работает, но кликая по термину я ухожу не на example/..., а на taxonomy/term/... Кто сталкивался с подобным?

P.S. Если я правильно понимаю, то данный модуль оставляет адрес стандартным - taxonomy/term/%. В Taxonomy Redirect все иначе: там задается новый адрес и под этот новый адрес делается представление с критериями вывода. Если это так, то зачем задавать адрес, который указывается в представлении (для дисплея - page (в данном случае example/% или ваш: wwwwww/%))? Получается, что страница доступна по двум адресам?

Аватар пользователя sashken sashken 19 октября 2011 в 22:28

Извиняюсь, забыл написать что надо с помощью Pathauto задать необходимые пути чтобы термины у вас получались такого вида example/%

ПС "...Получается, что страница доступна по двум адресам?" Если по двум адресам открывается, то скорее всего вам нужно установить модуль Global Redirect

Аватар пользователя XDmitry XDmitry 19 октября 2011 в 23:09

Получается, что адрес для page в представлении нужен лишь для формальности. Системный адрес всегда taxonomy/term/%, просто в Pathauto для каждого словаря создать свои синонимы. Идея понятна, но что-то смущает сам модуль.

Аватар пользователя sashken sashken 20 октября 2011 в 10:57

посмотрите у меня на сайте, все работает как надо:
Тут новости выводятся одним вьюсом - http://34355.ru/novosti/proisshestviya
Тут организации другим - http://34355.ru/katalog/avto-moto-transport
Тут материалы с разбивкой по адресам третьим - http://34355.ru/adresa/g-irbit

Аватар пользователя Fox Mulder Fox Mulder 7 июля 2012 в 12:53

Работает только если view, который выставляется на страницах admin/structure/taxonomy/ИМЯ_СЛОВАРЯ/display/full, один и тот же для всех словарей.

То есть, иными словами, не работает, если, например, термины СЛОВАРЯ_1 должны привязываться ко View_1, а термины СЛОВАРЯ_2 должны привязываться ко View_2.

В этом случае, если в обоих view указать адрес taxonomy/term/%, то будет вызываться только какой-то один из них (последний сохраненный).
Чтобы все работало, нужно, чтобы "системные пути" для каждого из словарей были разными. Например, для словаря "Каталог товаров" нужно, чтобы путь был бы типа catalog/xxx, а для словаря "Торговые марки" - brand/xxx (где xxx-tid) Во view_catalog тогда можно будет прописать адрес - catalog/%, а во view_brand - brand/%.

Если копнуть глубже и посмотреть в таблицу url_alias можно убедиться, что все системные пути для всех терминов таксономии - одинаковые taxonomy/term/xxx. Можно даже поменять какой-нибудь из системных путей на свой, чтобы убедиться в корректном вызове нужного нам view.

Если копнуть еще глубже, то замечательный модуль Taxonomy Redirect для D6 использовал хук hook_term_path, который подменяет системные пути терминов. Проблема в том, что в D7 этого хука уже нет.

Я поковырялся и нашел решение на Drupal.org http://drupal.org/node/975688, которое реализовано в модуле Entity Path (http://drupal.org/project/entity_path).

Интерфейс простой, пользоваться легко. Единственное, нужно будет удалить и вновь создать все термины таксономии в Pathauto. Проверить его работу можно так же заглянув в таблицу url_alias.

Простите, если сумбурно...
В общем, у меня нормально работает связка Views - Pathauto - Taxonomy display - Entity path.

Аватар пользователя tamonten tamonten 30 сентября 2013 в 23:38

Fox Mulder wrote:
Работает только если view, который выставляется на страницах admin/structure/taxonomy/ИМЯ_СЛОВАРЯ/display/full, один и тот же для всех словарей.

То есть, иными словами, не работает, если, например, термины СЛОВАРЯ_1 должны привязываться ко View_1, а термины СЛОВАРЯ_2 должны привязываться ко View_2.

В этом случае, если в обоих view указать адрес taxonomy/term/%, то будет вызываться только какой-то один из них (последний сохраненный).
Чтобы все работало, нужно, чтобы "системные пути" для каждого из словарей были разными. Например, для словаря "Каталог товаров" нужно, чтобы путь был бы типа catalog/xxx, а для словаря "Торговые марки" - brand/xxx (где xxx-tid) Во view_catalog тогда можно будет прописать адрес - catalog/%, а во view_brand - brand/%.

...............


Благодарю!!!

Аватар пользователя medneem medneem 21 июля 2012 в 15:04

sashken, у вас на сайте есть страницы каталога, возьмем, например:
родительская рубрика http://34355.ru/catalog/31
и одна из дочерних http://34355.ru/catalog/49
Как вы это реализовали?
У меня получилось также реализовать двумя видами и при помощи модуля Taxonomy Views Integrator. Бился с модулем Taxonomy Display, но получалось либо с одним, либо с другим видом.

Аватар пользователя sashken sashken 22 июля 2012 в 9:29

medneem, у меня сейчас новая версия сайта, её делал не я (мне делали на заказ), поэтому я не могу подсказать как и что там сделано.

Аватар пользователя yagoo yagoo 18 ноября 2012 в 0:00

"Fox Mulder" wrote:
Я поковырялся и нашел решение на Drupal.org http://drupal.org/node/975688, которое реализовано в модуле Entity Path (http://drupal.org/project/entity_path).
Интерфейс простой, пользоваться легко. Единственное, нужно будет удалить и вновь создать все термины таксономии в Pathauto. Проверить его работу можно так же заглянув в таблицу url_alias.

Объясните, пожалуйста, как им пользоваться, если будет время. Я что-то не могу понять что к чему..

Аватар пользователя mNigma@drupal.org mNigma@drupal.org 14 февраля 2013 в 0:22

Всем привет!
Подскажите, почему может не срабатывать Taxonomy display?
entity_path не ставил, просто клонировал базовое представление taxonomy, в базовом одни поля в клонированном другие. Все настроил в отображении, но клонированный views не хватается, все отображает базовый.

UP. Подскажите, есть другой модуль? Уже 7 часов убил на Taxonomy display с разными настройками - не работает, пора наверно что-то другое пробовать.

UP2 Главное не сдаваться Smile Не используйте базовое представление таксономии и не создавайте нового с путем taxonomy/term/% и все заработает.

Аватар пользователя tony_m tony_m 17 февраля 2013 в 7:14

<a href="mailto:mNigma@drupal.org">mNigma@drupal.org</a> wrote:
Всем привет!
Подскажите, почему может не срабатывать Taxonomy display?
entity_path не ставил, просто клонировал базовое представление taxonomy, в базовом одни поля в клонированном другие. Все настроил в отображении, но клонированный views не хватается, все отображает базовый.

UP. Подскажите, есть другой модуль? Уже 7 часов убил на Taxonomy display с разными настройками - не работает, пора наверно что-то другое пробовать.

UP2 Главное не сдаваться Smile Не используйте базовое представление таксономии и не создавайте нового с путем taxonomy/term/% и все заработает.

Настроил синоним урл для терминов таксономии следующим образом

Корень.ру/search/place/[машинное имя словаря таксономии]/id термина

результат http://корень сайта/search/place/typesofplace/1

Контекстные фильтры:
(термин) Термин таксономии: Родительский термин
(термин) Термин таксономии: ID термина

Путь: /search/place/%/%

В предпросмотре все работает отлично, но вот на страницу не выводится

в расширенных параметрах отображения термина отметил страница термина, на странице термина указал что показывать надо представление, Term display - hidden

Подскажите, что я упускаю?

Аватар пользователя mNigma@drupal.org mNigma@drupal.org 18 февраля 2013 в 19:37

"tony_m" wrote:
Подскажите, что я упускаю?

У меня в конт фильтре только Содержимое: Имеет идентификатор термина таксономии + в нем критерии проверки "Термин таксономии".
И путь наверно просто сделать в таком виде /search/place/%

Аватар пользователя tony_m tony_m 18 февраля 2013 в 23:39

"<a href="mailto:mNigma@drupal.org">mNigma@drupal.org</a>" wrote:
У меня в конт фильтре только Содержимое: Имеет идентификатор термина таксономии + в нем критерии проверки "Термин таксономии".
И путь наверно просто сделать в таком виде /search/place/%

Вот сегодня попробывал через id - выводится без проблем. Но я хочу чтобы был было имя термина транслитом, в pathauto все настроил, но фильтр ( (термин) Термин таксономии: Имя ) подставляет только русское имя термина в предпросмотре на кириллице выводится, а на латинице нет, какой фильт нужно подставить?

Аватар пользователя mNigma@drupal.org mNigma@drupal.org 20 февраля 2013 в 2:47

"tony_m" wrote:
какой фильт нужно подставить?

оставить id термина. Как не настраивать путь в pathauto, views видит его все равно таким taxonomy/term/id_term

Аватар пользователя ilami ilami 4 апреля 2013 в 13:57

У меня получился вот такой работающий алгоритм на базе данного и еще вот [#88085]этого[/#] топиков.

1. Создать нужные словари таксономий. Configuration > Search & metadata > URL Aliases > Patterns вручную прописать паттерны для словарей таксономий. По умолчанию путь для таксономий выглядит так: [term:vocabulary]/[term:name], вместо [term:vocabulary] надо вручную написать имя словаря (или любое другое имя, которое потом будет использоваться во вьюсах; удобнее, если это будет имя словаря). Например: topics/[term:name].
2. Отключить штатный вьюс Taxonomy term.
3. Создать представление для типа данных User. В нем создать отдельные варианты типа Page для каждого словаря таксономии, который используется в профилях пользователей. Установить путь (Path) вида: /taxonomy/***/%, где *** - имя, которое используется в паттерне данного словаря.
4. В контекстных фильтрах выставить поле термина таксономии, которое используется в профиле, установив ему значение по умолчанию: ID термина таксономии из URL.
5. Теперь понадобится модуль Taxonomy Display. Переходим в настройки вывода словаря таксономии, вывод которого вы хотите изменить – admin > structure > taxonomy > ИМЯ_СЛОВАРЯ > display.
6. Внизу на вкладке "Custom display settings" (Расширенные параметры вывода), ставим галочку у "Taxonomy term page" (Страница термина), жмём Save (Сохранить).
7. Появляется новая подвкладка "Taxonomy term page" (Страница термина), переходим на неё - admin/structure/taxonomy/ИМЯ_СЛОВАРЯ/display/full
8. Внизу выбираем следующее:
- Term display - выбираем Hidden или Core, в зависимости от того, нужно ли отображать содержимое описания термина или только привязанных к ниму польователей. Оптимально выбирать Core – и таким образом совмещаем все достоинства сущности таксономии седьмого Друпала (любой набор полей!) и, собственно, работающую таксономию.
- Associated content display - выбираем Views (Представления)
- View (Просмотреть) - выбираем свой Views (я выбрал ранее созданный клон Taxonomy term)
- View's display - выбираем страницу из своего Views
9. Повторяем все это для каждого словаря таксономий, который нужно использовать в профилях пользователей.

Все работает.

Аватар пользователя tony_m tony_m 3 мая 2013 в 10:25

У меня все та же проблема с переопределением заголовка, когда в урл указан tid - переопределяется, а когда имя термина - не переопределяется, остается имя из таксономии.

Например:
если зайти по аресу .../search/place/type/13 - Заголовок переопределяется "Гостиница в Сочи"
.../search/place/type/hotel - не переопределяется "Гостиница", но Taxonomy display работает

в чем может быть проблема?

Аватар пользователя MainVisor MainVisor 3 мая 2013 в 15:10

Из статистики на d.org выходит, что количество багов в TVI резко снизили в последнем апдейте. Несколькими месяцами ранее TVI работал с большими проблемами. Как сейчас не знаю, работает нормально?

Аватар пользователя Artu Artu 3 мая 2013 в 15:21

Вчера поставил последний dev. Полет нормальный. Позволяет определить view как на уровне словаря, так и на уровне термина (возможно с подтерминами). Перекрывает Taxonomy Dispalay.

Аватар пользователя zanami zanami 24 мая 2013 в 10:54

TVI не умеет вообще отключить вывод списка для термина или словаря, или я не нашел?
Надо что-то типа 404 ошибки или редиректа. У меня страницы со списками формируются отдельно (views field), встроенные не нужны. Пробовал рядом поставить disable_term_node_listings — он вообще не работает рядом с TVI.

Аватар пользователя tlito tlito 1 июня 2014 в 22:35

Спасибо! Тема была полезной, так как об этом мне уже не раз говорили.
Модуль Taxonomy display очень прост и не несёт особой нагрузки, просто добавляет 1 важную возможность.
В частности, у меня была задача: выводить на странице термина материалы определённого типа, на странице родительского термина показывать также материалы, отнесенные к дочерним терминам.
С помощью Вьюс - и это предложение я часто слышал - я сделал нужный формат отображения:
Тизеры материалов определённого типа с контекстным фильтром - ID термина таксономии, взятый из адреса страницы с выводом дочерних терминов.
В выводе термина таксономии выбрал вместо ядро, Views - созданный вьюс. И получилось.

Аватар пользователя NikolaiT NikolaiT 1 декабря 2014 в 1:43

Не совсем понял. Модуль Taxonomy display дает возможность оформить с помощью отдельного Вьюса термины, а не содержимое (типы материалов) выводимое внутри терминов?

Аватар пользователя sergey-shulipa sergey-shulipa 6 октября 2015 в 21:43

Разобрался! Спасибо ТС, но все систематизировала именно marigolu. Спасибище Вам! Кто сразу не разобрался, красивый ответ - по указанной marigolu ссылке.

Аватар пользователя kind cat kind cat 27 апреля 2016 в 13:21

Все привет.
У меня стояла задача вывести страницу с терминами которые вели бы на свои вью (site.ru->catalog->term1->список нод относящихся к term1 через вьюс)
Алгоритм был прост
1. Установка Taxonomy display.
2. Создаем словарь терминов.
3. Создаем нужный тип ноды.
4. Добавляем поле словаря в ноду.
5. Добавляем ноды.
6. Создаем страницу вывода словаря терминов через вьюху (z.B. site.ru/catalog)
7. Создаем вьюху без создания страницы/блока для нашего типа нод. Выбираем контекстный фильтр "Содержимое: Имеет идентификатор термина таксономии" -> "Передать значение по умолчанию" -> "ID термина из URL"
8. В настройке управления отображением словаря включаем способ отображения "Страница термина таксономии"
9. Переходим в настройки страницы термина таксономии, настраиваем Taxonomy display:
- Associated content display:Представления
- Просмотр: Наша вьюха из п.7

В итоге: заходим в наш каталог site.ru/catalog - видим вьюху словаря, кликаем по термину - вью термина с примененным контекстным фильтром.

Возможно мой метод чем то плох? если так, расскажите пожалуйста

Аватар пользователя VasyOK VasyOK 27 апреля 2016 в 17:14

Метод ничем не плох. Если это D7, метатеги задать можете? (Вообще метод есть, но мне он кажется муторным)
+ некоторым сеонисты требуют не выводить описание категории на второй и последующих страницах термина.