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); }
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); }