- Друзья:
- Drupal cook book |
- Танцы с Друпалом |
- Уберкарт.ру |
- Сетегном |
- Карикатуры |
Отображение ветки таксономии
- strict warning: Declaration of views_handler_field_user_name::init() should be compatible with views_handler_field_user::init(&$view, $data) in /var/www/shvabrashvabr.ru/sites/all/modules/views/modules/user/views_handler_field_user_name.inc on line 61.
- strict warning: Declaration of views_handler_argument_many_to_one::init() should be compatible with views_handler_argument::init(&$view, $options) in /var/www/shvabrashvabr.ru/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc on line 169.
Posted октября 9th, 2008 by aibooster
in
Поскажите, пожалуйста, самое разумное решение такой вот структуры сайта.
Есть каталог профессий, который записан, правильно, в таксономии.
Например все мы работники, есть менеджеры, IT-специалисты, строители.
Среди строителей есть каменщики, плиточники, маляры и т.д.
Среди IT-специалистов есть программеры, архитекторы, тестеры, админы и т.д.
Есть даже именно IT-менеджеры к примеру, которые относятьося одновременно и к IT-спецам и к менеджерам.
У каждого из сотрудников есть одна и только одна анкета.
Как сделать так, чтоб пользователь мог создать свою анкету и этим привязать себя к какому то месту в словаре таксономии. Чтоб не мог сделать больше одной анкеты.
Также у работников есть инструменты, которые они принсли на свое рабочее место.
Получается инструменты привязывается к словарю косвенно, через анкету работника.
Как организовать удобный обзор такой таксономии, чтоб можно было посмотреть, например, анкеты всех строителей или все инструменты всех строителей.
Получается дополнительно понадобится какой-то фильтр типа Node Type Filter, но он работает только через URL строку. Можно было бы встроить кнопки фильтра в html при выводе таксономии, но не понятно куда именно нужно встраивать кнопки и выглядит это как правка ядра (что наверное, лучше не делать :) ).
Если есть решение — это просто супер.
Тогда возможно найдется решение и для следующего.
Повышаем уровень :)
Просмотр в таксономии анкет строителей с приаттачеными их инструментами (все анкеты строителей в виде тизеров и прямо в записи список тизеров инструментов лично этого строителя)
Я так понимаю без жесткой хирургии тизеров последний пункт не выйдет, ведь выходит уже есть два вида тизера для человека — он сам и он с инструментами.
И последнее, наверное самое простое.
Если есть node'ы других типов (не анкета и не инструмент), то сделать чтоб фильтр (переключатель на кнопках, помните) позволял показывать только работников и инструменты, чтоб не было возможности просмотреть, например, заявления, которые писали эти сотрудники (хотя эти заявления могут быть привязаны к работникам так же как и инструменты).
На всех сайтах, посвященных Drupal, которые я видел, в основном поверхностные туториалы, из которых можно слепить простенькие решения, но что-то глубже сделать — не объясняется. Даже книгу купил "Drupal Руководство по разработке", но там тоже маленькие основы + как написать самый простецкий модуль.
Ответы на вопросы этого поста скорее всего сделают этот блог богаче практикой и возможно станут одной из оригинальных изюминок сайта (как скринкаст по сборке Швабрашвабр — очень познавательный и классно сделан), не говоря уже о том, на сколько они помогут лично мне в понимании Drupal.
Комментарии
У каждого из сотрудников есть одна и только одна анкета.
Как сделать так, чтоб пользователь мог создать свою анкету
Самый простой вариант — запретить юзерам создавать ноды, но разрешить им править свои ноды. Затем администратором для каждого юзера завести по ноде и в качестве автора указать нужного юзера. Таким образом получится, что у каждого сотрудника есть своя страница, автором которой он является. Править эту страницу он может, а создавать новые ноды — нет.
Также у работников есть инструменты, которые они принсли на свое рабочее место.
Получается инструменты привязывается к словарю косвенно, через анкету работника.
То есть у человека работающего в должности А всегда есть инструменты А1, А2, А3, у человека с должностью Б есть инструменты Б1, Б2, Б3? Или у двух разных людей работающих на одной должности могут быть разные инструменты? Я бы или инструменты сделал отдельным словарем и привязывал бы их к каждому сотруднику, или инструенты сделал бы отдельным типом контента и через CCK поле Node Reference связывал бы инструменты с сотрудниками.
чтоб можно было посмотреть, например, анкеты всех строителей
Этот фильтр вполне укладывается в концепцию нода/термин таксономии и его можно реализовать стандартными средствами Друпала (taxonomy/term/1+34+NNN).
или все инструменты всех строителей.
Тут все зависит от того как инструменты к строителям привязаны, мне пока этот момент не очень понятен.
Просмотр в таксономии анкет строителей с приаттачеными их инструментами (все анкеты строителей в виде тизеров и прямо в записи список тизеров инструментов лично этого строителя)
Я так понимаю без жесткой хирургии тизеров последний пункт не выйдет, ведь выходит уже есть два вида тизера для человека — он сам и он с инструментами.
И если инструменты — это ноды привязанные к сотрудникам через Node Reference, и если инструменты — это термины таксономии можно обойтись и без правки шаблонов.
Если есть node'ы других типов (не анкета и не инструмент), то сделать чтоб фильтр (переключатель на кнопках, помните) позволял показывать только работников и инструменты, чтоб не было возможности просмотреть, например, заявления, которые писали эти сотрудники (хотя эти заявления могут быть привязаны к работникам так же как и инструменты).
СТандартными средствами Друпала этого не сделать, а вот модулем Views — в два счета, в нем кроме фильтрации по терминам таксономии можно прикрутить и фильтрацию по типу контента, и по автору, и по множеству других параметров.