You are here

function cer_update_7005 in Corresponding Entity References 7.3

Creates the {cer_preset} table to store CerPreset entities, and rebuilds legacy presets.

File

./cer.install, line 402
Install file providing corresponding entity reference schema.

Code

function cer_update_7005() {

  // Register new classes with the autoloader.
  registry_rebuild();

  // Create the table for preset entities.
  $tables = cer_schema();
  db_create_table('cer_preset', $tables['cer_preset']);

  // Install Field Reference, which powers the cer_left and cer_right fields.
  if (!module_exists('field_object')) {
    module_enable(array(
      'field_object',
    ));
  }

  // Create preset entities' fields.
  cer_install();

  // Convert legacy presets to entities, including 1.x, 2.x and the older
  // 3.x schemas.
  $old = db_select('cer')
    ->fields('cer')
    ->execute()
    ->fetchAll();
  $old = array_merge($old, module_invoke_all('cer_default_presets'));
  array_walk($old, '_cer_rebuild_preset');

  // So long, legacy table...
  db_drop_table('cer');

  // Delete defunct status variable maintained by CTools.
  variable_del('default_cer');
  if (module_exists('corresponding_node_references')) {
    _cer_hijack_cnr();
  }
}