/** * @return mixed */ public function createMultiselectBox() { $return = new MultiSelectBox("Sekce", $this->sectionOptionFactory->getOptionsWithoutHome()); $return->setAttribute('class', 'select2'); $return->setOption('description', Select2AllButton::createButton()); return $return->setOption('no-form-control', TRUE); }
/** * Count/length validator. * @param MultiSelectBox * @param array min and max length pair * @return bool */ public static function validateLength(MultiSelectBox $control, $range) { if (!is_array($range)) { $range = array($range, $range); } $count = count($control->getSelectedItem()); return ($range[0] === NULL || $count >= $range[0]) && ($range[1] === NULL || $count <= $range[1]); }
/** * Adds select box control that allows multiple item selection. * @param string control name * @param string label * @param array options from which to choose * @param int number of rows that should be visible * @return Nette\Forms\Controls\MultiSelectBox */ public function addMultiSelect($name, $label = NULL, array $items = NULL, $size = NULL) { $control = new Controls\MultiSelectBox($label, $items); if ($size > 1) { $control->setAttribute('size', (int) $size); } return $this[$name] = $control; }
getControl(){$control=parent::getControl();$control->multiple=TRUE;return$control;}static function validateLength(MultiSelectBox$control,$range){if(!is_array($range)){$range=array($range,$range);}$count=count($control->getSelectedItem());return($range[0]===NULL||$count>=$range[0])&&($range[1]===NULL||$count<=$range[1]);}}class
/** * @return mixed */ public function create() { $return = new MultiSelectBox("Role", $this->getItems()); $return->setAttribute('class', 'select2'); return $return->setOption('no-form-control', TRUE); }