Spec-Zone.ru › Yii 1.1

CJuiButton

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

CJuiButton инкапсулирует плагин JUI Button.

Чтобы использовать этот виджет как кнопку отправки, вы можете вставить следующий код в представление:
$this->widget('zii.widgets.jui.CJuiButton',array(
    'buttonType'=>'submit',
    'name'=>'btnSubmit',
    'value'=>'1',
    'caption'=>'Submit form',
    'htmlOptions'=>array('class'=>'ui-button-primary')
    ),
));


Чтобы использовать этот виджет как обычную кнопку, вы можете вставить следующий код в представление:
$this->widget('zii.widgets.jui.CJuiButton',array(
    'buttonType'=>'button',
    'name'=>'btnSave',
    'caption'=>'Save',
    'onclick'=>new CJavaScriptExpression('function(){alert("Save button clicked"); this.blur(); return false;}'),
));


Настроив свойство options, вы можете указать опции, которые необходимо передать плагину JUI кнопки. Обратитесь к документации JUI Button API для возможных опций (имя-значение) и к странице JUI Button для общего описания и демо.

Свойства публичного доступа

Свойство Тип Описание Определено в
actionPrefix строка префикс к идентификаторам действий. CWidget
attribute строка атрибут, связанный с этим виджетом. CJuiInputWidget
buttonType строка Тип кнопки (возможные типы: submit, button, link, radio, checkbox, buttonset). CJuiButton
caption строка Текст кнопки CJuiButton
controller CController Возвращает контроллер, к которому принадлежит этот виджет. CWidget
cssFile смешанный имя файла CSS темы. CJuiWidget
htmlOptions массив HTML-атрибуты, которые должны быть отображены в HTML-теге, представляющем виджет JUI. CJuiWidget
htmlTag строка Стандартный HTML-тег для buttonset CJuiButton
id строка Возвращает ID виджета или генерирует новый, если требуется. CWidget
model CModel модель данных, связанная с этим виджетом. CJuiInputWidget
name строка имя ввода. CJuiInputWidget
onclick строка JavaScript-функция, которая вызывается при нажатии на этот элемент (клиентское событие). CJuiButton
options массив исходные JavaScript-опции, которые должны быть переданы плагину JUI. CJuiWidget
owner CBaseController Возвращает владельца/создателя этого виджета. CWidget
scriptFile смешанный имя основного файла JavaScript JUI. CJuiWidget
scriptUrl строка корневой URL, содержащий все файлы JavaScript JUI. CJuiWidget
skin смешанный имя скина, используемого этим виджетом. CWidget
theme строка имя темы JUI. CJuiWidget
themeUrl строка корневой URL, содержащий все папки тем JUI. CJuiWidget
url смешанный URL или маршрут действия, которые можно использовать для создания URL. CJuiButton
value смешанный Значение текущего элемента. CJuiButton
viewPath строка Возвращает директорию, содержащую файлы представления для этого виджета. CWidget

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CWidget
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. 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() Возвращает ID виджета или генерирует новый, если запрошено. CWidget
getOwner() Возвращает владельца/создателя этого виджета. CWidget
getViewFile() Ищет файл скрипта представления согласно имени представления. CWidget
getViewPath() Возвращает каталог, содержащий файлы представлений для этого виджета. CWidget
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеет ли указанное событие прикреплённые обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() (non-PHPdoc) CJuiButton
raiseEvent() Возбуждает событие. CComponent
render() Рендерит представление. CWidget
renderFile() Рендерит файл представления. CBaseController
renderInternal() Рендерит файл представления. CBaseController
run() (non-PHPdoc) CJuiButton
setId() Устанавливает ID виджета. CWidget
widget() Создаёт виджет и выполняет его. CBaseController

Защищённые методы

Метод Описание Определено в
hasModel() Определяет, связан ли этот виджет с моделью данных. CJuiInputWidget
registerCoreScripts() Регистрирует основные файлы скриптов. CJuiWidget
registerScriptFile() Регистрирует файл JavaScript по адресу scriptUrl. CJuiWidget
resolveNameID() Разрешает имя и ID ввода. Свойство источника имени и/или свойства источника атрибута CJuiInputWidget
resolvePackagePath() Определяет путь к установке пакета JUI. CJuiWidget

