Server IP : 103.233.192.212 / Your IP : 3.148.194.168 Web Server : Apache/2 System : Linux sv1.inde.co.th 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 User : sumpatuan ( 1058) PHP Version : 5.5.38 Disable Function : symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,putenv,passthru,escapeshellarg,escapeshellcmd,pcntl_exec,proc_get_status,proc_nice,proc_terminate,pclose,ini_alter,virtual,openlog,ini_restore MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/sumpatuan/public_html/backup/protected/extensions/bootstrap/widgets/ |
Upload File : |
<?php /** * TbCarousel class file. * @author Christoffer Niska <ChristofferNiska@gmail.com> * @copyright Copyright © Christoffer Niska 2011- * @license http://www.opensource.org/licenses/bsd-license.php New BSD License * @package bootstrap.widgets * @since 0.9.10 */ /** * Bootstrap carousel widget. * @see http://twitter.github.com/bootstrap/javascript.html#carousel */ class TbCarousel extends CWidget { /** * @var string the previous button label. Defaults to '‹'. */ public $prevLabel = '‹'; /** * @var string the next button label. Defaults to '›'. */ public $nextLabel = '›'; /** * @var boolean indicates whether the carousel should slide items. */ public $slide = true; /** * @var boolean indicates whether to display the previous and next links. */ public $displayPrevAndNext = true; /** * @var array the carousel items configuration. */ public $items = array(); /** * @var array the options for the Bootstrap Javascript plugin. */ public $options = array(); /** * @var string[] the Javascript event handlers. */ public $events = array(); /** * @var array the HTML attributes for the widget container. */ public $htmlOptions = array(); /** * Initializes the widget. */ public function init() { if (!isset($this->htmlOptions['id'])) $this->htmlOptions['id'] = $this->getId(); $classes = array('carousel'); if ($this->slide === true) $classes[] = 'slide'; if (!empty($classes)) { $classes = implode(' ', $classes); if (isset($this->htmlOptions['class'])) $this->htmlOptions['class'] .= ' '.$classes; else $this->htmlOptions['class'] = $classes; } } /** * Runs the widget. */ public function run() { $id = $this->htmlOptions['id']; echo CHtml::openTag('div', $this->htmlOptions); echo '<div class="carousel-inner">'; $this->renderItems($this->items); echo '</div>'; if ($this->displayPrevAndNext) { echo '<a class="carousel-control left" href="#'.$id.'" data-slide="prev">'.$this->prevLabel.'</a>'; echo '<a class="carousel-control right" href="#'.$id.'" data-slide="next">'.$this->nextLabel.'</a>'; } echo '</div>'; /** @var CClientScript $cs */ $cs = Yii::app()->getClientScript(); $options = !empty($this->options) ? CJavaScript::encode($this->options) : ''; $cs->registerScript(__CLASS__.'#'.$id, "jQuery('#{$id}').carousel({$options});"); foreach ($this->events as $name => $handler) { $handler = CJavaScript::encode($handler); $cs->registerScript(__CLASS__.'#'.$id.'_'.$name, "jQuery('#{$id}').on('{$name}', {$handler});"); } } /** * Renders the carousel items. * @param array $items the item configuration. */ protected function renderItems($items) { foreach ($items as $i => $item) { if (!is_array($item)) continue; if (isset($item['visible']) && $item['visible'] === false) continue; if (!isset($item['itemOptions'])) $item['itemOptions'] = array(); $classes = array('item'); if ($i === 0) $classes[] = 'active'; if (!empty($classes)) { $classes = implode(' ', $classes); if (isset($item['itemOptions']['class'])) $item['itemOptions']['class'] .= ' '.$classes; else $item['itemOptions']['class'] = $classes; } echo CHtml::openTag('div', $item['itemOptions']); if (isset($item['image'])) { if (!isset($item['alt'])) $item['alt'] = ''; if (!isset($item['imageOptions'])) $item['imageOptions'] = array(); echo CHtml::image($item['image'], $item['alt'], $item['imageOptions']); } if (!empty($item['caption']) && (isset($item['label']) || isset($item['caption']))) { if (!isset($item['captionOptions'])) $item['captionOptions'] = array(); if (isset($item['captionOptions']['class'])) $item['captionOptions']['class'] .= ' carousel-caption'; else $item['captionOptions']['class'] = 'carousel-caption'; echo CHtml::openTag('div', $item['captionOptions']); if (isset($item['label'])) echo '<h4>'.$item['label'].'</h4>'; if (isset($item['caption'])) echo '<p>'.$item['caption'].'</p>'; echo '</div>'; } echo '</div>'; } } }