public function ElevateZoomPlusForm::typecastOptionset in ElevateZoom Plus 7
Same name and namespace in other branches
- 8 modules/ui/src/Form/ElevateZoomPlusForm.php \Drupal\elevatezoomplus_ui\Form\ElevateZoomPlusForm::typecastOptionset()
Returns the typecast values.
Parameters
array $settings: An array of Optionset settings.
1 call to ElevateZoomPlusForm::typecastOptionset()
- ElevateZoomPlusForm::edit_form_submit in modules/
ui/ src/ Form/ ElevateZoomPlusForm.php - Handle the submission of the edit form.
File
- modules/
ui/ src/ Form/ ElevateZoomPlusForm.php, line 560
Class
- ElevateZoomPlusForm
- Extends base form for elevatezoomplus instance configuration form.
Namespace
Drupal\elevatezoomplus_ui\FormCode
public function typecastOptionset(array &$settings = []) {
if (empty($settings)) {
return;
}
$defaults = ElevateZoomPlus::defaultSettings();
foreach ($defaults as $name => $value) {
if (isset($settings[$name])) {
// Seems double is ignored, and causes a missing schema, unlike float.
$type = gettype($defaults[$name]);
$type = $type == 'double' ? 'float' : $type;
// Change float to integer if value is no longer float.
if ($name == 'lensOpacity' || $name == 'tintOpacity') {
$type = $settings[$name] == '0' || $settings[$name] == '1' ? 'integer' : 'float';
}
settype($settings[$name], $type);
}
}
if (isset($settings['respond'])) {
foreach ($settings['respond'] as &$respond) {
if (isset($respond['enabled'])) {
settype($respond['enabled'], 'boolean');
}
foreach ($defaults as $name => $value) {
if (isset($respond[$name])) {
$type = gettype($defaults[$name]);
$type = $type == 'double' ? 'float' : $type;
// Change float to integer if value is no longer float.
if ($name == 'lensOpacity' || $name == 'tintOpacity') {
$type = $respond[$name] == '0' || $respond[$name] == '1' ? 'integer' : 'float';
}
settype($respond[$name], $type);
}
}
}
}
}