| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | <?php/** * @file * Install, update and uninstall functions for the Serial module. *//** * Implements hook_field_schema(). */function serial_field_schema(array $field) {  $columns = array();  switch ($field['type']) {    case 'serial':      $columns['value'] = array(        'type' => 'int',        'unsigned' => TRUE,        'not null' => TRUE,        'sortable' => TRUE,        'views' => TRUE,        'index' => TRUE,      );      break;  }  return array('columns' => $columns);}/** * Implements hook_schema(). */function serial_schema() {  // Get the standard schema:  module_load_include('inc', 'serial');  $table_schema = _serial_get_table_schema();  $schema = array();  foreach (_serial_get_all_fields() as $field) {    $schema[_serial_get_table_name($field->entity_type, $field->bundle, $field->field_name)] = $table_schema;  }  // Return the schema of all the assistant tables (one per field instance).  return $schema;}/** * Upgrade path. * * Switches from nids to uniqids. */function serial_update_7130() {  module_load_include('inc', 'serial');  $table_schema = _serial_get_table_schema();  // Update the schema of old assistant tables.  foreach (_serial_get_all_fields() as $field) {    // Empty the table.    $table = _serial_get_table_name($field->entity_type, $field->bundle, $field->field_name);    db_delete($table)->execute();    // Drop nid field and key.    db_drop_field($table, 'nid');    db_drop_unique_key($table, 'nid');    // Add uniqid field and key.    db_add_field($table, 'uniqid', $table_schema['fields']['uniqid']);    db_add_unique_key($table, 'uniqid', array('uniqid'));  }}/** * Add 'node_' to all existing serial tables. * * Change name: *   from: serial_{content_type}_{field_name} *   to: serial_node_{content_type}_{field_name} */function serial_update_7131() {  // All old serial tables are of 'node' entity type.  foreach (db_find_tables('serial_%') as $table) {    db_rename_table($table, preg_replace('/^serial_/', 'serial_node_', $table));  }}/** * Reorganize table names to prevent collisions with long names. */function serial_update_7132() {  module_load_include('inc', 'serial');  foreach (db_find_tables('serial_%') as $table) {    // Explode by underscores and match old format.    list(, $entity_type, $bundle, $field_name) = explode('_', $table, 4);    db_rename_table($table, _serial_get_table_name($entity_type, $bundle, $field_name));  }}
 |