Home → Drupal →

Количество значений поля больше 10, но меньше "Неограниченно"

Опубликовано в сб, 11/01/2014 - 16:48

Имеем, к примеру, поле для загрузки изображений, в настройках поля есть параметр "Количество значений поля" ("Number of field values"), который можно установить от 0 до 10ти, или неограниченно. Бывает так, что необходимо задать предел более 10ти, но НЕ неограниченно, например, позволить пользователю загружать не более 19 изображений. Чтобы модифицировать наш селект со значениями воспользуемся хуком hook_form_alter, а точнее hook_FORM_ID_form_alter.

Для этого создаем модуль (на этом моменте останавливаться не буду - в сети куча инфы на эту тему), в теле нашего модуля пишем:

<?php
/**
 * hook_FORM_ID_form_alter
 */

function ModuleName_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {

    // создаем ассоциативный массив range, то есть формируем массив наших значений от 1 до 19
    
$range = drupal_map_assoc(range(1, 19));

    // прикрепляем новый массив к значению "неограниченно"
    
$new_options =  array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + $range;

    // и заменяем выбор нашим массивом
    
$form['field']['cardinality']['#options'] = $new_options;
}
?>

Активируем модуль, сбрасываем кэш, идем в настройки поля.

В результате получаем:

увеличить количество значений поляPROFIT!

Drupal 7
hook_form_alter
field
поле
значение

Menu

  • Главная
  • О блоге

Category

Drupal
(15)
Php
(4)
Верстка
(2)
Разное
(2)
© by Conocube / Блогу - 2954 дня