Структура сайта на основе терминов таксономии

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

Аватар пользователя Balor Balor 20 мая 2018 в 14:35

Всем привет! Ребят помогите новичку, решил построить структуру сайта на основе терминов таксономии, так как мне кажется это самым простым результатом что-бы не запутаться потом в ссылках. Выглядеть это должно примерна так, нужно создать ноду которая выводит все термины таксономии из словаря. Родительские термины таксономии должны быть якорными ссылками на заголовки категорий выводимых в ноде. Дочерние термины должны быть ссылками на ноды с описанием товара. Для большей наглядности набросал такую схемку.

Схема сайта

Вот тут у меня как у новичка возникает много вопросов.
1) Что происходит когда у меня к примеру есть термин таксономии со своей ссылкой, и я создаю вьюшку, или ноду с тем же адресом, что чего перекроет? Если я правильно понимаю, я получаю два разных адреса, и что бы этого избежать мне нужно переопределить контроллер так?

2) Как подменить контроллер таксономии, контроллером ноды, чтобы иметь один контроллер для вывода результата по данному url, нужно писать свой модуль, или это можно сделать в файле темы?

3) Как вывести все термины таксономии в ноду, при этом родительские термины должны быть заголовками, а не ссылками. При помощи views мне кажется это проблематичным. Возможно есть какой-то модуль позволяющий выводить древовидные структуры, и делать темизацию терминов таксономии, или же проще написать свой контроллер?

Буду всем очень признателен если Вы опишите мне последовательность шагов для достижения данного результата, и по возможности с ссылками где, и что почитать по данной теме.

Комментарии

Аватар пользователя Balor Balor 20 мая 2018 в 15:10

Ой не много не так поставил вопрос, Вы совершенно правы с url алиасами, их так же можно задать сразу в терминах таксономии, но тогда если я правильно понимаю я получу два контроллера, контроллер термина таксономии который будет выводить свою страницу по этому адресу, и контроллер ноды, который выводит ноду по тому же адресу. Так правильный вопрос будет звучать так, Как подменить контроллер таксономии, контроллером ноды, чтобы иметь один контроллер для вывода результата по данному url. Сейчас подредактирую)

Аватар пользователя Olegars Olegars 20 мая 2018 в 15:01

"Как вывести все термины таксономии в ноду" https://www.drupal.org/project/taxonomy_menu
"при этом родительские термины должны быть заголовками" тоже модуль есть, название не помню
торрент на обучающий курс http://tt.cccp-rutracker.org/forum/dl.php?t=5003302
и вообще там полно по друпалу

Аватар пользователя gun_dose gun_dose 20 мая 2018 в 15:30

Вот эту схему, что вы сделали, удалите, и никому не показывайте. Все свои мысли ро этому поводу забудьте и сделайте нормально, как у всех:
1. Вьюс выводит список терминов таксономии
2. Другой вьюс выводит ноды из термина таксономии.

Аватар пользователя Balor Balor 20 мая 2018 в 15:58

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

Аватар пользователя gun_dose gun_dose 20 мая 2018 в 18:18

Попробуйте сформулировать задачу без схем и без друпаловской терминологии. Неверная постановка задачи - вот ваша проблема.

Аватар пользователя Balor Balor 20 мая 2018 в 20:15

Даже не знаю как описать попроще, сайт об ремонте, на нем есть раздел об отделочных материалах, к примеру обычная плитка может разделятся по странам, производителям, быть для стен, пола, и дорожек в саду). На самом деле вложенность там получится большая, по этому опишу что-то более простое. Для примера, наверно все видели сайты каталоги автомобильной тематики. Там как правило есть страница производителей разделенных по странам. Каждый производитель имеет свою страницу на которой выводятся серии выпущенных им автомобилей, и страницы с сериями автомобилей на которой выводятся модели автомобилей принадлежащие данной серии. Той есть если отобразить это в хлебных крошках выглядеть будет это примерно так Германия -> bmw -> a6 -> bmw80 (ребят сори не селен в автомобилях не знаю какие они там есть), что-то вроде этого.

Аватар пользователя gun_dose gun_dose 20 мая 2018 в 20:36

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

Аватар пользователя Danis_Inf Danis_Inf 20 мая 2018 в 16:10

Если проблема только в том, чтобы термины таксономии были не доступны по url и использовались только для технической реализации задуманного - то проще ограничить к ним доступ. Всё же таксономия именно для этого и создана... Посмотрите в этом направлении:
drupal_add_http_header('Status', '503 Service unavailable');
drupal_access_denied();
drupal_not_found();

Аватар пользователя Danis_Inf Danis_Inf 20 мая 2018 в 16:31

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

Аватар пользователя Balor Balor 20 мая 2018 в 20:15

Да вот мне тоже таксономия приглянулось, так как каждому термину можно задать картинку, описание, и тд. Той есть термин таксономии по сути является готовой карточкой товара.

Аватар пользователя Balor Balor 20 мая 2018 в 20:28

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