You are here

function crm_core_activity_type_add_default_fields in CRM Core 7

Add default fields to newly created activity type.

2 calls to crm_core_activity_type_add_default_fields()
crm_core_activity_crm_core_activity_type_insert in modules/crm_core_activity/crm_core_activity.module
Implements hook_crm_core_activity_type_insert().
crm_core_activity_type_form_submit in modules/crm_core_activity/crm_core_activity.admin.inc
Submit handler for creating/editing crm_activity_type.

File

modules/crm_core_activity/crm_core_activity.admin.inc, line 104
Provides basic activity management functionality in CRM Core.

Code

function crm_core_activity_type_add_default_fields($activity_type) {
  $type = $activity_type->type;
  module_load_include('inc', 'crm_core_activity', 'crm_core_activity.fields');
  $fields = _crm_core_activity_type_default_fields();
  drupal_alter('crm_core_activity_type_add_fields', $fields, $activity_type);
  foreach ($fields as $field) {
    $info = field_info_field($field['field_name']);
    if (empty($info)) {
      field_create_field($field);
    }
  }
  $instances = _crm_core_activity_type_default_field_instances($type);
  drupal_alter('crm_core_activity_type_add_field_instances', $instances, $activity_type);
  foreach ($instances as $instance) {
    $info_instance = field_info_instance('crm_core_activity', $instance['field_name'], $type);
    if (empty($info_instance)) {
      field_create_instance($instance);
    }
  }
}