function ds_extras_update_7200 in Display Suite 7.2
Fix storage of formatter settings in ds_field_settings table.
File
- modules/
ds_extras/ ds_extras.install, line 112 - Install file.
Code
function ds_extras_update_7200() {
ctools_include('export');
$ds_field_settings = ctools_export_crud_load_all('ds_field_settings');
db_truncate('ds_field_settings')
->execute();
foreach ($ds_field_settings as $layout => $field_settings) {
$record = $field_settings;
foreach ($field_settings->settings as $field => $settings) {
// Move any field template settings to 'formatter_settings' key.
if (isset($settings['ft'])) {
$settings['formatter_settings']['ft'] = $settings['ft'];
unset($settings['ft']);
}
// Inspect the classes key, in case it's an array, something went
// wrong during saving, simply unset the array completely.
if (isset($settings['formatter_settings']['ft']['classes']) && is_array($settings['formatter_settings']['ft']['classes'])) {
unset($settings['formatter_settings']['ft']['classes']);
}
$record->settings[$field] = $settings;
}
drupal_write_record('ds_field_settings', $record);
}
}