/** * Sobrecarga do método input incluindo funcionalidades * extras, tais como: * * 1 - Localização automática dos tipos date/datetime e numérico/float * 2 - Formatação baseada no TwitterBootstrap * */ public function input($fieldName, $options = array()) { $this->setEntity($fieldName); $modelKey = $this->model(); $fieldKey = $this->field(); $fieldDef = $this->_introspectModel($modelKey, 'fields', $fieldKey); $value = null; if (isset($options['value'])) { $value = $options['value']; } else { if (isset($this->request->data[$modelKey][$fieldKey])) { $value = $this->request->data[$modelKey][$fieldKey]; } } if ((!isset($options['localize']) || $options['localize'] === true) && !empty($value)) { switch ($fieldDef['type']) { case 'date': $value = Localize::date($value); break; case 'datetime': case 'timestamp': $value = Localize::datetime($value); break; case 'float': $value = Localize::number($value); break; } $options['value'] = $value; } if ((!isset($options['keepSeconds']) || $options['keepSeconds'] === true) && $fieldDef['type'] === 'time') { $options['value'] = empty($value) || !preg_match('/[0-9]{2}\\:[0-9]{2}(\\:[0-9]{2})?/') ? '00:00' : substr($value, 0, 5); } if (!isset($options['useBootstrap']) || $options['useBootstrap'] === true) { /** * @todo Helper não deve estender o BootstrapForm, mas * sim usa-lo quando definido. */ } return parent::input($fieldName, $options); }
/** * * Add a serach form to the navbar. * * @param block The HTML block to add * @param options * * Extra options: * - form Extra options for BootstrapFormHelper::searchForm options * - pull left/right (default left) * - model Model for BootstrapFormHelper::searchForm method * **/ public function searchForm($options = array()) { App::import('Helper', 'BootstrapForm'); $bootFormHelper = new BootstrapFormHelper($this->_View); $formOptions = $this->_extractOption('form', $options, array()); unset($formOptions['form']); $pull = $this->_extractOption('pull', $options, 'left'); unset($options['pull']); $model = $this->_extractOption('model', $options, null); unset($options['model']); $formOptions = $this->addClass($formOptions, 'navbar-form pull-' . $pull); $this->block($bootFormHelper->searchForm($model, $formOptions), array('list' => false)); }