Пример #1
0
 function render($return = false)
 {
     $selected = $this->extractAttrib('selected');
     $value = $this->extractAttrib('value');
     $key = $this->extractAttrib('key');
     $items = $this->extractAttrib('items');
     $caption = $this->extractAttrib('caption');
     $no_keys = $this->extractAttrib('no_keys');
     if (strlen($value) && strlen($selected) == 0) {
         $selected = $value;
     }
     if (substr($selected, 0, 1) == ':') {
         $selected = intval(substr($selected, 1));
         $selected_by_index = true;
     } else {
         $selected_by_index = false;
     }
     $out = '<select ';
     $out .= QUI::renderIdAndName($this);
     $out .= QUI::renderDisabled($this);
     $out .= QUI::renderAttribs($this);
     $out .= ">\n";
     $items = (array) $items;
     if ($no_keys) {
         $items = array_combine($items, $items);
     } elseif ($key) {
         QUI::splitMultiDimArray($items, $key, $caption);
     }
     $ix = 0;
     foreach ($items as $caption => $value) {
         $out .= '<option value="' . htmlspecialchars($value) . '" ';
         if ($selected_by_index) {
             if ($ix == $selected) {
                 $out .= 'selected="selected" ';
             }
         } else {
             if ($value == $selected) {
                 $out .= 'selected="selected" ';
             }
         }
         $out .= '>';
         $out .= htmlspecialchars($caption);
         $out .= "</option>\n";
         $ix++;
     }
     $out .= "</select>\n";
     if ($return) {
         return $out;
     } else {
         echo $out;
         return null;
     }
 }