CJuiTabs
| Пакет | zii.widgets.jui |
|---|---|
| Наследование | class CJuiTabs » CJuiWidget » CWidget » CBaseController » CComponent |
| С момента | 1.1 |
| Исходный код | framework/zii/widgets/jui/CJuiTabs.php |
CJuiTabs инкапсулирует плагин JUI вкладок.
Для использования этого виджета, вы можете вставить следующий код в представление:
$this->widget('zii.widgets.jui.CJuiTabs',array(
'tabs'=>array(
'StaticTab 1'=>'Content for tab 1',
'StaticTab 2'=>array('content'=>'Content for tab 2', 'id'=>'tab2'),
// panel 3 contains the content rendered by a partial view
'AjaxTab'=>array('ajax'=>$ajaxUrl),
),
// additional javascript options for the tabs plugin
'options'=>array(
'collapsible'=>true,
),
));
Настроив свойство options, вы можете указать опции, которые нужно передать плагину JUI вкладок. Обратитесь к документации JUI API вкладок для возможных опций (имя-значение) и к странице JUI Вкладки для общего описания и демонстрации.
Обратите внимание, что в случае использования тега <base/> HTML, у вас могут возникнуть проблемы, когда jQuery UI использует измененный базовый URL для загрузки содержимого, но не базовый URL, из которого загружалось содержимое. (Разработчик может ожидать обоих поведений в разных случаях). В этом случае рассмотрите использование абсолютного URL-адреса следующим образом:
$this->widget('zii.widgets.jui.CJuiTabs',array(
'tabs'=>array(
'Dynamic Tab'=>array('ajax'=>$this->createAbsoluteUrl('tab/content/route')),
),
));
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| contentTemplate | строка | шаблон, используемый для генерации содержимого каждой вкладки. | CJuiTabs |
| controller | CController | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| cssFile | смешанный тип | имя файла CSS темы. | CJuiWidget |
| headerTemplate | строка | шаблон, используемый для генерации заголовка каждой панели. | CJuiTabs |
| htmlOptions | массив | HTML-атрибуты, которые должны быть отображены в HTML-теге, представляющем виджет JUI. | CJuiWidget |
| id | строка | Возвращает идентификатор виджета или генерирует новый, если запрошено. | CWidget |
| options | массив | исходные JavaScript-опции, которые должны быть переданы плагину JUI. | CJuiWidget |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| scriptFile | смешанный тип | основной JUI JavaScript-файл. | CJuiWidget |
| scriptUrl | строка | корневой URL, содержащий все JUI JavaScript-файлы. | CJuiWidget |
| skin | смешанный тип | имя скина, используемого этим виджетом. | CWidget |
| tabs | массив | список вкладок (заголовок вкладки=>содержимое вкладки). | CJuiTabs |
| tagName | строка | имя контейнерного элемента, содержащего все панели. | CJuiTabs |
| theme | строка | имя темы JUI. | CJuiWidget |
| themeUrl | строка | корневой URL, содержащий все папки темы JUI. | CJuiWidget |
| viewPath | строка | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кэширование фрагментов. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отображение содержимого, которое должно быть отформатировано указанным представлением. | CBaseController |
| beginWidget() | Создает виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создает виджет и инициализирует его. | CBaseController |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединенное поведение. | CComponent |
| disableBehaviors() | Отключает все присоединённые к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые к этому компоненту поведения. | CComponent |
| endCache() | Заканчивает кэширование фрагментов. | CBaseController |
| endClip() | Завершает запись клипа. | CBaseController |
| endContent() | Завершает отображение содержимого. | CBaseController |
| endWidget() | Завершает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если это запрошено. | CWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл шаблона представления в соответствии с именем представления. | CWidget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединённые обработчики для заданного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует виджет. | CJuiWidget |
| raiseEvent() | Вызывает событие. | CComponent |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл шаблона представления. | CBaseController |
| renderInternal() | Отображает файл шаблона представления. | CBaseController |
| run() | Выполнить этот виджет. | CJuiTabs |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создает виджет и выполняет его. | CBaseController |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| registerCoreScripts() | Регистрирует основные файлы скриптов. | CJuiWidget |
| registerScriptFile() | Регистрирует файл JavaScript в scriptUrl. | CJuiWidget |
| resolvePackagePath() | Определяет путь к установке пакета JUI. | CJuiWidget |
Подробное описание свойств
contentTemplate свойство
public string $contentTemplate;
шаблон, используемый для генерации содержимого каждой вкладки. Токен "{content}" в шаблоне будет заменён содержимым панели, а токен "{id}" — идентификатором вкладки.
headerTemplate свойство
public string $headerTemplate;
шаблон, используемый для генерации заголовка каждой панели. Токен "{title}" в шаблоне будет заменён заголовком панели, а токен "{url}" — строкой "#TabID" или URL-адресом запроса AJAX.
tabs свойство
public array $tabs;
список вкладок (заголовок вкладки=>содержимое вкладки). Обратите внимание, что заголовок вкладки не будет закодирован в HTML. Содержимое вкладки может быть либо строкой, либо массивом. Когда это массив, он может быть в одном из следующих двух форматов:
array('id'=>'myTabID', 'content'=>'tab content')
array('id'=>'myTabID', 'ajax'=>URL)
где элемент 'id' является необязательным. Второй формат позволяет динамически извлекать содержимое вкладки из указанного URL-адреса с помощью AJAX. URL-адрес может быть либо строкой, либо массивом. Если это массив, он будет нормализован в URL-адрес с помощью CHtml::normalizeUrl. tagName свойство
public string $tagName;
имя контейнерного элемента, содержащего все панели. По умолчанию 'div'.
Подробное описание методов
run() метод
public void run() |
public function run()
{
$id=$this->getId();
if(isset($this->htmlOptions['id']))
$id=$this->htmlOptions['id'];
else
$this->htmlOptions['id']=$id;
echo CHtml::openTag($this->tagName,$this->htmlOptions)."\n";
$tabsOut="";
$contentOut="";
$tabCount=0;
foreach($this->tabs as $title=>$content)
{
$tabId=(is_array($content) && isset($content['id']))?$content['id']:$id.'_tab_'.$tabCount++;
if(!is_array($content))
{
$tabsOut.=strtr($this->headerTemplate,array('{title}'=>$title,'{url}'=>'#'.$tabId,'{id}'=>'#'.$tabId))."\n";
$contentOut.=strtr($this->contentTemplate,array('{content}'=>$content,'{id}'=>$tabId))."\n";
}
elseif(isset($content['ajax']))
{
$tabsOut.=strtr($this->headerTemplate,array('{title}'=>$title,'{url}'=>CHtml::normalizeUrl($content['ajax']),'{id}'=>'#'.$tabId))."\n";
}
else
{
$tabsOut.=strtr($this->headerTemplate,array('{title}'=>$title,'{url}'=>'#'.$tabId,'{id}'=>$tabId))."\n";
if(isset($content['content']))
$contentOut.=strtr($this->contentTemplate,array('{content}'=>$content['content'],'{id}'=>$tabId))."\n";
}
}
echo "<ul>\n".$tabsOut."</ul>\n";
echo $contentOut;
echo CHtml::closeTag($this->tagName)."\n";
$options=CJavaScript::encode($this->options);
Yii::app()->getClientScript()->registerScript(__CLASS__.'#'.$id,"jQuery('#{$id}').tabs($options);");
}
Запустить этот виджет. Этот метод регистрирует необходимый JavaScript и отображает необходимый HTML-код.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CJuiTabs