Пример #1
0
 public function renderItems()
 {
     $options = $this->itemOptions;
     $tag = ArrayHelper::remove($options, 'tag', 'li');
     $lines = [];
     $items = \hass\revolutionslider\models\Revolutionslider::find()->all();
     if (!empty($items)) {
         RevolutionsliderAsset::register($this->view);
     }
     foreach ($items as $item) {
         $menu = $this->renderItem($item);
         if ($tag === false) {
             $lines[] = $menu;
         } else {
             $lines[] = Html::tag($tag, $menu, $options);
         }
     }
     return implode("\n", $lines);
 }
Пример #2
0
 protected function renderItems($items)
 {
     $n = count($items);
     $lines = [];
     foreach ($items as $i => $item) {
         $options = array_merge($this->itemOptions, ArrayHelper::getValue($item, 'options', []));
         $tag = ArrayHelper::remove($options, 'tag', 'li');
         $class = [];
         if ($item['active']) {
             $class[] = $this->activeCssClass;
         }
         if ($i === 0 && $this->firstItemCssClass !== null) {
             $class[] = $this->firstItemCssClass;
         }
         if ($i === $n - 1 && $this->lastItemCssClass !== null) {
             $class[] = $this->lastItemCssClass;
         }
         if (!empty($class)) {
             if (empty($options['class'])) {
                 $options['class'] = implode(' ', $class);
             } else {
                 $options['class'] .= ' ' . implode(' ', $class);
             }
         }
         $menu = $this->renderItem($item);
         if (!empty($item['items'])) {
             $submenuTemplate = ArrayHelper::getValue($item, 'submenuTemplate', $this->submenuTemplate);
             $menu .= strtr($submenuTemplate, ['{items}' => $this->renderItems($item['items'])]);
             if (empty($options['class'])) {
                 $options['class'] = $this->hasChildrenCssClass;
             } else {
                 $options['class'] .= ' ' . $this->hasChildrenCssClass;
             }
         }
         if ($tag === false) {
             $lines[] = $menu;
         } else {
             $lines[] = Html::tag($tag, $menu, $options);
         }
     }
     return implode("\n", $lines);
 }