function _update_7000_field_create_instance

Writes a field instance directly to the database.

Related topics

1 call to _update_7000_field_create_instance()
_user_install_picture_field in drupal/core/modules/user/user.install
Creates a user picture image field for the User entity.

File

drupal/core/modules/field/field.install, line 352
Install, update, and uninstall functions for the Field module.

Code

function _update_7000_field_create_instance($field, &$instance) {

  // Merge in defaults.
  $instance += array(
    'field_id' => $field['id'],
    'field_name' => $field['field_name'],
    'deleted' => 0,
  );

  // Merge in display defaults.
  if (isset($instance['display'])) {
    foreach ($instance['display'] as &$display) {
      $display += array(
        'weight' => 0,
      );
    }
  }

  // The serialized 'data' column contains everything from $instance that does
  // not have its own column and is not automatically populated when the
  // instance is read.
  $data = $instance;
  unset($data['id'], $data['field_id'], $data['field_name'], $data['entity_type'], $data['bundle'], $data['deleted']);
  $record = array(
    'field_id' => $instance['field_id'],
    'field_name' => $instance['field_name'],
    'entity_type' => $instance['entity_type'],
    'bundle' => $instance['bundle'],
    'data' => serialize($data),
    'deleted' => (int) $instance['deleted'],
  );
  $instance['id'] = db_insert('field_config_instance')
    ->fields($record)
    ->execute();
}