Подробное описание свойств

buttonType свойство

public string $buttonType;

Тип кнопки (возможные типы: submit, button, link, radio, checkbox, buttonset). По умолчанию используется "submit".

caption свойство

public string $caption;

Текст кнопки

htmlTag свойство

public string $htmlTag;

Значение тега html по умолчанию для кнопки.

onclick свойство

public string $onclick;

Функция JavaScript, которая вызывается при нажатии на элемент (событие клиента).

url свойство

public mixed $url;

URL или маршрут действия, который может быть использован для создания URL. Используется, когда выбран тип кнопки "ссылка". См. normalizeUrl для получения более подробной информации о том, как указать этот параметр.

value свойство

public mixed $value;

Значение текущего элемента. Используется только для элементов типа "радио" и "флажок".

Подробное описание методов

init() метод

public void init()
Исходный код: framework/zii/widgets/jui/CJuiButton.php#85 (показать)
public function init()
{
    
parent::init();

    if(
$this->buttonType=='buttonset')
    {
        if(!isset(
$this->htmlOptions['id']))
            
$this->htmlOptions['id']=$this->getId();

        echo 
CHtml::openTag($this->htmlTag,$this->htmlOptions);
    }
}

(non-PHPdoc)

См. также

  • framework/zii/widgets/jui/CJuiWidget::init()

run() метод

public void run()
Исходный код: framework/zii/widgets/jui/CJuiButton.php#102 (показать)
public function run()
{
    
$cs=Yii::app()->getClientScript();
    list(
$name,$id)=$this->resolveNameID();

    if(isset(
$this->htmlOptions['id']))
        
$id=$this->htmlOptions['id'];
    else
        
$this->htmlOptions['id']=$id;
    if(isset(
$this->htmlOptions['name']))
        
$name=$this->htmlOptions['name'];
    else
        
$this->htmlOptions['name']=$name;

    if(
$this->buttonType=='buttonset')
    {
        echo 
CHtml::closeTag($this->htmlTag);
        
$cs->registerScript(__CLASS__.'#'.$id,"jQuery('#{$id}').buttonset();");
    }
    else
    {
        switch(
$this->buttonType)
        {
            case 
'submit':
                echo 
CHtml::submitButton($this->caption,$this->htmlOptions)."\n";
                break;
            case 
'button':
                echo 
CHtml::htmlButton($this->caption,$this->htmlOptions)."\n";
                break;
            case 
'link':
                echo 
CHtml::link($this->caption,$this->url,$this->htmlOptions)."\n";
                break;
            case 
'radio':
                if(
$this->hasModel())
                {
                    echo 
CHtml::activeRadioButton($this->model,$this->attribute,$this->htmlOptions);
                    echo 
CHtml::label($this->caption,CHtml::activeId($this->model,$this->attribute))."\n";
                }
                else
                {
                    echo 
CHtml::radioButton($name,$this->value,$this->htmlOptions);
                    echo 
CHtml::label($this->caption,$id)."\n";
                }
                break;
            case 
'checkbox':
                if(
$this->hasModel())
                {
                    echo 
CHtml::activeCheckbox($this->model,$this->attribute,$this->htmlOptions);
                    echo 
CHtml::label($this->caption,CHtml::activeId($this->model,$this->attribute))."\n";
                }
                else
                {
                    echo 
CHtml::checkbox($name,$this->value,$this->htmlOptions);
                    echo 
CHtml::label($this->caption,$id)."\n";
                }
                break;
            default:
                throw new 
CException(Yii::t('zii','The button type "{type}" is not supported.',array('{type}'=>$this->buttonType)));
        }

        
$options=CJavaScript::encode($this->options);
        if(
$this->onclick!==null)
        {
            if(!(
$this->onclick instanceof CJavaScriptExpression))
                
$this->onclick=new CJavaScriptExpression($this->onclick);
            
$click=CJavaScript::encode($this->onclick);
            
$cs->registerScript(__CLASS__.'#'.$id,"jQuery('#{$id}').button($options).click($click);");
        }
        else
            
$cs->registerScript(__CLASS__.'#'.$id,"jQuery('#{$id}').button($options);");
    }
}

(non-PHPdoc)

См. также

  • framework/CWidget::run()

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CJuiButton

Spec-Zone.ru

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