public static function FieldHelper::purgeInstance in Helper 7
1 call to FieldHelper::purgeInstance()
- FieldHelper::deleteInstance in lib/
FieldHelper.php  - Delete a field instance.
 
File
- lib/
FieldHelper.php, line 268  
Class
Code
public static function purgeInstance(array $instance) {
  $field = static::readFieldByID($instance['field_id']);
  $instance = static::readInstanceById($instance['id']);
  if (empty($instance['deleted'])) {
    throw new FieldException("Field instance not yet marked as deleted.");
  }
  if (!module_exists($field['storage']['module'])) {
    throw new FieldException("The {$field['storage']['module']} module needs to be enabled in order to delete an instance ID {$instance['id']} from field ID {$field['id']}.");
  }
  db_delete('field_config_instance')
    ->condition('id', $instance['id'])
    ->execute();
  // Notify the storage engine.
  module_invoke($field['storage']['module'], 'field_storage_purge_instance', $instance);
  // Clear the cache.
  field_info_cache_clear();
  // Invoke external hooks after the cache is cleared for API consistency.
  module_invoke_all('field_purge_instance', $instance);
  watchdog('helper', "Field instance ID {$instance['id']} completely removed.");
}