public function SlickForm::edit_form_submit in Slick Carousel 7.3
Handle the submission of the edit form.
At this point, submission is successful. Our only responsibility is to copy anything out of values onto the item that we are able to edit.
If the keys all match up to the schema, this method will not need to be overridden.
Overrides ctools_export_ui::edit_form_submit
File
- slick_ui/
src/ Form/ SlickForm.php, line 831
Class
- SlickForm
- Extends base form for slick instance configuration form.
Namespace
Drupal\slick_ui\FormCode
public function edit_form_submit(&$form, &$form_state) {
parent::edit_form_submit($form, $form_state);
// Optimized if so configured.
$slick = $form_state['item'];
$default = $slick->name == 'default';
if ($default) {
return;
}
$defaults = Slick::defaultSettings();
$required = $this
->getOptionsRequiredByTemplate();
$settings = $form_state['values']['options']['settings'];
$optimized = $form_state['values']['optimized'];
// Cast the values.
Slick::typecast($settings);
$main_settings = $settings;
if ($optimized) {
// Remove wasted dependent options if disabled, empty or not.
$slick
->removeWastedDependentOptions($settings);
$main = array_diff_assoc($defaults, $required);
$main_settings = array_diff_assoc($settings, $main);
}
$slick
->setSettings($main_settings);
if (isset($form_state['values']['options']['responsives']) && ($responsives = $form_state['values']['options']['responsives']['responsive'])) {
foreach ($responsives as $delta => &$responsive) {
settype($responsive['breakpoint'], 'int');
settype($responsive['unslick'], 'bool');
if (!empty($responsive['unslick'])) {
$slick
->setResponsiveSettings([], $delta);
}
else {
Slick::typecast($responsive['settings']);
$responsive_settings = $responsive['settings'];
if ($optimized) {
$slick
->removeWastedDependentOptions($responsive['settings']);
$responsive_settings = array_diff_assoc($responsive['settings'], $defaults);
}
$slick
->setResponsiveSettings($responsive_settings, $delta);
$slick
->setResponsiveSettings($responsive['breakpoint'], $delta, 'breakpoint');
$slick
->setResponsiveSettings($responsive['unslick'], $delta, 'unslick');
}
}
}
}