You are here

function redhen_org_group_redhen_org_type_delete in RedHen CRM 7

Implements hook_redhen_org_type_delete().

File

modules/redhen_org_group/redhen_org_group.module, line 172

Code

function redhen_org_group_redhen_org_type_delete(RedhenOrgType $redhen_org_type) {

  // Delete redhen group field if not used by another org type.
  if (isset($redhen_org_type->group_settings['content_types'])) {
    $org_types = redhen_org_get_types();
    foreach ($redhen_org_type->group_settings['content_types'] as $type) {
      $in_use = FALSE;
      foreach ($org_types as $org_type) {
        if ($org_type->name != $redhen_org_type->name && isset($org_type->group) && $org_type->group) {
          if (isset($org_type->group_settings['content_types'])) {
            $in_use = in_array($type, $org_type->group_settings['content_types']);
          }
        }
      }
      if (!$in_use) {
        $instance = field_read_instance('node', REDHEN_ORG_GROUP_FIELD, $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' => $type,
          )));
        }
      }
    }
  }
}