configModel->get('shrink_vertically_offset', self::DEFAULT_OFFSET); $barSize = (int) $this->configModel->get('shrink_vertically_bar_size', self::DEFAULT_BAR_SIZE); $topScrollbar = (int) $this->configModel->get('shrink_vertically_top_scrollbar', 1); $auto = (int) $this->configModel->get('shrink_vertically_auto', 0); $this->response->html($this->helper->layout->config('shrinkVertically:config/show', array( 'title' => t('Settings').' > '.t('Shrink Vertically'), 'values' => array( 'shrink_vertically_offset' => $offset, 'shrink_vertically_bar_size' => $barSize, 'shrink_vertically_top_scrollbar' => $topScrollbar, 'shrink_vertically_auto' => $auto, ), 'errors' => array(), ))); } public function save() { $values = $this->request->getValues(); // In auto mode the offset input is disabled client-side, so the browser does not submit it. // Fall back to the stored value (not the default) so enabling auto never wipes the manual offset. $offset = isset($values['shrink_vertically_offset']) ? (int) $values['shrink_vertically_offset'] : (int) $this->configModel->get('shrink_vertically_offset', self::DEFAULT_OFFSET); $offset = max(self::MIN_OFFSET, min(self::MAX_OFFSET, $offset)); $barSize = isset($values['shrink_vertically_bar_size']) ? (int) $values['shrink_vertically_bar_size'] : self::DEFAULT_BAR_SIZE; $barSize = max(self::MIN_BAR_SIZE, min(self::MAX_BAR_SIZE, $barSize)); $topScrollbar = isset($values['shrink_vertically_top_scrollbar']) ? 1 : 0; $auto = isset($values['shrink_vertically_auto']) ? 1 : 0; if ($this->configModel->save(array( 'shrink_vertically_offset' => $offset, 'shrink_vertically_bar_size' => $barSize, 'shrink_vertically_top_scrollbar' => $topScrollbar, 'shrink_vertically_auto' => $auto, ))) { $this->flash->success(t('Settings saved successfully.')); } else { $this->flash->failure(t('Unable to save your settings.')); } $this->response->redirect($this->helper->url->to('ConfigController', 'show', array('plugin' => 'ShrinkVertically'))); } }