You are here

function oa_core_update_field_instances in Open Atrium Core 7.2

Update file field instances when allowed file extensions variable is changed.

Parameters

$old_extensions string list of previous default extensions to update:

1 call to oa_core_update_field_instances()
oa_core_file_entity_settings_form_submit in ./oa_core.module
Submit handler for file_entity_settings_form.

File

./oa_core.module, line 2334

Code

function oa_core_update_field_instances($old_extensions = '') {
  $instances = field_info_instances();
  $file_fields = array(
    'fieldable_panels_pane-basic_file-field_basic_file_file',
    'field_oa_media',
  );
  foreach ($instances as $field_instance) {
    foreach ($field_instance as $bundle) {
      foreach ($bundle as $fieldname => $instance) {
        if (in_array($fieldname, $file_fields)) {
          $current_extensions = $instance['settings']['file_extensions'];
          $file_extensions = variable_get('file_entity_default_allowed_extensions', OA_FILE_EXTENSIONS_DEFAULT);
          if (_oa_core_is_default_allowed_extensions($file_extensions)) {
            $file_extensions = OA_FILE_EXTENSIONS_DEFAULT;
          }
          if ($current_extensions == $old_extensions || _oa_core_is_default_allowed_extensions($current_extensions)) {
            $instance['settings']['file_extensions'] = $file_extensions;
            field_update_instance($instance);
          }
        }
      }
    }
  }
}