/**
  * 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')));
     }
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }