annotate sites/all/modules/bundle_inherit/bundle_inherit.install @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2 /**
danielebarchiesi@4 3 * @file
danielebarchiesi@4 4 * Bundle Inherit module install file.
danielebarchiesi@4 5 */
danielebarchiesi@4 6
danielebarchiesi@4 7 /**
danielebarchiesi@4 8 * Implements hook_schema().
danielebarchiesi@4 9 */
danielebarchiesi@4 10 function bundle_inherit_schema() {
danielebarchiesi@4 11 $schema['bundle_hierarchy'] = array(
danielebarchiesi@4 12 'description' => 'Holds info about hierarchy relations between entity types.',
danielebarchiesi@4 13 'fields' => array(
danielebarchiesi@4 14 'entity_type' => array(
danielebarchiesi@4 15 'description' => 'The entity type of the bundles.',
danielebarchiesi@4 16 'type' => 'varchar',
danielebarchiesi@4 17 'length' => '255',
danielebarchiesi@4 18 'not null' => TRUE,
danielebarchiesi@4 19 ),
danielebarchiesi@4 20 'bundle' => array(
danielebarchiesi@4 21 'description' => 'Child bundle name.',
danielebarchiesi@4 22 'type' => 'varchar',
danielebarchiesi@4 23 'length' => '255',
danielebarchiesi@4 24 'not null' => TRUE,
danielebarchiesi@4 25 ),
danielebarchiesi@4 26 'bundle_parent' => array(
danielebarchiesi@4 27 'description' => 'Parent bundle name.',
danielebarchiesi@4 28 'type' => 'varchar',
danielebarchiesi@4 29 'length' => '255',
danielebarchiesi@4 30 'not null' => TRUE,
danielebarchiesi@4 31 ),
danielebarchiesi@4 32 ),
danielebarchiesi@4 33 'primary key' => array('entity_type', 'bundle'),
danielebarchiesi@4 34 'indexes' => array(
danielebarchiesi@4 35 'parent' => array('entity_type', 'bundle_parent'),
danielebarchiesi@4 36 ),
danielebarchiesi@4 37 );
danielebarchiesi@4 38
danielebarchiesi@4 39
danielebarchiesi@4 40 return $schema;
danielebarchiesi@4 41 }
danielebarchiesi@4 42
danielebarchiesi@4 43
danielebarchiesi@4 44 /**
danielebarchiesi@4 45 * Implements hook_uninstall().
danielebarchiesi@4 46 *
danielebarchiesi@4 47 * We should remove 'locked' state from all inherited fields instances.
danielebarchiesi@4 48 *
danielebarchiesi@4 49 * @todo
danielebarchiesi@4 50 * Maybe some better way to implement this function exists (talking about
danielebarchiesi@4 51 * performance). But anyway we are getting info about instances from cache
danielebarchiesi@4 52 * so I think that this implementation is more stable and logicaly loocking.
danielebarchiesi@4 53 */
danielebarchiesi@4 54 function bundle_inherit_uninstall() {
danielebarchiesi@4 55 $records = db_select('bundle_hierarchy', 'bh')
danielebarchiesi@4 56 ->fields('bh')
danielebarchiesi@4 57 ->execute();
danielebarchiesi@4 58 foreach ($records as $record) {
danielebarchiesi@4 59 $instances = field_info_instances($record->entity_type, $record->bundle_parent);
danielebarchiesi@4 60 foreach ($instances as $instance) {
danielebarchiesi@4 61 $inherited_instance = field_info_instance($record->entity_type, $instance['field_name'], $record->bundle);
danielebarchiesi@4 62 $inherited_instance['locked'] = FALSE;
danielebarchiesi@4 63 field_update_instance($inherited_instance);
danielebarchiesi@4 64 }
danielebarchiesi@4 65 }
danielebarchiesi@4 66 }