Save form defaults or recommended values.
Parameters
array $form_state: Form state array from drupal form submit.
string $trigger_key: The key of the setting from the form that controls this.
4 calls to advagg_set_admin_form_defaults_recommended()
- advagg_admin_settings_form_submit in ./
advagg.admin.inc - Clear out the advagg cache bin when the save configuration button is pressed.
- advagg_bundler_admin_settings_form_submit in advagg_bundler/
advagg_bundler.admin.inc - Submit callback, clear out the advagg cache bin.
- advagg_mod_admin_settings_form_submit in advagg_mod/
advagg_mod.admin.inc - Submit callback, clear out the advagg cache bin.
- advagg_relocate_admin_settings_form_submit in advagg_relocate/
advagg_relocate.admin.inc - Submit callback, clear out the advagg cache bin.
File
-
./
advagg.module, line 6865
Code
function advagg_set_admin_form_defaults_recommended(array &$form_state, $trigger_key) {
$changed = array();
$recommended_values = array();
// Set to recommended values.
if ($form_state['values'][$trigger_key] == 2) {
$recommended_values = advagg_find_all_recommended_admin_values($form_state['complete form']);
foreach ($recommended_values as $key => $value) {
if (!isset($form_state['values'][$key])) {
$changed[$key] = array(
$value,
);
}
elseif ($value != $form_state['values'][$key]) {
$changed[$key] = array(
$value,
$form_state['values'][$key],
);
}
$form_state['values'][$key] = $value;
}
}
// Set to defaults.
if ($form_state['values'][$trigger_key] == 0 || $form_state['values'][$trigger_key] == 2) {
// Reset to defaults.
foreach ($form_state['values'] as $key => &$value) {
// Skip non advagg settings, trigger key, or if a recommended value.
if (strpos($key, 'advagg_') !== 0 || $key === $trigger_key || isset($changed[$key]) || isset($recommended_values[$key])) {
continue;
}
// Default to FALSE.
$default = FALSE;
// Get easy defaults.
if (defined(strtoupper($key))) {
$default = constant(strtoupper($key));
}
// Get more complex default values.
if ($key === 'advagg_resource_hints_preload_settings') {
$default = advagg_get_resource_hints_preload_settings(TRUE);
foreach ($default as $key => &$values) {
$default[$key]['weight'] = $values['#weight'];
unset($default[$key]['#weight'], $values['#weight'], $default[$key]['title'], $values['title']);
ksort($values);
}
ksort($default);
foreach ($value as $key => &$values) {
ksort($values);
}
ksort($value);
}
if ($key === 'advagg_relocate_css_inline_import_browsers') {
$default = array(
'woff2' => 'woff2',
'woff' => 'woff',
'ttf' => 'ttf',
'eot' => 0,
'svg' => 0,
);
}
// See if it changed.
if ($default != $value) {
// After, Before.
$changed[$key] = array(
$default,
$value,
);
$value = $default;
}
}
}
if ($form_state['values'][$trigger_key] == 4) {
$changed = advagg_find_all_changed_admin_values($form_state['complete form']);
if (isset($changed[$trigger_key])) {
unset($changed[$trigger_key]);
}
}
$all_titles_descriptions = advagg_find_title($form_state['complete form']);
foreach ($changed as $key => $values) {
// Remove things that didn't really change.
if (isset($values[1])) {
if ($values[0] == $values[1]) {
unset($changed[$key]);
continue;
}
if (is_string($values[0]) && is_string($values[1]) && trim($values[0]) == trim($values[1])) {
unset($changed[$key]);
continue;
}
}
// Make output nicer.
if (!isset($values[1])) {
$values[1] = NULL;
}
if (is_bool($values[0]) && !is_bool($values[1]) || !is_bool($values[0]) && is_bool($values[1])) {
$values[0] = (bool) $values[0];
$values[1] = (bool) $values[1];
}
if (is_int($values[0]) && !is_int($values[1]) || !is_int($values[0]) && is_int($values[1])) {
$values[0] = (int) $values[0];
$values[1] = (int) $values[1];
}
// Let user know what changed.
if (empty($all_titles_descriptions[$key])) {
drupal_set_message(t('%before -> %after for %title', array(
'%title' => $key,
'%before' => var_export($values[1], TRUE),
'%after' => var_export($values[0], TRUE),
)));
}
else {
drupal_set_message(t('%before -> %after for %title', array(
'%title' => $all_titles_descriptions[$key],
'%before' => var_export($values[1], TRUE),
'%after' => var_export($values[0], TRUE),
)));
}
}
return $changed;
}