Вопрос: как сделать выбор термина таксономии обязательным лишь для ноды определенного типа?

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

Аватар пользователя Nodachi Nodachi 29 мая 2009 в 11:38

Всем привет!
Вопрос собственно в заголовке поста. Но все же опишу немного подробней:
Есть словарь таксономии, а также несколько разных типов документов, привязанных к данному словарю. Сейчас в настройках словаря указано "необязательно", т. е. все ноды всех типов можно сохранять без выбора терминов из этого словаря. Но есть один тип, для которого необходимо сделать выбор терминов обязательным. А так как эти настройки прописываются в словаре и касаются сразу всех нод, мне на данном этапе такой финт не под силу Smile
Комрады, посоветуйте решение плиз!

Комментарии

Аватар пользователя theСанитар theСанитар 29 мая 2009 в 21:41

Завести словарь, залезть в настройки типа и поставить "Обязательно. По крайней мере, один термин должен быть выбран во время создания материала"?

Аватар пользователя Nodachi Nodachi 29 мая 2009 в 23:50

Дело в том, что если я залезу в этот словарь и поставлю галочку "Обязательно", то при сохранении ноды ЛЮБОГО типа (все ноды используют термины данного словаря) мне придется ОБЯЗАТЕЛЬНО указать термин. Мне же необходимо, чтобы для всех типов нод, кроме одного, выбор термина был необязательным (но чтобы была возможность его выбрать по желанию). И лишь для нод одного типа необходимо в обязательном порядке выбирать термин из данного словаря.

Есть ли модули, позволяющие реализовать данный функционал? Может код какой коротенький вставить куда (сам в PHP не важно ориентируюсь)?

P. S.
Сдается мне, гуру не часто посещают эту ветку Smile

Аватар пользователя Guide Guide 31 мая 2009 в 17:26

Если при создании термина указать в Content types к какому типу содержания касается термин, затем указать Required, то будет так как вы хотите.

Аватар пользователя Nodachi Nodachi 31 мая 2009 в 20:56

"Guide" wrote:
Если при создании термина указать в Content types к какому типу содержания касается термин, затем указать Required, то будет так как вы хотите.

??? Извините, но мне кажется, что вы невнимательно прочитали вопрос Smile

Аватар пользователя Nodachi Nodachi 31 мая 2009 в 20:59

Есть два типа документов для примера: Тип1 и Тип2;
Есть один словарь, в котором указаны оба типа документов (т. е. при создании ноды Тип1 и Тип2 нам нужно указать термин из словаря);
Необходимо, чтобы при создании документа Тип1 выбор термина был ОБЯЗАТЕЛЕН;
В свою очередь, при создании документа Тип2 выбор термина должен быть НЕОБЯЗАТЕЛЬНЫМ, но должен присутствовать.

Аватар пользователя Nodachi Nodachi 31 мая 2009 в 21:02

В стандартных настройках мы указываем в словаре типы документов, т. е. ставим галочки в разделе Content types для Тип1 и Тип2, далее есть чекбокс "Обязательно". Если мы поставим там галочку, то термин нужно будет обязательно указать при создании обоих типов. Если галочку снять - оба типа можно будет сохранять не выбирая терминов. Эту ситуацию и нужно изменить как-то...

Аватар пользователя WiseMan WiseMan 31 мая 2009 в 21:24

Разве что подключить java-script проверки на заполнение поля тегов к странице создания ноды нужного типа материалов.

Аватар пользователя Guide Guide 31 мая 2009 в 21:42

"Nodachi" wrote:
??? Извините, но мне кажется, что вы невнимательно прочитали вопрос :-)

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

Аватар пользователя Nodachi Nodachi 3 июня 2009 в 20:48

Решение правильное, работает. Но есть одно НО...

Словарь с иерархией, двухуровневый. Большой к тому же. Поэтому активно используется модуль Hierarchical Select. Применить его к полям, созданным с помощью Content Taxonomy мне не удалось, ибо в настройках этого не предусмотрено...

Думаю, возможно написать какой-либо маленький PHP-сниппет для формы node/add/mytype, который делает поле таксономии обязательным применительно к этой форме. Или я ошибаюсь? Как бы то нибыло, моих скромных познаний в области PHP для решения данной проблемы явно недостаточно...

Если поможете - буду очень признателен, да и в будущем думаю данное решение пригодится сайтостроителям.