Программно добавить поле (field) с выпадающим списком в Drupal 7.


В сети достаточно много примеров того, как в Drupal 7 программно добавлять поля для различных типов контента. Однако, как программно добавить поле (field) с выпадающим списком — таких примеров я так и не нашел. Главная проблема, которая здесь — каким образом передать список значений? Как оказалось, все очень просто: данные передаются внутри параметра ‘settings’ (массив allowed_values). Ниже пример добавления такого поля для имеющегося типа контента «auto».

1
2
3
4
5
6
7
8
9
10
11
12
13
field_create_field(array(
      'field_name' => 'auto_number',
      'type' => 'list_text',
      'cardinality' => 1,
      'settings' => array(
          'allowed_values' => array(
          1 => '1',
          5 => '5',
          10 => '10',
          )
      ),
      'entity_types' => array('node'),
));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
field_create_instance(array(
      'field_name' => 'auto_number',
      'entity_type' => 'node',
      'bundle' => 'auto',
      'label' => t('Select the gallery'),
      'description' => t('choose the gallery'),
      'widget' => array(
        'type' => 'options_select'
        ),        
      ),
 
      'display' => array(
        'default' => array(
          'label' => 'above',
          'settings' => array(),
          'weight' => 1,
        ),
        'teaser' => array(
          'label' => 'above',
          'settings' => array(),
          'type' => 'hidden',
        ),
      ),
      'required' => TRUE,
));




Другие посты

Категория: Drupal

Оставить комментарий