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);
}
}
}