PATH:
home
/
letacommog
/
letaweb
/
protected
/
extensions
/
yiibooster
/
widgets
<?php /** *## TbCarousel class file. * * @author Christoffer Niska <ChristofferNiska@gmail.com> * @copyright Copyright © Christoffer Niska 2011- * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php) * @since 0.9.10 * * @author Amr Bedair <amr.bedair@gmail.com> * @since v4.0.0 - modified to work with bootstrap 3.1.1 * */ /** *## Bootstrap carousel widget. * * @see <http://twitter.github.com/bootstrap/javascript.html#carousel> * * @package booster.widgets.grouping */ class TbCarousel extends CWidget { /** * @var string the previous button label. Defaults to '‹'. */ public $prevLabel = '<span class="glyphicon glyphicon-chevron-left"></span>'; /** * @var string the next button label. Defaults to '›'. */ public $nextLabel = '<span class="glyphicon glyphicon-chevron-right"></span>'; /** * @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(); /** *### .init() * * 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; } } } /** *### .run() * * Runs the widget. */ public function run() { $id = $this->htmlOptions['id']; echo CHtml::openTag('div', $this->htmlOptions); $this->renderIndicators(); 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});"); } } /** * */ protected function renderIndicators() { echo '<ol class="carousel-indicators">'; $count = count($this->items); for ($i = 0; $i < $count; $i++) { echo '<li data-target="#'.$this->id.'" data-slide-to="'.$i.'" class="'.($i===0?'active':'').'"></li>'; } echo '</ol>'; } /** *### .renderItems() * * 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(); } /** * Is this image should be a link? * @since 2.1.0 */ if (isset($item['link'])) { // Any kind of link options if (!isset($item['linkOptions']) || !is_array($item['linkOptions'])) { $item['linkOptions'] = array(); } // URL if(is_array($item['link'])) { $route = isset($item['link'][0]) ? $item['link'][0] : ''; $item['linkOptions']['href'] = Yii::app()->createUrl($route, array_splice($item['link'], 1)); } else { $item['linkOptions']['href'] = $item['link']; } // Print out 'A' tag echo CHtml::openTag('a', $item['linkOptions']); } echo CHtml::image($item['image'], $item['alt'], $item['imageOptions']); if (isset($item['link'])) { echo '</a>'; } } 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 '<h3>' . $item['label'] . '</h3>'; } if (isset($item['caption'])) { echo '<p>' . $item['caption'] . '</p>'; } echo '</div>'; } echo '</div>'; } } }
[+]
..
[-] TbTabView.php
[edit]
[-] TbNavbar.php
[edit]
[-] TbHighCharts.php
[edit]
[-] TbPager.php
[edit]
[-] TbLabel.php
[edit]
[-] TbActiveForm.php
[edit]
[-] TbPanel.php
[edit]
[-] TbJsonButtonColumn.php
[edit]
[-] TbModalManager.php
[edit]
[-] TbToggleColumn.php
[edit]
[-] TbUiLayout.php
[edit]
[-] TbBaseMenu.php
[edit]
[-] widgets.md
[edit]
[-] TbEditableDetailView.php
[edit]
[-] TbButtonGroup.php
[edit]
[-] TbEditable.php
[edit]
[-] TbFileUpload.php
[edit]
[-] TbEditableField.php
[edit]
[-] TbTags.php
[edit]
[-] TbFormButtonElement.php
[edit]
[-] TbFormInputElement.php
[edit]
[-] TbJsonPager.php
[edit]
[-] TbCollapse.php
[edit]
[-] TbBulkActions.php
[edit]
[-] TbRelationalColumn.php
[edit]
[-] TbTabs.php
[edit]
[-] TbModal.php
[edit]
[-] TbExtendedGridView.php
[edit]
[-] TbJumbotron.php
[edit]
[-] TbImageGallery.php
[edit]
[-] TbWidget.php
[edit]
[-] TbMenu.php
[edit]
[-] TbProgress.php
[edit]
[-] TbButtonColumn.php
[edit]
[-] TbJsonToggleColumn.php
[edit]
[-] TbJsonPickerColumn.php
[edit]
[-] TbColorPicker.php
[edit]
[-] TbButtonGroupColumn.php
[edit]
[-] TbSwitch.php
[edit]
[-] TbHeroUnit.php
[edit]
[-] TbDatePicker.php
[edit]
[-] TbJsonCheckBoxColumn.php
[edit]
[-] TbButton.php
[edit]
[-] TbTypeahead.php
[edit]
[-] TbForm.php
[edit]
[-] TbPassfield.php
[edit]
[-] TbEditableColumn.php
[edit]
[-] TbMarkdownEditorJs.php
[edit]
[-] TbPopoverColumn.php
[edit]
[-] TbMarkdownEditor.php
[edit]
[-] TbAlert.php
[edit]
[-] TbGroupGridView.php
[edit]
[-] TbBaseInputWidget.php
[edit]
[-] TbWizard.php
[edit]
[-] TbGroupButtonColumn.php
[edit]
[-] TbExtendedFilter.php
[edit]
[-] TbGoogleVisualizationChart.php
[edit]
[-] TbHtml5Editor.php
[edit]
[-] TbGridView.php
[edit]
[-] TbListView.php
[edit]
[-] TbTimePicker.php
[edit]
[-] TbJsonGridView.php
[edit]
[-] TbCKEditor.php
[edit]
[-] TbTotalSumColumn.php
[edit]
[-] TbDateRangePicker.php
[edit]
[-] TbBadge.php
[edit]
[-] TbDropdown.php
[edit]
[-] TbBreadcrumbs.php
[edit]
[-] TbJsonGridColumn.php
[edit]
[-] TbDateTimePicker.php
[edit]
[-] TbDataColumn.php
[edit]
[-] TbCarousel.php
[edit]
[-] TbJsonDataColumn.php
[edit]
[-] TbRedactorJs.php
[edit]
[-] TbThumbnails.php
[edit]
[-] TbScrollSpy.php
[edit]
[-] TbDetailView.php
[edit]
[+]
input
[-] TbSelect2.php
[edit]
[-] TbImageColumn.php
[edit]