示例#1
0
 /**
  * 
  * @return type
  */
 public function renderItems()
 {
     $out = [];
     foreach ($this->items as $i => $item) {
         if (!empty($item['label'])) {
             $encodeLabel = isset($item['encode']) ? $item['encode'] : $this->encodeLabels;
             $label = $encodeLabel ? Html::encode($item['label']) : $item['label'];
             $label = Html::tag('label', $label);
         } else {
             $label = '';
         }
         $options = ArrayHelper::getValue($item, 'options', []);
         $url = ArrayHelper::getValue($item, 'url', '#');
         if (isset($item['icon'])) {
             if (is_array($item['icon'])) {
                 $iconOptions = ArrayHelper::getValue($item['icon'], 'options', []);
                 $iconPrefix = ArrayHelper::getValue($item['icon'], 'prefix', 'fi-');
                 $iconTag = ArrayHelper::getValue($item['icon'], 'tag', 'i');
                 $icon = Html::icon($item['icon']['name'], $iconOptions, $iconPrefix, $iconTag);
             } else {
                 $icon = Html::icon($item['icon']);
             }
         } elseif (isset($item['img'])) {
             $icon = Html::img($item['img']);
         } else {
             throw new InvalidConfigException("'icon' or 'img' must be set");
         }
         Html::addCssClass($options, 'item');
         $options['role'] = 'button';
         $options['tabindex'] = 0;
         $out[] = Html::a($icon . $label, $url, $options);
     }
     return $out;
 }