Category_auto как?

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

Аватар пользователя seaji seaji 2 февраля 2007 в 19:00

Есть у кого идеи, как сделать так, что бы материал определенного типа попадал в определенную категорию автоматически. Например у меня есть тип материала "Новость" и я хочу, что бы при создании новой новости она автоматом попадала бы в категорию "Новости".

Комментарии

Аватар пользователя Pozniy Pozniy 2 февраля 2007 в 22:09

Если "материал определенного типа" подразумевает различные типы нод для материала (что легко достигается модулем contento, немного сложнее CCK и пр.) тогда:

Читайте пример решения в "туториале" "Creating a basic hybrid structure" (ссылка должна заработать в течение нескольких дней):
http://wiki.drupallers.ru/Perevody/Modul'Category/SozdanieOsnovnojjGibridnojjStrukturySajjta?v=lvv (в переводе - большой респект друпал-коммюнити!) или на сайте разработчика (по ангельски - большой респект разработчику):
http://category.greenash.net.au/node/91

Лучше (полней и внятней) чем там не напишешь.

Общая же схема этой задачи выглядит следующим образом. При создании контейнера в свойствах контейнера есть опция выбора типа нод, которые будут привязаны к категориям этого контейнера. Вот там то и указывается необходимый тип. Если эта связка контейнера и типа эксклюзивна, то при создании ноды в опции "Категории" соответсвующей формы, в списке выбора родительского контейнера и категории будет по умолчанию указан необходимый. Для того, чтобы нода попадала именно в определенную категорию для упомянутого "эксклюзивного" контейнера создается единственная категория (в вашем случае и в случае примера из "туториала" - см.ссылки- это "Новость"). Соответственно, в эту категорию новость и будет попадать.

Следующая часть марлезонского балета - это как добраться до этих новостей (организация меню). Всё это в "туториале".

Аватар пользователя seaji seaji 2 февраля 2007 в 22:46

Мой вопрос не относится к тому, как создать структуру сайта, это и так понятно. Меня интересует автоматическое связывание материалов с категориями.
У меня есть контейнер "Новости" в который я могу добавлять только материалы типа "Новость". В этом контейнере одна единственная категория "Новости". Я создаю новую "Новость" и если я явно не указываю в филдсете "Категории" категорию "Новости" для контейнера "Новости" то моя новость уходит в никуда, не происходит не какого привязывания автоматом.

Аватар пользователя Natalie Natalie 3 февраля 2007 в 1:22

Вроде модуль такой есть. Поищите на drupal.org
---

---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя restyler restyler 3 февраля 2007 в 1:51

Если вы немного изучите систему хуков друпала, то написать подобный модуль займет у вас приблизительно 15 минут - при инсерте ноды в бд засунуть ее в категорию. Возможно это будет проще и быстрее чем искать чужое?

Аватар пользователя korj korj 3 февраля 2007 в 8:11

модуль есть - Default Terms - он позволяет выбраным типам контента присваивать любые термины из любых словарей (даже из неактивных?!).
насчет хуков - очень интересно было бы посмотреть примерчик

Аватар пользователя Pozniy Pozniy 3 февраля 2007 в 13:42

- за ненадобностью. По видимому Category перекрывает его функционал (врапер не в помощь) или же я не смог найти к ним доступ (смотрел в админке, в форме создания контейнеров и категорий). А мысль здесь вот какая - почему бы с сабж-предложением не обратиться к автору Category (расширить набор модуля ещё одним - Category Defaults)? Логика предложения понятна - дабы в списке выбора категорий при создании нод по умолчанию было то, что надо, а не сакраментальное "Нет". Такая "мелочь" действительно дорогого стоит. Собственно, был бы у меня сносный ангельский, сам бы написал...

Аватар пользователя Pozniy Pozniy 3 февраля 2007 в 17:54

Ну не знаю, чего кому надо, но совершенно случайно обнаружил решение проблемы автоматизма имеющимися в Category средствами. Если в контейнере структуры сайта, который создается по образу и подобию примера от разработчика (см. самый верхний комментарий к посту) выставить соответствующий тип ноды, эксклюзивно связанный с этим контейнером (его категориями) и выставить флаг "Обязательно (Required)" (последняя опция в разделе формы "Иерархия/Hierarchy"), то при создании ноды соответствующего типа требуемая категория в списке выбора выставлена по умолчанию (т.е. в "Категории" формы создания нод можно и не заходить) - жмеш на "сабмит" и вот тебе счастье! Маладца, Ron - создатель Category!!!

Лично мои потребности в рамках сабжа эта возможность удовлетворяет полностью.

Аватар пользователя seaji seaji 3 февраля 2007 в 18:12

Да, действительно работает. А можно ли в таком случае филдсет "Категории" вообше не выводить, дабы не путлять пользователя?

Аватар пользователя seaji seaji 3 февраля 2007 в 18:18

У меня для данной, конкретной роли в правах доступа отключено:
administer categories
create categories
create containers
edit all categories
edit own categories
а вот филдсет "Категории" все равно отображается.