TbHtml::thumbnails PHP Method

thumbnails() public static method

Generates a list of thumbnails.
public static thumbnails ( array $thumbnails, array $htmlOptions = [] ) : string
$thumbnails array the list configuration.
$htmlOptions array additional HTML attributes.
return string the generated thumbnails.
    public static function thumbnails(array $thumbnails, $htmlOptions = array())
    {
        if (!empty($thumbnails)) {
            self::addCssClass('thumbnails', $htmlOptions);
            $defaultSpan = TbArray::popValue('span', $htmlOptions, 3);
            $output = self::openTag('ul', $htmlOptions);
            foreach ($thumbnails as $thumbnailOptions) {
                if (isset($thumbnailOptions['visible']) && $thumbnailOptions['visible'] === false) {
                    continue;
                }
                // todo: consider removing the support for htmlOptions.
                $options = TbArray::popValue('htmlOptions', $thumbnailOptions, array());
                if (!empty($options)) {
                    $thumbnailOptions = TbArray::merge($options, $thumbnailOptions);
                }
                $thumbnailOptions['itemOptions']['span'] = TbArray::popValue('span', $thumbnailOptions, $defaultSpan);
                $caption = TbArray::popValue('caption', $thumbnailOptions, '');
                $captionOptions = TbArray::popValue('captionOptions', $thumbnailOptions, array());
                self::addCssClass('caption', $captionOptions);
                $label = TbArray::popValue('label', $thumbnailOptions);
                $labelOptions = TbArray::popValue('labelOptions', $thumbnailOptions, array());
                if (!empty($label)) {
                    $caption = self::tag('h3', $labelOptions, $label) . $caption;
                }
                $content = !empty($caption) ? self::tag('div', $captionOptions, $caption) : '';
                $image = TbArray::popValue('image', $thumbnailOptions);
                $imageOptions = TbArray::popValue('imageOptions', $thumbnailOptions, array());
                $imageAlt = TbArray::popValue('alt', $imageOptions, '');
                if (!empty($image)) {
                    $content = parent::image($image, $imageAlt, $imageOptions) . $content;
                }
                $url = TbArray::popValue('url', $thumbnailOptions, false);
                $output .= $url !== false ? self::thumbnailLink($content, $url, $thumbnailOptions) : self::thumbnail($content, $thumbnailOptions);
            }
            $output .= '</ul>';
            return $output;
        } else {
            return '';
        }
    }

Usage Example

Example #1
0
 /**
  * Renders the data items for the view.
  * Each item is corresponding to a single data model instance.
  */
 public function renderItems()
 {
     $thumbnails = array();
     $data = $this->dataProvider->getData();
     if (!empty($data)) {
         $owner = $this->getOwner();
         $render = $owner instanceof CController ? 'renderPartial' : 'render';
         foreach ($data as $i => $row) {
             $thumbnail = array();
             $d = $this->viewData;
             $d['index'] = $i;
             $d['data'] = $row;
             $d['widget'] = $this;
             $thumbnail['content'] = $owner->{$render}($this->itemView, $d, true);
             if (isset($this->url)) {
                 $thumbnail['url'] = $this->evaluateExpression($this->url, array('data' => $row));
             }
             if (isset($this->span)) {
                 $thumbnail['span'] = $this->span;
             }
             $thumbnails[] = $thumbnail;
         }
         echo TbHtml::thumbnails($thumbnails, $this->htmlOptions);
     } else {
         $this->renderEmptyText();
     }
 }
All Usage Examples Of TbHtml::thumbnails
TbHtml