Программная работа с полями в Drupal

В процессе деплоймента нам часто приходится создавать/изменять/удалять поля. Ниже приведены некоторые примеры, как это можно сделать из кода.

Создание полей

Пример добавления поля my_custom_field к ноде типа page используя field_create_field() и field_create_instance():

  $field = array(
    'field_name' => 'my_custom_field',
    'cardinality' => 1,
    'translatable' => TRUE,
    'type' => 'text',
  );
  field_create_field($field);

  $instance = array(
    'field_name' => 'my_custom_field', 
    'entity_type'  => 'node', 
    'label' => 'My custom field', 
    'bundle' => 'page', 
    'required' => TRUE,
    'widget' => array(
      'type' => 'text_textfield',
    ),
    'display' => array(
      'default' => array(
        'type' => 'text_default',
      ),
    ),
  );
  field_create_instance($instance);

Изменение полей

Пример изменение параметра required у уже существующего поля my_custom_field в ноде типа page используя field_read_instance() и field_update_instance():

  $instance = field_read_instance('node', 'my_custom_field', 'page');
  $instance['required'] = FALSE;
  field_update_instance($instance);

Удаление полей

Пример удаления существующего поля my_custom_field в ноде типа page используя field_delete_field(), field_delete_instance() и field_info_instance():

  field_delete_field('my_custom_field');
  field_delete_instance(field_info_instance('node', 'my_custom_field', 'page'));

Для реализации вышеприведеного кода можно использовать hook_update_N().

 

Smartweb

Мы надеемся данный материал будет для вас полезен. Спасибо что читаете нас!

Smartweb

«Smartweb» — это эффективная технология запуска, развития и продвижения бизнеса в интернете.

Заказать

Контакты

  • Smartweb
    Минск, Беларусь
  • Пн-Пт с 9:00 до 19:00 
  • +375 (29) 25-33-555
  • info@smartweb.by
Наша рассылка: