Здравствуйте.
Недавно столкнулся с такой ситуацией.
Создал словарь с терминами, указав для него атрибут "Обязательный".
Далее создал тип содержимого, в одном из полей которого привязал созданный словарь (привязка выполняется с помощью 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;
?>
если у кого-то будут идеи получше, пишите, только не пинайте очень, я в друпале еще не профи.