function imageinfo_cache_admin_settings_form_submit in Imageinfo Cache 7.3
Only record the non-default presets.
Parameters
array $form: Drupal form array.
array $form_state: Drupal form state.
1 string reference to 'imageinfo_cache_admin_settings_form_submit'
- imageinfo_cache_admin_settings_form in ./
imageinfo_cache.admin.inc - Form builder; Configure advagg settings.
File
- ./
imageinfo_cache.admin.inc, line 223 - Admin page callbacks for the imageinfo cache module.
Code
function imageinfo_cache_admin_settings_form_submit(array $form, array &$form_state) {
// Flush the menu cache if imageinfo_cache_disable_on_demand_generation is
// changing state.
$new = $form_state['values']['imageinfo_cache_disable_on_demand_generation'];
$old = variable_get('imageinfo_cache_disable_on_demand_generation', IMAGEINFO_CACHE_DISABLE_ON_DEMAND_GENERATION);
if ($new !== $old) {
drupal_set_message(t('Rebuilding the menu cache.'));
$GLOBALS['conf']['imageinfo_cache_disable_on_demand_generation'] = $new;
drupal_register_shutdown_function('menu_rebuild');
}
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
if ($op === t('Reset to defaults')) {
foreach ($form_state['values'] as $key => $value) {
if (is_array($value)) {
variable_del($key);
}
elseif (strpos($key, 'imageinfo_cache_') === 0) {
variable_del($key);
}
}
drupal_set_message(t('The configuration options have been reset to their default values.'));
return;
}
module_load_include('inc', 'imageinfo_cache', 'imageinfo_cache');
// Get image styles; set value to 0.
$image_styles = array_fill_keys(array_keys(image_styles()), 0);
// Get the default values.
$default_values = array();
$image_fields = imageinfo_cache_get_image_fields(FALSE, FALSE);
foreach ($image_fields as $field_name => &$image_styles_used) {
if (isset($image_styles_used['#field_info'])) {
unset($image_styles_used['#field_info']);
}
$image_styles_used = array_keys($image_styles_used);
if (empty($image_styles_used)) {
$default_values['imageinfo_cache_' . $field_name] = array();
}
else {
$default_values['imageinfo_cache_' . $field_name] = array_combine($image_styles_used, $image_styles_used);
}
// Add in not selected image styles.
if (!is_array($default_values['imageinfo_cache_' . $field_name])) {
$default_values['imageinfo_cache_' . $field_name] = array();
}
$default_values['imageinfo_cache_' . $field_name] += $image_styles;
ksort($default_values['imageinfo_cache_' . $field_name]);
}
// Get the saved values.
$values = array();
foreach ($form_state['values'] as $field_name => $selection) {
if (is_array($selection) && isset($default_values[$field_name])) {
ksort($selection);
$values[$field_name] = $selection;
}
elseif (strpos($field_name, 'imageinfo_cache_') === 0) {
variable_set($field_name, $selection);
}
}
// Compute the array difference.
$array_diff = array();
foreach ($default_values as $field_name => $image_styles_used) {
$array_diff[$field_name] = array_diff_assoc($values[$field_name], $image_styles_used);
}
// Save values.
foreach ($array_diff as $key => $value) {
if (empty($value)) {
variable_del($key);
}
variable_set($key, $value);
}
drupal_set_message(t('The configuration options have been saved.'));
}