* @copyright Copyright © Christoffer Niska 2013- * @license http://www.opensource.org/licenses/bsd-license.php New BSD License * @package bootstrap.widgets */ /** * Bootstrap thumbnails widget. * http://twitter.github.com/bootstrap/components.html#thumbnails */ class TbThumbnails extends TbListView { /** * @var mixed a PHP expression that is evaluated for every item and whose result is used * as the URL for the thumbnail. */ public $url; /** * @var integer the number of grid columns that the thumbnails spans over. */ public $span; /** * Initializes the widget */ public function init() { parent::init(); if (isset($this->itemsCssClass)) { TbHtml::addCssClass($this->itemsCssClass, $this->htmlOptions); } } /** * 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['caption'] = $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(); } } }