/** * Constructor * * @param ParameterRegistry $registry ParameterRegistry object. * @param array $config Object settings. * @throws \PlumSearch\FormParameter\Exception\MissingParameterException */ public function __construct(ParameterRegistry $registry, array $config = []) { parent::__construct($registry, $config); $config['field'] = $config['name'] . '_lookup'; $this->config($config); if (empty($config['autocompleteAction']) || !is_callable($config['autocompleteAction'])) { throw new MissingParameterException(__('Missed "autocompleteAction" configuration setting for select param `{0}`', $this->config('name'))); } }
/** * Returns input config * * @return array */ public function formInputConfig() { $formConfig = parent::formInputConfig(); if (!array_key_exists('options', $formConfig)) { $options = $this->config('options'); $finder = $this->config('finder'); if (!empty($options) && is_array($options)) { $formConfig['options'] = $options; } elseif (!empty($finder)) { $formConfig['options'] = $finder; } } return $formConfig; }
/** * Set autocomplete settings for field * * @param array $input Field options. * @param BaseParameter $param Form parameter. * @return array */ protected function _applyAutocompleteOptions(&$input, $param) { if ($param instanceof AutocompleteParameter) { $input['data-url'] = $param->autocompleteUrl(); $input['class'] = 'autocomplete'; $input['data-name'] = $param->config('name'); } return $input; }