словарь таксономии

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

Аватар пользователя igor_ch igor_ch 11 апреля 2012 в 15:39

Здравствуйте.
Недавно столкнулся с такой ситуацией.
Создал словарь с терминами, указав для него атрибут "Обязательный".
Далее создал тип содержимого, в одном из полей которого привязал созданный словарь (привязка выполняется с помощью content_taxonomy).
Но при создании ноды созданного типа, поле, для которого привязан словарь, друпал дает сохранить с пустым значением поля, хотя по логике друпал должен был вывести сообщение об ошибке.
Погуглив в инете я выяснил, что модуль content_taxonomy переопределяет методы стандартного модуля taxonomy.
Для решения сложившейся ситуации в методе content_taxonomy_field для блока switch ($op) был дописан следущий код:

<?php
case 'validate':
   if(
$node->form_id == 'kartochka_node_form'){
      
$q_res db_query("SELECT 1 FROM {vocabulary} WHERE required = '1' and vid = %d"$field['vid']);
      if(
db_fetch_object($q_res)){
         if (empty(
$items)) {
            
form_set_error($field["field_name"], t('The field %field is required.', array('%field' => $field['widget']['label'])));
         } else {
            foreach (
$items as $val) {
               if (empty(
$val['value'])) {
                     
form_set_error($field["field_name"], t('The field %field is required.', array('%field' => $field['widget']['label'])));
               }
            }
         }
      }
   }
   break;
?>

если у кого-то будут идеи получше, пишите, только не пинайте очень, я в друпале еще не профи.