function pm_uninstall_fields in Drupal PM (Project Management) 8
Same name and namespace in other branches
- 7.3 includes/pm.install.inc \pm_uninstall_fields()
Deletes field instances and bases from a given list.
10 calls to pm_uninstall_fields()
- pmexpense_uninstall in pmexpense/
pmexpense.install - Implements hook_uninstall().
- pmissue_uninstall in pmissue/
pmissue.install - Implements hook_uninstall().
- pmnote_uninstall in pmnote/
pmnote.install - Implements hook_uninstall().
- pmorganization_uninstall in pmorganization/
pmorganization.install - Implements hook_uninstall().
- pmperson_uninstall in pmperson/
pmperson.install - Implements hook_uninstall().
File
- includes/
pm.install.inc, line 60 - Helper functions for install, disable, uninstall and update of PM modules.
Code
function pm_uninstall_fields($module) {
// Determine which fields were declared by the specified module.
module_load_include('inc', $module, 'includes/' . $module . '.field_base');
module_load_include('inc', $module, 'includes/' . $module . '.field_instance');
$field_bases = module_invoke($module, 'default_field_bases');
$field_instances = module_invoke($module, 'default_field_instances');
foreach ($field_instances as $instance) {
// Only attempt to delete instances that still exist.
$instance_info = field_info_instance($instance['entity_type'], $instance['field_name'], $instance['bundle']);
if ($instance_info) {
// Only delete field base if provided in the list of bases.
$delete_field_base = isset($field_bases[$instance['field_name']]);
field_delete_instance($instance, $delete_field_base);
}
}
}