Contao\SelectMenu::generate PHP Метод

generate() публичный Метод

Generate the widget and return it as string
public generate ( ) : string
Результат string
    public function generate()
    {
        $arrOptions = array();
        $strClass = 'tl_select';
        if ($this->multiple) {
            $this->strName .= '[]';
            $strClass = 'tl_mselect';
        }
        // Add an empty option if there are none
        if (empty($this->arrOptions)) {
            $this->arrOptions = array(array('value' => '', 'label' => '-'));
        }
        foreach ($this->arrOptions as $strKey => $arrOption) {
            if (isset($arrOption['value'])) {
                $arrOptions[] = sprintf('<option value="%s"%s>%s</option>', \StringUtil::specialchars($arrOption['value']), $this->isSelected($arrOption), $arrOption['label']);
            } else {
                $arrOptgroups = array();
                foreach ($arrOption as $arrOptgroup) {
                    $arrOptgroups[] = sprintf('<option value="%s"%s>%s</option>', \StringUtil::specialchars($arrOptgroup['value']), $this->isSelected($arrOptgroup), $arrOptgroup['label']);
                }
                $arrOptions[] = sprintf('<optgroup label="&nbsp;%s">%s</optgroup>', \StringUtil::specialchars($strKey), implode('', $arrOptgroups));
            }
        }
        // Chosen
        if ($this->chosen) {
            $strClass .= ' tl_chosen';
        }
        return sprintf('%s<select name="%s" id="ctrl_%s" class="%s%s"%s onfocus="Backend.getScrollOffset()">%s</select>%s', $this->multiple ? '<input type="hidden" name="' . rtrim($this->strName, '[]') . '" value="">' : '', $this->strName, $this->strId, $strClass, $this->strClass != '' ? ' ' . $this->strClass : '', $this->getAttributes(), implode('', $arrOptions), $this->wizard);
    }