Добавляем поле в Drupal7 програмно

Загружаем необходимые модули
Данный способ подходит для тех полей, которые уже есть в системе
Данный код располагаем в файле .install

  1. /**
  2.  * Implements hook_enable().
  3.  *
  4.  * Create a field. Fields can be created without any needs to attach them to
  5.  * entities.
  6.  */
  7. function demo_field_enable() {
  8. $field = array(
  9. 'field_name' => 'demo_field',
  10. 'type' => 'text',
  11. );
  12. field_create_field($field);
  13.  
  14. /**
  15.   * Bind field to a entity bundle.
  16.   */
  17. $instance = array(
  18. 'field_name' => $field['field_name'],
  19. 'entity_type' => 'node',
  20. 'bundle' => 'article',
  21. );
  22. field_create_instance($instance);
  23. }
  24.  
  25. /**
  26.  * Implements hook_disable().
  27.  *
  28.  * Remove field from node bundle (content type) and then delete the field.
  29.  */
  30. function demo_field_disable() {
  31. $instance = array(
  32. 'field_name' => 'demo_field',
  33. 'entity_type' => 'node',
  34. 'bundle' => 'article',
  35. );
  36. field_delete_instance($instance);
  37. field_delete_field($instance['field_name']);
  38. print 'Removed ' . $instance['field_name'] . "\n";
  39. }
Russian
Категория: 
The code has been tested and works