You are here

function redhen_org_group_redhen_org_type_update in RedHen CRM 7

Implements hook_redhen_org_type_update().

File

modules/redhen_org_group/redhen_org_group.module, line 87

Code

function redhen_org_group_redhen_org_type_update(RedhenOrgType $org_type) {
  if (isset($org_type->group_settings['content_types'])) {
    $content_types = isset($org_type->data['group_settings']['content_types']) ? $org_type->data['group_settings']['content_types'] : array();

    // Delete field instances if a content type was removed.
    foreach ($org_type->group_settings['content_types'] as $old_type) {
      if (!isset($content_types[$old_type])) {
        $instance = field_read_instance('node', REDHEN_ORG_GROUP_FIELD, $old_type);
        if ($instance) {
          field_delete_instance($instance, FALSE);
          field_purge_batch(10);
          drupal_set_message(t('Field %label has been deleted from the %type content type.', array(
            '%label' => $instance['label'],
            '%type' => $old_type,
          )));
        }
      }
    }
  }

  // Create new field instances.
  redhen_org_group_create_instance($org_type);
}