protected function renderItems($items, $options = []) { $lines = []; foreach ($items as $i => $item) { if (isset($item['visible']) && !$item['visible']) { continue; } if (is_string($item)) { $lines[] = $item; continue; } if (!array_key_exists('label', $item)) { throw new InvalidConfigException("The 'label' option is required."); } $encodeLabel = isset($item['encode']) ? $item['encode'] : $this->encodeLabels; $label = $encodeLabel ? Html::encode($item['label']) : $item['label']; $itemOptions = ArrayHelper::getValue($item, 'options', []); $linkOptions = ArrayHelper::getValue($item, 'linkOptions', []); $url = array_key_exists('url', $item) ? $item['url'] : null; if ($url === null) { $content = $label; } else { $content = Html::a($label, $url, $linkOptions); } $lines[] = Html::tag('li', $content, $itemOptions); } return Html::tag('ul', implode("\n", $lines), $options); }
/** * Renders the close button. * @return string the rendering result */ protected function renderCloseButton() { if (($closeButton = $this->closeButton) !== false) { $tag = ArrayHelper::remove($closeButton, 'tag', 'button'); $label = ArrayHelper::remove($closeButton, 'label', 'Close'); if ($tag === 'button' && !isset($closeButton['type'])) { $closeButton['type'] = 'button'; } return Html::tag($tag, $label, $closeButton); } else { return null; } }
protected function renderBody($items) { $ret = ''; foreach ($items as $i => $item) { $item['options']['class'] = isset($item['options']['class']) ? $item['options']['class'] . ' col s12' : 'col s12'; $ret .= Html::tag('div', $item['content'], $item['options']); } return $ret; }
protected function renderCardContent($data) { foreach ($data as $content) { if (isset($content['activator'])) { Html::addCssClass($content['options'], 'card-title'); Html::addCssClass($content['options'], 'activator'); } $contents[] = Html::tag(isset($content['tag']) ? $content['tag'] : 'span', $content['body'], isset($content['options']) ? $content['options'] : []); } return implode("\n", $contents); }