Beispiel #1
0
 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);
 }
Beispiel #2
0
 /**
  * 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;
     }
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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);
 }