RSS
 

Создание поля программно

Создаем программно поле-список:

$field_name = 'field_foo';
$field = field_info_field($field_name);
if (empty($field)) {
  $field = array(
    'field_name' => $field_name,
    'type' => 'list_text',
    'settings' => array(
      'allowed_values' => array(
        'a' => t('A'),
        'b' => t('B'),
        'c' => t('C'),
        'd' => t('D'),
      ),
    ),
  );
  field_create_field($field);
}
 
$instance = array(
  'field_name' => $field['field_name'],
  'entity_type' => 'node',
  'bundle' => 'foo',
  'label' => t('Foo'),
  'widget'=> array(
    'type' => 'options_select',
    'weight' => $field_weight++,
  ),
);
field_create_instance($instance);

http://ado.io/blog/drupal-7/working-programmatically-with-fields-in-drup... - тут подробнее и большее количество манипуляций

http://api.drupal.org/api/drupal/modules!field!field.crud.inc/function/field_create_field/7 - тут к омментариях тоже есть полезные примеры.

http://drupal.org/project/field_sql_norevisions - можно использовать, если для полей не нужны ревизии. Хорошо может уменьшить нагрузку на БД. Альтернативным решением может служить движок blackhole MySQL.