Поле CCK, минимальное количество значений - PullRequest
2 голосов
/ 22 июня 2011

Я создал модуль, который реализует поле CCK.При добавлении поля к типу контента я установил неограниченное количество значений и установил обязательное поле.

Есть ли способ установить требуемое количество значений?Мне нужно, чтобы пользователь ввел 5 или более значений.

Заранее спасибо.

1 Ответ

1 голос
/ 23 июня 2011

Ответ лежит в hook_form_alter () - http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_form_alter/6

Вам нужно будет сделать 2 вещи, как я вижу:

  1. Изменить формуэлемент для включения 5 записей при загрузке формы (вместо обычных 2 с кнопкой «добавить еще»).

  2. Добавить запись в $ form ['# validate'] = 'my_form_validate'к форме, чтобы проверить, что были установлены по крайней мере 5.

1 может быть проблемой;Я не уверен, как форма загружает несколько элементов в первый раз.Если вы сделаете vardump в форме $, это может быть очевидно, однако.

Для 2 это должно быть просто -

function my_form_validate($form, &$form_state) {
  $i=0;
  foreach ($form_state['field_my_field_name']...) {
    if (isset(...)) { $i++; }
  }
  if ($i < 5) {
    form_set_error($form_state['field_my_field_name'], 'You must enter 5 foobars');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...