You are here

function entity_rules_update_7101 in Entity Rules 7

Add entity_rule_setting table.

Implements hook_update_n().

Converts variables to entities and deletes variables.

File

./entity_rules.install, line 88
Install functions

Code

function entity_rules_update_7101() {
  $schema = entity_rules_schema();
  db_create_table('entity_rule_setting', $schema['entity_rule_setting']);
  cache_clear_all('*', 'cache', TRUE);
  drupal_static_reset('entity_get_info');
  foreach (entity_get_info() as $entity_type => $entity_info) {
    if (!empty($entity_info['fieldable'])) {
      foreach ($entity_info['bundles'] as $bundle_name => $bundle_info) {
        $all_ops = array(
          'create',
          'update',
          'delete',
          'validation',
          'form_access',
        );
        foreach ($all_ops as $op) {
          $var_name = 'entity_rules_' . $entity_type . '__' . $bundle_name . '_' . $op;
          $settings = variable_get($var_name, NULL);
          if (!empty($settings)) {
            foreach ($settings as $rules_name => $setting) {
              $setting['rules_config'] = $rules_name;
              $setting['entity_type'] = $entity_type;
              $setting['bundle'] = $bundle_name;
              $setting['op'] = $op;
              $entity = entity_create('entity_rule_setting', $setting);
              entity_save('entity_rule_setting', $entity);
            }
          }

          // Delete variable if it exists.
          if ($settings !== NULL) {
            variable_del($var_name);
          }
        }
      }
    }
  }
}