Spec-Zone.ru › Yii 1.1

CJuiTabs

Пакет zii.widgets.jui
Наследование class CJuiTabs » CJuiWidget » CWidget » CBaseController » CComponent
С момента 1.1
Исходный код framework/zii/widgets/jui/CJuiTabs.php
CJuiTabs отображает виджет вкладок.

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()
Исходный код: framework/zii/widgets/jui/CJuiTabs.php#97 (показать)
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API