Spec-Zone.ru › Yii 1.1

CHtml

Пакет system.web.helpers
Наследование class CHtml
С момента 1.0
Исходный код framework/web/helpers/CHtml.php
CHtml — это статический класс, предоставляющий набор вспомогательных методов для создания HTML-представлений.

Почти все методы этого класса позволяют задавать дополнительные атрибуты HTML для генерируемых HTML-тегов. Например, вы можете указать 'class', 'style' или 'id' для HTML-элемента. Например, при использовании array('class' => 'my-class', 'target' => '_blank') в качестве htmlOptions, это приведет к тому, что атрибуты HTML будут отображаться так: class="my-class" target="_blank".

Общественные свойства

Свойство Тип Описание Определено в
afterRequiredLabel строка HTML-код, который будет добавлен после метки "обязательно". CHtml
beforeRequiredLabel строка HTML-код, который будет добавлен перед меткой "обязательно". CHtml
closeSingleTags логическое значение закрывать ли одиночные теги. CHtml
count целое число счётчик для генерации автоматических имён полей ввода. CHtml
errorContainerTag строка имя тега для контейнера ошибок. CHtml
errorCss строка CSS-класс для выделения полей ввода с ошибками. CHtml
errorMessageCss строка CSS-класс для отображения сообщений об ошибках (см. error). CHtml
errorSummaryCss строка CSS-класс для отображения сводок ошибок (см. errorSummary). CHtml
liveEvents Устанавливает стиль по умолчанию для прикрепления обработчиков событий jQuery. CHtml
renderSpecialAttributesValue логическое значение отображать ли значения специальных атрибутов. CHtml
requiredCss строка CSS-класс для меток "обязательно". CHtml

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

Метод Описание Определено в
activeCheckBox() Генерирует флажок для атрибута модели. CHtml
activeCheckBoxList() Генерирует список флажков для атрибута модели. CHtml
activeColorField() Генерирует поле выбора цвета для атрибута модели. CHtml
activeDateField() Генерирует поле ввода даты для атрибута модели. CHtml
activeDateTimeField() Генерирует поле ввода даты и времени для атрибута модели. CHtml
activeDateTimeLocalField() Генерирует поле ввода локальной даты и времени для атрибута модели. CHtml
activeDropDownList() Генерирует выпадающий список для атрибута модели. CHtml
activeEmailField() Генерирует поле ввода адреса электронной почты для атрибута модели. CHtml
activeFileField() Генерирует поле ввода файла для атрибута модели. CHtml
activeHiddenField() Генерирует скрытое поле ввода для атрибута модели. CHtml
activeId() Генерирует идентификатор поля ввода для атрибута модели. CHtml
activeLabel() Генерирует тег метки для атрибута модели. CHtml
activeLabelEx() Генерирует тег метки для атрибута модели. CHtml
activeListBox() Генерирует список для атрибута модели. CHtml
activeName() Генерирует имя поля ввода для атрибута модели. CHtml
activeNumberField() Генерирует поле ввода числа для атрибута модели. CHtml
activePasswordField() Генерирует поле ввода пароля для атрибута модели. CHtml
activeRadioButton() Генерирует радиокнопку для атрибута модели. CHtml
activeRadioButtonList() Генерирует список радиокнопок для атрибута модели. CHtml
activeRangeField() Генерирует поле ввода диапазона для атрибута модели. CHtml
activeSearchField() Генерирует поле ввода поиска для атрибута модели. CHtml
activeTelField() Генерирует поле ввода номера телефона для атрибута модели. CHtml
activeTextArea() Генерирует область ввода текста для атрибута модели. CHtml
activeTextField() Генерирует поле ввода текста для атрибута модели. CHtml
activeTimeField() Генерирует поле ввода времени для атрибута модели. CHtml
activeUrlField() Генерирует поле ввода URL для атрибута модели. CHtml
activeWeekField() Генерирует поле ввода недели для атрибута модели. CHtml
ajax() Генерирует JavaScript, инициирующий AJAX-запрос. CHtml
ajaxButton() Генерирует кнопку, которая может инициировать AJAX-запросы. CHtml
ajaxLink() Генерирует ссылку, которая может инициировать AJAX-запросы. CHtml
ajaxSubmitButton() Генерирует кнопку, которая может отправить текущую форму методом POST. CHtml
asset() Генерирует URL для опубликованных ресурсов. CHtml
beginForm() Генерирует открывающий тег формы. CHtml
button() Генерирует кнопку. CHtml
cdata() Оборачивает заданную строку в тег CDATA. CHtml
checkBox() Генерирует флажок. CHtml
checkBoxList() Генерирует список флажков. CHtml
closeTag() Генерирует закрывающий тег HTML элемента. CHtml
colorField() Генерирует поле выбора цвета. CHtml
css() Оборачивает заданный CSS контент в тег CSS. CHtml
cssFile() Создаёт ссылку на указанный CSS файл. CHtml
dateField() Генерирует поле ввода даты. CHtml
dateTimeField() Генерирует поле ввода даты и времени. CHtml
dateTimeLocalField() Генерирует поле ввода локальной даты и времени. CHtml
decode() Декодирует специальные HTML сущности обратно в соответствующие символы. CHtml
dropDownList() Генерирует выпадающий список. CHtml
emailField() Генерирует поле ввода адреса электронной почты. CHtml
encode() Кодирует специальные символы в HTML сущности. CHtml
encodeArray() Кодирует специальные символы в массиве строк в HTML сущности. CHtml
endForm() Генерирует закрывающий тег формы. CHtml
error() Отображает первую ошибку валидации для атрибута модели. CHtml
errorSummary() Отображает сводку ошибок валидации для одной или нескольких моделей. CHtml
fileField() Генерирует поле ввода файла. CHtml
form() Генерирует открывающий тег формы. CHtml
getIdByName() Генерирует допустимый HTML идентификатор на основе имени. CHtml
hiddenField() Генерирует скрытое поле ввода. CHtml
htmlButton() Генерирует кнопку с использованием тега HTML button. CHtml
image() Генерирует тег изображения. CHtml
imageButton() Генерирует кнопку отправки изображения. CHtml
label() Генерирует тег метки. CHtml
link() Генерирует тег гиперссылки. CHtml
linkButton() Генерирует кнопку отправки по ссылке. CHtml
linkTag() Генерирует тег ссылки, который можно вставить в секцию head страницы HTML. CHtml
listBox() Генерирует список. CHtml
listData() Генерирует данные, подходящие для HTML элементов на основе списков. CHtml
listOptions() Генерирует параметры списка. CHtml
mailto() Генерирует ссылку mailto. CHtml
metaTag() Генерирует тег meta, который можно вставить в секцию head HTML страницы. CHtml
modelName() Генерирует имя HTML для данной модели. CHtml
normalizeUrl() Нормализует входной параметр, чтобы он стал корректным URL. CHtml
numberField() Генерирует поле ввода числа. CHtml
openTag() Генерирует открывающий тег HTML элемента. CHtml
pageStateField() Генерирует скрытое поле для хранения состояния страницы. CHtml
passwordField() Генерирует поле ввода пароля. CHtml
radioButton() Генерирует радиокнопку. CHtml
radioButtonList() Генерирует список радиокнопок. CHtml
rangeField() Генерирует поле ввода диапазона. CHtml
refresh() Регистрирует мета-тег 'refresh'. CHtml
renderAttributes() Отображает атрибуты HTML-тега. CHtml
resetButton() Генерирует кнопку сброса. CHtml
resolveName() Генерирует имя ввода для атрибута модели. CHtml
resolveNameID() Генерирует имя и ID ввода для атрибута модели. CHtml
resolveValue() Оценивает значение атрибута модели. CHtml
script() Оборачивает предоставленный JavaScript тегом script. CHtml
scriptFile() Включает JavaScript-файл. CHtml
searchField() Генерирует поле поиска. CHtml
setModelNameConverter() Устанавливает генератор, используемый в методе CHtml::modelName(). Вы можете использовать значение `null`, чтобы восстановить значение по умолчанию CHtml
statefulForm() Генерирует тег формы с сохранением состояния. CHtml
submitButton() Генерирует кнопку отправки. CHtml
tag() Генерирует HTML-элемент. CHtml
telField() Генерирует поле ввода телефона. CHtml
textArea() Генерирует поле ввода текстовой области. CHtml
textField() Генерирует поле ввода текста. CHtml
timeField() Генерирует поле ввода времени. CHtml
urlField() Генерирует поле ввода URL. CHtml
value() Оценивает значение указанного атрибута для данной модели. CHtml
weekField() Генерирует поле ввода недели. CHtml

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

Метод Описание Определено
activeInputField() Генерирует HTML-тег ввода для атрибута модели. CHtml
addErrorCss() Добавляет errorCss к атрибуту 'class'. CHtml
clientChange() Генерирует JavaScript со специфическими изменениями клиента. CHtml
inputField() Генерирует HTML-тег ввода. CHtml

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

afterRequiredLabel свойство

public static string $afterRequiredLabel;

код HTML, который будет добавлен после метки обязательности.

См. также

  • label

beforeRequiredLabel свойство

public static string $beforeRequiredLabel;

код HTML, который будет добавлен перед меткой обязательности.

См. также

  • label

closeSingleTags свойство (доступно начиная с v1.1.13)

public static boolean $closeSingleTags;

закрывать ли одиночные теги. По умолчанию true. Может быть установлено в false для HTML5.

count свойство

public static integer $count;

счётчик для генерации автоматических имён полей ввода.

errorContainerTag свойство (доступно начиная с v1.1.13)

public static string $errorContainerTag;

имя тега контейнера ошибок. По умолчанию 'div'.

errorCss свойство

public static string $errorCss;

класс CSS для выделения полей с ошибками. Поля ввода будут дополнены этим классом CSS, если у них есть ошибки ввода.

errorMessageCss свойство

public static string $errorMessageCss;

класс CSS для отображения сообщений об ошибках (см. error).

errorSummaryCss свойство

public static string $errorSummaryCss;

класс CSS для отображения сводок ошибок (см. errorSummary).

liveEvents свойство (доступно начиная с v1.1.9)

public static $liveEvents;

Устанавливает стиль по умолчанию для привязки обработчиков событий jQuery.

Если установлено в true (по умолчанию), обработчики событий делегируются. Обработчики событий прикрепляются к телу документа и могут обрабатывать события от дочерних элементов, которые добавляются в документ позже.

Если установлено в false, обработчики событий привязываются непосредственно. Обработчики событий прикрепляются непосредственно к элементу DOM, который должен уже существовать на странице. Элементы, внедрённые на страницу позже, не будут обработаны.

Вы можете переопределить это значение для конкретного элемента, установив атрибут htmlOptions delegate (см. clientChange).

Для получения дополнительной информации о прикреплении обработчиков событий jQuery, см. http://api.jquery.com/on/

См. также

  • clientChange

renderSpecialAttributesValue свойство (доступно начиная с v1.1.13)

public static boolean $renderSpecialAttributesValue;

отображать ли значения специальных атрибутов. По умолчанию true. Может быть установлено в false для HTML5.

requiredCss свойство

public static string $requiredCss;

класс CSS для меток обязательности. По умолчанию 'required'.

См. также

  • label

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

activeCheckBox() метод

public static string activeCheckBox(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel данные модели
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и tag для получения дополнительной информации). Доступен специальный параметр с именем 'uncheckValue', который можно использовать для указания значения, возвращаемого при отсутствии выбора в чекбоксе. По умолчанию это значение '0'. Внутренне рендерится скрытое поле, чтобы при отсутствии выбора в чекбоксе можно было получить отправленное значение uncheck. Если 'uncheckValue' установлен как NULL, скрытое поле не будет рендериться.
{return} строка сгенерированный чекбокс
Исходный код: framework/web/helpers/CHtml.php#1928 (показать)
public static function activeCheckBox($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    if(!isset(
$htmlOptions['value']))
        
$htmlOptions['value']=1;
    if(!isset(
$htmlOptions['checked']) && self::resolveValue($model,$attribute)==$htmlOptions['value'])
        
$htmlOptions['checked']='checked';
    
self::clientChange('click',$htmlOptions);

    if(
array_key_exists('uncheckValue',$htmlOptions))
    {
        
$uncheck=$htmlOptions['uncheckValue'];
        unset(
$htmlOptions['uncheckValue']);
    }
    else
        
$uncheck='0';

    
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
    if(!empty(
$htmlOptions['disabled']))
        
$hiddenOptions['disabled']=$htmlOptions['disabled'];
    
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';

    return 
$hidden . self::activeInputField('checkbox',$model,$attribute,$htmlOptions);
}

Генерирует чекбокс для атрибута модели. Предполагается, что атрибут принимает значения true или false. Если у атрибута есть ошибка ввода, класс CSS поля ввода будет дополнен errorCss.

См. также

  • clientChange
  • activeInputField

activeCheckBoxList() метод

public static string activeCheckBoxList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$data массив пары «значение-метка», используемые для генерации списка флажков. Обратите внимание, что значения будут автоматически закодированы в HTML, в то время как метки — нет.
$htmlOptions массив дополнительные параметры HTML. Параметры будут применяться к каждому полю флажка. Признаются следующие специальные параметры:
  • template: строка, задающая, как отображается каждый флажок. По умолчанию — "{input} {label}", где "{input}" заменяется сгенерированным тегом ввода флажка, а "{label}" — соответствующей меткой флажка.
  • separator: строка, задающая строку-разделитель между сгенерированными флажками.
  • checkAll: строка, задающая метку для флажка «Выбрать все». Если этот параметр указан, отображается флажок «Выбрать все». Щелчок по этому флажку вызовет отметку или снятие отметки со всех флажков.
  • checkAllLast: булево значение, задающее, должен ли флажок «Выбрать все» отображаться в конце списка флажков. Если этот параметр не задан (по умолчанию) или равен false, флажок «Выбрать все» отображается в начале списка.
  • encode: булево значение, задающее, нужно ли кодировать атрибуты и значения тегов HTML. По умолчанию — true.
  • labelOptions: массив, задающий дополнительные атрибуты HTML, которые будут отображаться для каждого тега метки в списке.
  • container: строка, задающая содержащий тег для флажков. По умолчанию — 'span'. Если значение является пустой строкой, содержащий тег не будет сгенерирован.
  • baseID: строка, задающая префикс базового идентификатора, используемого для флажков в списке. Этот параметр доступен начиная с версии 1.1.13.
Начиная с версии 1.1.7, доступен специальный параметр «uncheckValue». Он используется для задания значения, которое будет возвращено, когда флажок не отмечен. По умолчанию это значение — ''. Внутренне отображается скрытое поле, чтобы при отсутствии отметки во флажке мы всё равно могли получить значение. Если «uncheckValue» установлено в NULL, скрытое поле не отображается.
{return} строка сгенерированный список флажков
Исходный код: framework/web/helpers/CHtml.php#2102 (показать)
public static function activeCheckBoxList($model,$attribute,$data,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
$selection=self::resolveValue($model,$attribute);
    if(
$model->hasErrors($attribute))
        
self::addErrorCss($htmlOptions);
    
$name=$htmlOptions['name'];
    unset(
$htmlOptions['name']);

    if(
array_key_exists('uncheckValue',$htmlOptions))
    {
        
$uncheck=$htmlOptions['uncheckValue'];
        unset(
$htmlOptions['uncheckValue']);
    }
    else
        
$uncheck='';

    
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
    if(!empty(
$htmlOptions['disabled']))
        
$hiddenOptions['disabled']=$htmlOptions['disabled'];
    
$hidden=$uncheck!==null ? self::hiddenField($name,$uncheck,$hiddenOptions) : '';

    return 
$hidden . self::checkBoxList($name,$selection,$data,$htmlOptions);
}

Генерирует список флажков для атрибута модели. Значение атрибута модели используется в качестве выбора. Если для атрибута есть ошибка ввода, к CSS-классу поля ввода добавляется errorCss. Обратите внимание, что список флажков позволяет выполнять множественный выбор, как и listBox. В результате соответствующее значение POST является массивом. Если выбор не сделан, соответствующее значение POST — пустая строка.

См. также

  • checkBoxList

activeColorField() метод (доступен начиная с v1.1.16)

public static string activeColorField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (см. clientChange и tag для получения более подробной информации.)
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1756 (показать)
public static function activeColorField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('color',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода выбора цвета для атрибута модели. Если для атрибута есть ошибка ввода, к CSS-классу поля ввода добавляется errorCss.

См. также

  • clientChange
  • activeInputField

activeDateField() метод (доступен начиная с v1.1.11)

public static string activeDateField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (см. clientChange и tag для получения более подробной информации.)
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1656 (показать)
public static function activeDateField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('date',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода даты для атрибута модели. Если для атрибута есть ошибка ввода, к CSS-классу поля ввода добавляется errorCss.

См. также

  • clientChange
  • activeInputField

activeDateTimeField() метод (доступен начиная с v1.1.16)

public static string activeDateTimeField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (см. clientChange и tag для получения более подробной информации.)
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1696 (показать)
public static function activeDateTimeField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('datetime',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода даты и времени для атрибута модели. Если для атрибута есть ошибка ввода, к CSS-классу поля ввода добавляется errorCss.

См. также

  • clientChange
  • activeInputField

activeDateTimeLocalField() метод (доступен начиная с v1.1.16)

public static string activeDateTimeLocalField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (см. clientChange и tag для получения более подробной информации.)
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1716 (показать)
public static function activeDateTimeLocalField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('datetime-local',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода datetime-local для атрибута модели. Если для атрибута есть ошибка ввода, к CSS-классу поля ввода добавляется errorCss.

См. также

  • clientChange
  • activeInputField

activeDropDownList() метод

public static string activeDropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$data массив данные для генерации элементов списка (значение=>отображение) Вы можете использовать listData для генерации этих данных. Обратитесь к listOptions для получения информации о том, как эти данные используются для генерации элементов списка. Обратите внимание, что значения и метки будут автоматически закодированы в HTML этим методом.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов. Подробнее см. clientChange и tag. Кроме того, поддерживаются следующие параметры:
  • encode: булево значение, определяет, следует ли кодировать значения. По умолчанию true.
  • prompt: строка, определяет текст подсказки, отображаемый в качестве первого элемента списка. Его значение пустое. Обратите внимание, что текст подсказки НЕ будет закодирован в HTML.
  • empty: строка, определяет текст, соответствующий пустому выбору. Его значение пустое. Параметр 'empty' также может быть массивом пар "значение-метка". Каждая пара будет использована для рендеринга элемента списка в начале. Обратите внимание, что метка текста НЕ будет закодирована в HTML.
  • options: массив, определяет дополнительные атрибуты для каждого тега OPTION. Ключи массива должны быть значениями опций, а значения массива — дополнительными атрибутами тега OPTION в парах "имя-значение". Например,
        array(
            'value1'=>array('disabled'=>true,'label'=>'value 1'),
            'value2'=>array('label'=>'value 2'),
        );
    
Начиная с версии 1.1.13, доступен специальный параметр 'unselectValue'. Он может быть использован для установки значения, которое будет возвращено, когда ни один элемент не выбран в режиме множественного выбора. При установке отображается скрытое поле, так что, если ни один элемент не выбран в режиме множественного выбора, мы всё равно можем получить отправленное значение unselect. Если 'unselectValue' не задан или установлен в NULL, скрытое поле не будет отображено.
{return} строка сгенерированный выпадающий список
Исходный код: framework/web/helpers/CHtml.php#1991 (показать)
public static function activeDropDownList($model,$attribute,$data,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
$selection=self::resolveValue($model,$attribute);
    
$options="\n".self::listOptions($selection,$data,$htmlOptions);
    
self::clientChange('change',$htmlOptions);

    if(
$model->hasErrors($attribute))
        
self::addErrorCss($htmlOptions);

    
$hidden='';
    if(!empty(
$htmlOptions['multiple']))
    {
        if(
substr($htmlOptions['name'],-2)!=='[]')
            
$htmlOptions['name'].='[]';

        if(isset(
$htmlOptions['unselectValue']))
        {
            
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
            if(!empty(
$htmlOptions['disabled']))
                
$hiddenOptions['disabled']=$htmlOptions['disabled'];
            
$hidden=self::hiddenField(substr($htmlOptions['name'],0,-2),$htmlOptions['unselectValue'],$hiddenOptions);
            unset(
$htmlOptions['unselectValue']);
        }
    }
    return 
$hidden . self::tag('select',$htmlOptions,$options);
}

Генерирует выпадающий список для атрибута модели. Если атрибут содержит ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • listData

activeEmailField() метод (доступен с версии 1.1.11)

public static string activeEmailField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1596 (показать)
public static function activeEmailField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('email',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода электронной почты для атрибута модели. Если атрибут содержит ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeFileField() метод

public static string activeFileField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML (см. tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1855 (показать)
public static function activeFileField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
// add a hidden field so that if a model only has a file field, we can
    // still use isset($_POST[$modelClass]) to detect if the input is submitted
    
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
    if(!empty(
$htmlOptions['disabled']))
        
$hiddenOptions['disabled']=$htmlOptions['disabled'];
    return 
self::hiddenField($htmlOptions['name'],'',$hiddenOptions)
        . 
self::activeInputField('file',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода файла для атрибута модели. Обратите внимание, что вам необходимо установить атрибут 'enctype' окружающего поля формы на 'multipart/form-data'. После отправки формы информацию об загруженном файле можно получить через $_FILES (см. документацию PHP).

См. также

  • activeInputField

activeHiddenField() метод

public static string activeHiddenField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML.
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1792 (показать)
public static function activeHiddenField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    return 
self::activeInputField('hidden',$model,$attribute,$htmlOptions);
}

Генерирует скрытое поле ввода для атрибута модели.

См. также

  • activeInputField

activeId() метод

public static string activeId(CModel $model, string $attribute)
$model CModel модель данных
$attribute строка атрибут
{return} строка идентификатор сгенерированного поля ввода
Исходный код: framework/web/helpers/CHtml.php#2380 (показать)
public static function activeId($model,$attribute)
{
    return 
self::getIdByName(self::activeName($model,$attribute));
}

Генерирует идентификатор поля ввода для атрибута модели.

activeInputField() метод

protected static string activeInputField(string $type, CModel $model, string $attribute, array $htmlOptions)
$type строка тип ввода (например, 'text', 'radio')
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML для тега HTML
{return} строка сгенерированный тег ввода
Исходный код: framework/web/helpers/CHtml.php#2445 (показать)
protected static function activeInputField($type,$model,$attribute,$htmlOptions)
{
    
$htmlOptions['type']=$type;
    if(
$type==='text'||$type==='password'||$type==='color'||$type==='date'||$type==='datetime'||
        
$type==='datetime-local'||$type==='email'||$type==='month'||$type==='number'||$type==='range'||
        
$type==='search'||$type==='tel'||$type==='time'||$type==='url'||$type==='week')
    {
        if(!isset(
$htmlOptions['maxlength']))
        {
            foreach(
$model->getValidators($attribute) as $validator)
            {
                if(
$validator instanceof CStringValidator && $validator->max!==null)
                {
                    
$htmlOptions['maxlength']=$validator->max;
                    break;
                }
            }
        }
        elseif(
$htmlOptions['maxlength']===false)
            unset(
$htmlOptions['maxlength']);
    }

    if(
$type==='file')
        unset(
$htmlOptions['value']);
    elseif(!isset(
$htmlOptions['value']))
        
$htmlOptions['value']=self::resolveValue($model,$attribute);
    if(
$model->hasErrors($attribute))
        
self::addErrorCss($htmlOptions);
    return 
self::tag('input',$htmlOptions);
}

Генерирует тег HTML ввода для атрибута модели. Этот метод генерирует тег HTML ввода на основе предоставленной модели данных и атрибута. Если атрибут содержит ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss. Это позволяет выделить неправильный ввод.

activeLabel() метод

public static string activeLabel(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Признаются следующие специальные параметры:
  • required: если это установлено и является true, метка будет стилизована с помощью CSS-класса 'required' (настраиваемо с CHtml::$requiredCss), и будет оформлена с помощью CHtml::beforeRequiredLabel и CHtml::afterRequiredLabel.
  • label: это определяет метку, которая будет отображаться. Если она не установлена, будет вызван CModel::getAttributeLabel для получения метки для отображения. Если метка задана как false, метка не будет отображена.
{return} строка сгенерированный тег метки
Исходный код: framework/web/helpers/CHtml.php#1478 (показать)
public static function activeLabel($model,$attribute,$htmlOptions=array())
{
    
$inputName=self::resolveName($model,$attribute);
    if(isset(
$htmlOptions['for']))
    {
        
$for=$htmlOptions['for'];
        unset(
$htmlOptions['for']);
    }
    else
        
$for=self::getIdByName($inputName);
    if(isset(
$htmlOptions['label']))
    {
        if((
$label=$htmlOptions['label'])===false)
            return 
'';
        unset(
$htmlOptions['label']);
    }
    else
        
$label=$model->getAttributeLabel($attribute);
    if(
$model->hasErrors($attribute))
        
self::addErrorCss($htmlOptions);
    return 
self::label($label,$for,$htmlOptions);
}

Генерирует тег метки для атрибута модели. Текст метки — это метка атрибута, и метка связана с полем ввода для атрибута (см. CModel::getAttributeLabel). Если атрибут содержит ошибку ввода, к CSS-классу метки будет добавлен errorCss.

activeLabelEx() метод

public static string activeLabelEx(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML.
{return} строка сгенеченный тег метки
Исходный код: framework/web/helpers/CHtml.php#1515 (показать)
public static function activeLabelEx($model,$attribute,$htmlOptions=array())
{
    
$realAttribute=$attribute;
    
self::resolveName($model,$attribute); // strip off square brackets if any
    
if (!isset($htmlOptions['required']))
        
$htmlOptions['required']=$model->isAttributeRequired($attribute);
    return 
self::activeLabel($model,$realAttribute,$htmlOptions);
}

Генерирует тег метки для атрибута модели. Это улучшенная версия activeLabel. Он будет рендерить дополнительный CSS-класс и отмечать, когда атрибут обязателен. В частности, он вызывает CModel::isAttributeRequired, чтобы определить, является ли атрибут обязательным. Если это так, он добавит CSS-класс CHtml::requiredCss к метке и украсит метку с помощью CHtml::beforeRequiredLabel и CHtml::afterRequiredLabel.

activeListBox() метод

public static string activeListBox(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$data массив данные для генерации опций списка (значение=>отображение) Вы можете использовать listData для генерации этих данных. Обратитесь к listOptions для получения информации о том, как эти данные используются для генерации опций списка. Обратите внимание, что значения и метки будут автоматически закодированы в HTML этим методом.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов. См. clientChange и tag для получения более подробной информации. Кроме того, поддерживаются следующие опции:
  • encode: boolean, указывает, нужно ли кодировать значения. По умолчанию true.
  • prompt: string, указывает текст подсказки, отображаемый в качестве первой опции списка. Его значение пустое. Обратите внимание, что текст подсказки НЕ будет закодирован в HTML.
  • empty: string, указывает текст, соответствующий пустому выбору. Его значение пустое. Опция 'empty' также может быть массивом пар значение-метка. Каждая пара будет использована для рендеринга опции списка в начале. Обратите внимание, что метка текста НЕ будет закодирована в HTML.
  • options: array, указывает дополнительные атрибуты для каждого тега OPTION. Ключи массива должны быть значениями опции, а значения массива — дополнительными атрибутами тега OPTION в парах имя-значение. Например,
        array(
            'value1'=>array('disabled'=>true,'label'=>'value 1'),
            'value2'=>array('label'=>'value 2'),
        );
    
{return} строка сгенерированный список
Исходный код: framework/web/helpers/CHtml.php#2054 (показать)
public static function activeListBox($model,$attribute,$data,$htmlOptions=array())
{
    if(!isset(
$htmlOptions['size']))
        
$htmlOptions['size']=4;
    return 
self::activeDropDownList($model,$attribute,$data,$htmlOptions);
}

Генерирует список для атрибута модели. Значение атрибута модели используется в качестве выбора. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • listData

activeName() метод

public static string activeName(CModel $model, string $attribute)
$model CModel модель данных
$attribute строка атрибут
{return} строка сгенерированное имя поля ввода
Исходный код: framework/web/helpers/CHtml.php#2427 (показать)
public static function activeName($model,$attribute)
{
    
$a=$attribute; // because the attribute name may be changed by resolveName
    
return self::resolveName($model,$a);
}

Генерирует имя поля ввода для атрибута модели. В отличие от resolveName, этот метод НЕ изменяет имя атрибута.

activeNumberField() метод (доступен с версии 1.1.11)

public static string activeNumberField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации.)
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1616 (показать)
public static function activeNumberField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('number',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода числа для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activePasswordField() метод

public static string activePasswordField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации.)
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1810 (показать)
public static function activePasswordField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('password',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода пароля для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeRadioButton() метод

public static string activeRadioButton(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации.) Доступна специальная опция 'uncheckValue', которая может использоваться для указания значения, возвращаемого, когда радиокнопка не выбрана. По умолчанию это значение '0'. Внутренне рендерится скрытое поле, так что при отсутствии выбора радиокнопки мы все равно можем получить отправленное значение uncheck. Если 'uncheckValue' задан как NULL, скрытое поле не будет рендериться.
{return} строка сгенерированная радиокнопка
Исходный код: framework/web/helpers/CHtml.php#1884 (показать)
public static function activeRadioButton($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    if(!isset(
$htmlOptions['value']))
        
$htmlOptions['value']=1;
    if(!isset(
$htmlOptions['checked']) && self::resolveValue($model,$attribute)==$htmlOptions['value'])
        
$htmlOptions['checked']='checked';
    
self::clientChange('click',$htmlOptions);

    if(
array_key_exists('uncheckValue',$htmlOptions))
    {
        
$uncheck=$htmlOptions['uncheckValue'];
        unset(
$htmlOptions['uncheckValue']);
    }
    else
        
$uncheck='0';

    
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
    if(!empty(
$htmlOptions['disabled']))
        
$hiddenOptions['disabled']=$htmlOptions['disabled'];
    
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';

    
// add a hidden field so that if the radio button is not selected, it still submits a value
    
return $hidden . self::activeInputField('radio',$model,$attribute,$htmlOptions);
}

Генерирует радиокнопку для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeRadioButtonList() метод

public static string activeRadioButtonList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$data массив пары значение-метка, используемые для создания списка радиокнопок. Обратите внимание, что значения будут автоматически закодированы в HTML, а метки — нет.
$htmlOptions массив дополнительные параметры HTML. Параметры будут применены к каждой радиокнопке. Распознаются следующие специальные параметры:
  • template: строка, определяет, как отображается каждая радиокнопка. По умолчанию "{input} {label}", где "{input}" заменяется сгенерированным тегом ввода радиокнопки, а "{label}" — соответствующей меткой радиокнопки, {beginLabel} заменяется на <label> с labelOptions, {labelTitle} заменяется на заголовок соответствующей метки радиокнопки, а {endLabel} на </label>
  • separator: строка, определяет строку, разделяющую сгенерированные радиокнопки. По умолчанию новая строка (
    ).
  • encode: boolean, определяет, нужно ли кодировать атрибуты тегов и значения в HTML. По умолчанию true.
  • labelOptions: массив, определяет дополнительные атрибуты HTML, которые должны быть отображены для каждого тега метки в списке.
  • container: строка, определяет закрывающий тег для радиокнопок. По умолчанию 'span'. Если значение пустая строка, закрывающий тег не будет сгенерирован.
  • baseID: строка, определяет префикс базового ID, который будет использоваться для радиокнопок в списке. Этот параметр доступен начиная с версии 1.1.13.
  • empty: строка, определяет текст, соответствующий пустому выбору. Его значение пустое. Параметр 'empty' также может быть массивом пар значение-метка. Каждая пара будет использоваться для отображения радиокнопки в начале. Обратите внимание, что текст метки НЕ будет кодирован в HTML. Этот параметр доступен начиная с версии 1.1.14.
Начиная с версии 1.1.7, доступен специальный параметр 'uncheckValue', который можно использовать для указания значения, возвращаемого, когда радиокнопка не выбрана. По умолчанию это значение ''. Внутренне рендерится скрытое поле, чтобы при отсутствии выбора радиокнопки мы все равно могли получить отправленное значение uncheck. Если 'uncheckValue' задан как NULL, скрытое поле не будет отображено.
{return} строка сгенерированный список радиокнопок
Исходный код: framework/web/helpers/CHtml.php#2164 (показать)
public static function activeRadioButtonList($model,$attribute,$data,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
$selection=self::resolveValue($model,$attribute);
    if(
$model->hasErrors($attribute))
        
self::addErrorCss($htmlOptions);
    
$name=$htmlOptions['name'];
    unset(
$htmlOptions['name']);

    if(
array_key_exists('uncheckValue',$htmlOptions))
    {
        
$uncheck=$htmlOptions['uncheckValue'];
        unset(
$htmlOptions['uncheckValue']);
    }
    else
        
$uncheck='';

    
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
    if(!empty(
$htmlOptions['disabled']))
        
$hiddenOptions['disabled']=$htmlOptions['disabled'];
    
$hidden=$uncheck!==null ? self::hiddenField($name,$uncheck,$hiddenOptions) : '';

    return 
$hidden . self::radioButtonList($name,$selection,$data,$htmlOptions);
}

Генерирует список радиокнопок для атрибута модели. Значение атрибута модели используется в качестве выбора. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • radioButtonList

activeRangeField() метод (доступен с версии 1.1.11)

public static string activeRangeField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1636 (показать)
public static function activeRangeField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('range',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода диапазона для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeSearchField() метод (доступен с версии 1.1.14)

public static string activeSearchField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1556 (показать)
public static function activeSearchField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('search',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода поиска для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeTelField() метод (доступен с версии 1.1.14)

public static string activeTelField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1776 (показать)
public static function activeTelField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('tel',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода телефона для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeTextArea() метод

public static string activeTextArea(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (подробнее см. clientChange и tag).
{return} строка сгенерированная текстовая область
Исходный код: framework/web/helpers/CHtml.php#1828 (показать)
public static function activeTextArea($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    if(
$model->hasErrors($attribute))
        
self::addErrorCss($htmlOptions);
    if(isset(
$htmlOptions['value']))
    {
        
$text=$htmlOptions['value'];
        unset(
$htmlOptions['value']);
    }
    else
        
$text=self::resolveValue($model,$attribute);
    return 
self::tag('textarea',$htmlOptions,isset($htmlOptions['encode']) && !$htmlOptions['encode'] ? $text : self::encode($text));
}

Генерирует текстовую область ввода для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange

activeTextField() метод

public static string activeTextField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1536 (показать)
public static function activeTextField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('text',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода текста для атрибута модели. Если атрибут имеет ошибку ввода, к CSS-классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeTimeField() метод (доступен с версии 1.1.14)

public static string activeTimeField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1676 (показать)
public static function activeTimeField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('time',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода времени для атрибута модели. Если у атрибута есть ошибка ввода, к CSS классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeUrlField() метод (доступен начиная с v1.1.11)

public static string activeUrlField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1576 (показать)
public static function activeUrlField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('url',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода URL для атрибута модели. Если у атрибута есть ошибка ввода, к CSS классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

activeWeekField() метод (доступен начиная с v1.1.16)

public static string activeWeekField(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#1736 (показать)
public static function activeWeekField($model,$attribute,$htmlOptions=array())
{
    
self::resolveNameID($model,$attribute,$htmlOptions);
    
self::clientChange('change',$htmlOptions);
    return 
self::activeInputField('week',$model,$attribute,$htmlOptions);
}

Генерирует поле ввода недели для атрибута модели. Если у атрибута есть ошибка ввода, к CSS классу поля ввода будет добавлен errorCss.

См. также

  • clientChange
  • activeInputField

addErrorCss() метод

protected static void addErrorCss(array &$htmlOptions)
$htmlOptions массив HTML параметры для изменения
Исходный код: framework/web/helpers/CHtml.php#2754 (показать)
protected static function addErrorCss(&$htmlOptions)
{
    if(empty(
self::$errorCss))
        return;

    if(isset(
$htmlOptions['class']))
        
$htmlOptions['class'].=' '.self::$errorCss;
    else
        
$htmlOptions['class']=self::$errorCss;
}

Добавляет errorCss к атрибуту 'class'.

ajax() метод

public static string ajax(array $options)
$options массив AJAX параметры. Действительные параметры используются в форме jQuery.ajax([settings]), как указано в документации jQuery AJAX. Для удобства добавлены следующие специальные параметры:
  • update: строка, указывает селектор, HTML-контент которого должен быть заменён результатом AJAX запроса.
  • replace: строка, указывает селектор, целевой элемент которого должен быть заменён результатом AJAX запроса.
Обратите внимание, если вы указали параметр 'success', вышеуказанные параметры будут проигнорированы.
{return} строка сгенерированный JavaScript
Исходный код: framework/web/helpers/CHtml.php#1358 (показать)
public static function ajax($options)
{
    
Yii::app()->getClientScript()->registerCoreScript('jquery');
    if(!isset(
$options['url']))
        
$options['url']=new CJavaScriptExpression('location.href');
    else
        
$options['url']=self::normalizeUrl($options['url']);
    if(!isset(
$options['cache']))
        
$options['cache']=false;
    if(!isset(
$options['data']) && isset($options['type']))
        
$options['data']=new CJavaScriptExpression('jQuery(this).parents("form").serialize()');
    foreach(array(
'beforeSend','complete','error','success') as $name)
    {
        if(isset(
$options[$name]) && !($options[$name] instanceof CJavaScriptExpression))
            
$options[$name]=new CJavaScriptExpression($options[$name]);
    }
    if(isset(
$options['update']))
    {
        if(!isset(
$options['success']))
            
$options['success']=new CJavaScriptExpression('function(html){jQuery("'.$options['update'].'").html(html)}');
        unset(
$options['update']);
    }
    if(isset(
$options['replace']))
    {
        if(!isset(
$options['success']))
            
$options['success']=new CJavaScriptExpression('function(html){jQuery("'.$options['replace'].'").replaceWith(html)}');
        unset(
$options['replace']);
    }
    return 
'jQuery.ajax('.CJavaScript::encode($options).');';
}

Генерирует JavaScript, который инициирует AJAX запрос.

См. также

  • http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings

ajaxButton() метод

public static string ajaxButton(string $label, mixed $url, array $ajaxOptions=array ( ), array $htmlOptions=array ( ))
$label строка подпись кнопки
$url смешанный тип URL для AJAX запроса. Если пусто, используется текущий URL. Подробнее см. normalizeUrl.
$ajaxOptions массив AJAX параметры (см. ajax)
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированная кнопка
Исходный код: framework/web/helpers/CHtml.php#1320 (показать)
public static function ajaxButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
{
    
$ajaxOptions['url']=$url;
    
$htmlOptions['ajax']=$ajaxOptions;
    return 
self::button($label,$htmlOptions);
}

Генерирует кнопку, которая может инициировать AJAX запросы.

ajaxLink() метод

public static string ajaxLink(string $text, mixed $url, array $ajaxOptions=array ( ), array $htmlOptions=array ( ))
$text строка тело ссылки (не будет кодироваться HTML).
$url смешанный тип URL для AJAX запроса. Если пусто, используется текущий URL. Подробнее см. normalizeUrl.
$ajaxOptions массив AJAX параметры (см. ajax)
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированная ссылка
Исходный код: framework/web/helpers/CHtml.php#1301 (показать)
public static function ajaxLink($text,$url,$ajaxOptions=array(),$htmlOptions=array())
{
    if(!isset(
$htmlOptions['href']))
        
$htmlOptions['href']='#';
    
$ajaxOptions['url']=$url;
    
$htmlOptions['ajax']=$ajaxOptions;
    
self::clientChange('click',$htmlOptions);
    return 
self::tag('a',$htmlOptions,$text);
}

Генерирует ссылку, которая может инициировать AJAX запросы.

См. также

  • normalizeUrl
  • ajax

ajaxSubmitButton() метод

public static string ajaxSubmitButton(string $label, mixed $url, array $ajaxOptions=array ( ), array $htmlOptions=array ( ))
$label строка подпись кнопки
$url смешанный тип URL для AJAX запроса. Если пусто, используется текущий URL. Подробнее см. normalizeUrl.
$ajaxOptions массив AJAX параметры (см. ajax)
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированная кнопка
Исходный код: framework/web/helpers/CHtml.php#1336 (показать)
public static function ajaxSubmitButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
{
    
$ajaxOptions['type']='POST';
    
$htmlOptions['type']='submit';
    return 
self::ajaxButton($label,$url,$ajaxOptions,$htmlOptions);
}

Генерирует кнопку, которая может отправлять текущую форму методом POST.

asset() метод

public static string asset(string $path, boolean $hashByName=false)
$path string путь к публикуемому ресурсу
$hashByName boolean указывает, следует ли называть опубликованный каталог хешированным базовым именем. Если ложно, имя будет хешированным подкаталогом пути, который публикуется. По умолчанию ложно. Установите в значение истина, если путь, который публикуется, используется в разных расширениях.
{return} string URL ресурса
Исходный код: framework/web/helpers/CHtml.php#1398 (показать)
public static function asset($path,$hashByName=false)
{
    return 
Yii::app()->getAssetManager()->publish($path,$hashByName);
}

Генерирует URL для опубликованных ресурсов.

beginForm() метод

public static string beginForm(mixed $action='', string $method='post', array $htmlOptions=array ( ))
$action смешанный тип URL действия формы (см. normalizeUrl для получения подробностей об этом параметре).
$method строка метод формы (например, post, get)
$htmlOptions массив дополнительные атрибуты HTML (см. tag).
{return} строка сгенерированный тег формы.
Исходный код: framework/web/helpers/CHtml.php#340 (показать)
public static function beginForm($action='',$method='post',$htmlOptions=array())
{
    
$htmlOptions['action']=$url=self::normalizeUrl($action);
    if(
strcasecmp($method,'get')!==0 && strcasecmp($method,'post')!==0)
    {
        
$customMethod=$method;
        
$method='post';
    }
    else
        
$customMethod=false;

    
$htmlOptions['method']=$method;
    
$form=self::tag('form',$htmlOptions,false,false);
    
$hiddens=array();
    if(!
strcasecmp($method,'get') && ($pos=strpos($url,'?'))!==false)
    {
        foreach(
explode('&',substr(preg_replace('/#.+$/','',$url),$pos+1)) as $pair)
        {
            if((
$pos=strpos($pair,'='))!==false)
                
$hiddens[]=self::hiddenField(urldecode(substr($pair,0,$pos)),urldecode(substr($pair,$pos+1)),array('id'=>false));
            else
                
$hiddens[]=self::hiddenField(urldecode($pair),'',array('id'=>false));
        }
    }
    
$request=Yii::app()->request;
    if(
$request->enableCsrfValidation && !strcasecmp($method,'post'))
        
$hiddens[]=self::hiddenField($request->csrfTokenName,$request->getCsrfToken(),array('id'=>false));
    if(
$customMethod!==false)
        
$hiddens[]=self::hiddenField('_method',$customMethod);
    if(
$hiddens!==array())
        
$form.="\n".implode("\n",$hiddens);
    return 
$form;
}

Генерирует открывающий тег формы. Обратите внимание, что генерируется только открывающий тег. Закрывающий тег необходимо разместить вручную в конце формы.

См. также

  • endForm

button() метод

public static string button(string $label='button', array $htmlOptions=array ( ))
$label строка метка кнопки
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (см. clientChange и tag для получения дополнительных сведений).
{return} строка сгенерированный тег кнопки
Исходный код: framework/web/helpers/CHtml.php#468 (показать)
public static function button($label='button',$htmlOptions=array())
{
    if(!isset(
$htmlOptions['name']))
    {
        if(!
array_key_exists('name',$htmlOptions))
            
$htmlOptions['name']=self::ID_PREFIX.self::$count++;
    }
    if(!isset(
$htmlOptions['type']))
        
$htmlOptions['type']='button';
    if(!isset(
$htmlOptions['value']) && $htmlOptions['type']!='image')
        
$htmlOptions['value']=$label;
    
self::clientChange('click',$htmlOptions);
    return 
self::tag('input',$htmlOptions);
}

Генерирует кнопку.

См. также

  • clientChange

cdata() метод

public static string cdata(string $text)
$text строка строка, которая будет обрамляться тегом
{return} строка тег CDATA с заключённым содержимым.
Исходный код: framework/web/helpers/CHtml.php#199 (показать)
public static function cdata($text)
{
    return 
'<![CDATA[' . $text . ']]>';
}

Обрамляет заданную строку тегом CDATA.

checkBox() метод

public static string checkBox(string $name, boolean $checked=false, array $htmlOptions=array ( ))
$name строка имя ввода
$checked boolean установлено ли значение по умолчанию
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (см. clientChange и tag для получения дополнительных сведений). Начиная с версии 1.1.2, доступен специальный параметр 'uncheckValue', который можно использовать для указания значения, возвращаемого, когда флажок не установлен. Если задано и не равно NULL, отображается скрытое поле, чтобы при отсутствии флага получить отправленное значение uncheckValue. Если 'uncheckValue' не задан или установлен в NULL, скрытое поле не отображается.
{return} строка сгенерированный флажок
Исходный код: framework/web/helpers/CHtml.php#946 (показать)
public static function checkBox($name,$checked=false,$htmlOptions=array())
{
    if(
$checked)
        
$htmlOptions['checked']='checked';
    else
        unset(
$htmlOptions['checked']);
    
$value=isset($htmlOptions['value']) ? $htmlOptions['value'] : 1;
    
self::clientChange('click',$htmlOptions);

    if(
array_key_exists('uncheckValue',$htmlOptions))
    {
        
$uncheck=$htmlOptions['uncheckValue'];
        unset(
$htmlOptions['uncheckValue']);
    }
    else
        
$uncheck=null;

    if(
$uncheck!==null)
    {
        
// add a hidden field so that if the check box is not checked, it still submits a value
        
if(isset($htmlOptions['id']) && $htmlOptions['id']!==false)
            
$uncheckOptions=array('id'=>self::ID_PREFIX.$htmlOptions['id']);
        else
            
$uncheckOptions=array('id'=>false);
        if(!empty(
$htmlOptions['disabled']))
            
$uncheckOptions['disabled']=$htmlOptions['disabled'];
        
$hidden=self::hiddenField($name,$uncheck,$uncheckOptions);
    }
    else
        
$hidden='';

    
// add a hidden field so that if the check box is not checked, it still submits a value
    
return $hidden . self::inputField('checkbox',$name,$value,$htmlOptions);
}

Генерирует флажок.

См. также

  • clientChange
  • inputField

checkBoxList() метод

public static string checkBoxList(string $name, mixed $select, array $data, array $htmlOptions=array ( ))
$name строка имя списка флагов. Вы можете использовать это имя для получения выбранного значения(й) после отправки формы.
$select смешанный тип выбор флагов. Это может быть строка для одиночного выбора или массив для множественного выбора.
$data массив пары значение-метка, используемые для генерации списка флагов. Обратите внимание, что значения будут автоматически закодированы в HTML, а метки — нет.
$htmlOptions массив дополнительные параметры HTML. Параметры будут применены к каждому флажку. Распознаются следующие специальные параметры:
  • шаблон: строка, определяет, как отображается каждый флажок. По умолчанию "{input} {label}", где "{input}" заменяется сгенерированным тегом ввода флага, а "{label}" заменяется соответствующей меткой флага, {beginLabel} будет заменён на <label> с labelOptions, {labelTitle} будет заменён на соответствующую метку флага и {endLabel} будет заменён на </label>
  • разделитель: строка, определяет строку, которая разделяет сгенерированные флажки.
  • checkAll: строка, определяет метку для флажка «выбрать все». Если этот параметр указан, отображается флажок «выбрать все». Нажатие на этот флажок вызовет установку или снятие галочки со всех флагов.
  • checkAllLast: boolean, указывает, должен ли флажок «выбрать все» отображаться в конце списка флагов. Если этот параметр не задан (по умолчанию) или равен ложно, флажок «выбрать все» будет отображаться в начале списка флагов.
  • labelOptions: массив, определяет дополнительные атрибуты HTML, которые будут отображаться для каждого тега label в списке.
  • контейнер: строка, определяет контейнерный тег для флагов. По умолчанию 'span'. Если значение является пустой строкой, контейнерный тег не будет сгенерирован.
  • baseID: строка, определяет префикс базового ID, который будет использоваться для флагов в списке. Этот параметр доступен с версии 1.1.13.
{return} строка сгенерированный список флагов
Исходный код: framework/web/helpers/CHtml.php#1129 (показать)
public static function checkBoxList($name,$select,$data,$htmlOptions=array())
{
    
$template=isset($htmlOptions['template'])?$htmlOptions['template']:'{input} {label}';
    
$separator=isset($htmlOptions['separator'])?$htmlOptions['separator']:self::tag('br');
    
$container=isset($htmlOptions['container'])?$htmlOptions['container']:'span';
    unset(
$htmlOptions['template'],$htmlOptions['separator'],$htmlOptions['container']);

    if(
substr($name,-2)!=='[]')
        
$name.='[]';

    if(isset(
$htmlOptions['checkAll']))
    {
        
$checkAllLabel=$htmlOptions['checkAll'];
        
$checkAllLast=isset($htmlOptions['checkAllLast']) && $htmlOptions['checkAllLast'];
    }
    unset(
$htmlOptions['checkAll'],$htmlOptions['checkAllLast']);

    
$labelOptions=isset($htmlOptions['labelOptions'])?$htmlOptions['labelOptions']:array();
    unset(
$htmlOptions['labelOptions']);

    
$items=array();
    
$baseID=isset($htmlOptions['baseID']) ? $htmlOptions['baseID'] : self::getIdByName($name);
    unset(
$htmlOptions['baseID']);
    
$id=0;
    
$checkAll=true;

    foreach(
$data as $value=>$labelTitle)
    {
        
$checked=!is_array($select) && !strcmp($value,$select) || is_array($select) && in_array($value,$select);
        
$checkAll=$checkAll && $checked;
        
$htmlOptions['value']=$value;
        
$htmlOptions['id']=$baseID.'_'.$id++;
        
$option=self::checkBox($name,$checked,$htmlOptions);
        
$beginLabel=self::openTag('label',$labelOptions);
        
$label=self::label($labelTitle,$htmlOptions['id'],$labelOptions);
        
$endLabel=self::closeTag('label');
        
$items[]=strtr($template,array(
            
'{input}'=>$option,
            
'{beginLabel}'=>$beginLabel,
            
'{label}'=>$label,
            
'{labelTitle}'=>$labelTitle,
            
'{endLabel}'=>$endLabel,
        ));
    }

    if(isset(
$checkAllLabel))
    {
        
$htmlOptions['value']=1;
        
$htmlOptions['id']=$id=$baseID.'_all';
        
$option=self::checkBox($id,$checkAll,$htmlOptions);
        
$beginLabel=self::openTag('label',$labelOptions);
        
$label=self::label($checkAllLabel,$id,$labelOptions);
        
$endLabel=self::closeTag('label');
        
$item=strtr($template,array(
            
'{input}'=>$option,
            
'{beginLabel}'=>$beginLabel,
            
'{label}'=>$label,
            
'{labelTitle}'=>$checkAllLabel,
            
'{endLabel}'=>$endLabel,
        ));
        if(
$checkAllLast)
            
$items[]=$item;
        else
            
array_unshift($items,$item);
        
$name=strtr($name,array('['=>'\\[',']'=>'\\]'));
        
$js=<<<EOD
jQuery('#$id').click(function() {
jQuery("input[name='
$name']").prop('checked', this.checked);
});
jQuery("input[name='
$name']").click(function() {
jQuery('#
$id').prop('checked', !jQuery("input[name='$name']:not(:checked)").length);
});
jQuery('#
$id').prop('checked', !jQuery("input[name='$name']:not(:checked)").length);
EOD;
        
$cs=Yii::app()->getClientScript();
        
$cs->registerCoreScript('jquery');
        
$cs->registerScript($id,$js);
    }

    if(empty(
$container))
        return 
implode($separator,$items);
    else
        return 
self::tag($container,array('id'=>$baseID),implode($separator,$items));
}

Генерирует список флагов. Список флагов позволяет выполнять множественный выбор, как listBox. В результате соответствующее значение POST является массивом.

clientChange() метод

protected static void clientChange(string $event, array &$htmlOptions)
$event строка имя события (без 'on')
$htmlOptions массив атрибуты HTML, которые могут содержать следующие специальные атрибуты, определяющие поведение при изменении клиента:
  • submit: строка, указывает URL для отправки. Если текущий элемент имеет родительскую форму, эта форма будет отправлена, а если 'submit' не пустой, его значение заменит URL формы. Если родительской формы нет, данные, указанные в 'params', будут отправлены (через метод POST) на URL в 'submit' или текущий URL запроса, если 'submit' пустой. Обратите внимание, что если параметр 'csrf' равен истине, маркер CSRF также будет включен в 'params'.
  • params: массив, пары имя-значение, которые должны быть отправлены вместе с формой. Используется только при указании параметра 'submit'.
  • csrf: boolean, указывает, следует ли автоматически включать маркер CSRF в 'params', когда CHttpRequest::enableCsrfValidation равен истине. По умолчанию ложно. Вы можете установить его в значение истина, если нет содержащей элемент формы. Этот параметр значим только при указании параметра 'submit'.
  • return: boolean, возвращаемое значение javascript. По умолчанию ложно, что означает, что выполнение javascript не вызовет стандартного поведения события.
  • confirm: строка, определяет сообщение, которое должно отображаться в всплывающем диалоговом окне подтверждения.
  • ajax: массив, определяет параметры AJAX (см. ajax).
  • live: boolean, указывает, должно ли обрабатываться событие путем делегирования или непосредственного связывания. Если не задано, используется liveEvents. Этот параметр доступен с версии 1.1.11.
Этот параметр доступен с версии 1.1.1.
Исходный код: framework/web/helpers/CHtml.php#2594 (показать)
protected static function clientChange($event,&$htmlOptions)
{
    if(!isset(
$htmlOptions['submit']) && !isset($htmlOptions['confirm']) && !isset($htmlOptions['ajax']))
        return;

    if(isset(
$htmlOptions['live']))
    {
        
$live=$htmlOptions['live'];
        unset(
$htmlOptions['live']);
    }
    else
        
$live = self::$liveEvents;

    if(isset(
$htmlOptions['return']) && $htmlOptions['return'])
        
$return='return true';
    else
        
$return='return false';

    if(isset(
$htmlOptions['on'.$event]))
    {
        
$handler=trim($htmlOptions['on'.$event],';').';';
        unset(
$htmlOptions['on'.$event]);
    }
    else
        
$handler='';

    if(isset(
$htmlOptions['id']))
        
$id=$htmlOptions['id'];
    else
        
$id=$htmlOptions['id']=isset($htmlOptions['name'])?$htmlOptions['name']:self::ID_PREFIX.self::$count++;

    
$cs=Yii::app()->getClientScript();
    
$cs->registerCoreScript('jquery');

    if(isset(
$htmlOptions['submit']))
    {
        
$cs->registerCoreScript('yii');
        
$request=Yii::app()->getRequest();
        if(
$request->enableCsrfValidation && isset($htmlOptions['csrf']) && $htmlOptions['csrf'])
            
$htmlOptions['params'][$request->csrfTokenName]=$request->getCsrfToken();
        if(isset(
$htmlOptions['params']))
            
$params=CJavaScript::encode($htmlOptions['params']);
        else
            
$params='{}';
        if(
$htmlOptions['submit']!=='')
            
$url=CJavaScript::quote(self::normalizeUrl($htmlOptions['submit']));
        else
            
$url='';
        
$handler.="jQuery.yii.submitForm(this,'$url',$params);{$return};";
    }

    if(isset(
$htmlOptions['ajax']))
        
$handler.=self::ajax($htmlOptions['ajax'])."{$return};";

    if(isset(
$htmlOptions['confirm']))
    {
        
$confirm='confirm(\''.CJavaScript::quote($htmlOptions['confirm']).'\')';
        if(
$handler!=='')
            
$handler="if($confirm) {".$handler."} else return false;";
        else
            
$handler="return $confirm;";
    }

    if(
$live)
        
$cs->registerScript('Yii.CHtml.#' . $id,"jQuery('body').on('$event','#$id',function(){{$handler}});");
    else
        
$cs->registerScript('Yii.CHtml.#' . $id,"jQuery('#$id').on('$event', function(){{$handler}});");
    unset(
$htmlOptions['params'],$htmlOptions['submit'],$htmlOptions['ajax'],$htmlOptions['confirm'],$htmlOptions['return'],$htmlOptions['csrf']);
}

Генерирует JavaScript с указанными изменениями клиента.

closeTag() метод

public static string closeTag(string $tag)
$tag строка имя тега
{return} строка сгенерированное HTML-тег элемента
Исходный код: framework/web/helpers/CHtml.php#189 (показать)
public static function closeTag($tag)
{
    return 
'</'.$tag.'>';
}

Генерирует закрывающий HTML-элемент.

colorField() метод (доступен начиная с v1.1.16)

public static string colorField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#609 (показать)
public static function colorField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('color',$name,$value,$htmlOptions);
}

Генерирует поле ввода для выбора цвета.

См. также

  • clientChange
  • inputField

css() метод

public static string css(string $text, string $media='')
$text строка содержимое CSS
$media строка среда, к которой должен применяться этот CSS.
{return} строка правильно заключённый CSS
Исходный код: framework/web/helpers/CHtml.php#251 (показать)
public static function css($text,$media='')
{
    if(
$media!=='')
        
$media=' media="'.$media.'"';
    return 
"<style type=\"text/css\"{$media}>\n/*<![CDATA[*/\n{$text}\n/*]]>*/\n</style>";
}

Заключает предоставленное содержимое CSS в теге CSS.

cssFile() метод

public static string cssFile(string $url, string $media='')
$url строка URL CSS
$media строка среда, к которой должен применяться этот CSS.
{return} строка ссылка на CSS.
Исходный код: framework/web/helpers/CHtml.php#281 (показать)
public static function cssFile($url,$media='')
{
    return 
CHtml::linkTag('stylesheet','text/css',$url,$media!=='' ? $media : null);
}

Устанавливает ссылку на указанный файл CSS.

dateField() метод (доступен начиная с v1.1.14)

public static string dateField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#692 (показать)
public static function dateField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('date',$name,$value,$htmlOptions);
}

Генерирует поле ввода для даты.

См. также

  • clientChange
  • inputField

dateTimeField() метод (доступен начиная с v1.1.16)

public static string dateTimeField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#726 (показать)
public static function dateTimeField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('datetime',$name,$value,$htmlOptions);
}

Генерирует поле ввода для даты и времени.

См. также

  • clientChange
  • inputField

dateTimeLocalField() метод (доступен начиная с v1.1.16)

public static string dateTimeLocalField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#743 (показать)
public static function dateTimeLocalField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('datetime-local',$name,$value,$htmlOptions);
}

Генерирует поле ввода для локальной даты и времени.

См. также

  • clientChange
  • inputField

decode() метод (доступен начиная с v1.1.8)

public static string decode(string $text)
$text строка данные для декодирования
{return} строка декодированные данные
Исходный код: framework/web/helpers/CHtml.php#119 (показать)
public static function decode($text)
{
    return 
htmlspecialchars_decode($text,ENT_QUOTES);
}

Декодирует специальные HTML-сущности обратно в соответствующие символы. Это противоположно encode().

См. также

  • http://www.php.net/manual/en/function.htmlspecialchars-decode.php

dropDownList() метод

public static string dropDownList(string $name, string $select, array $data, array $htmlOptions=array ( ))
$name string имя входного поля
$select string выбранное значение
$data массив данные для генерации списка опций (значение=>отображение). Вы можете использовать listData для генерации этих данных. Обратитесь к listOptions для получения информации о том, как эти данные используются для генерации списка опций. Обратите внимание, что значения и метки будут автоматически закодированы в HTML этим методом.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются несколько специальных атрибутов. Подробнее см. clientChange и tag. Кроме того, для выпадающего списка также поддерживаются следующие опции:
  • encode: boolean, указывает, нужно ли кодировать значения. По умолчанию — true.
  • prompt: строка, указывает текст подсказки, отображаемый как первая опция списка. Его значение — пустая строка. Обратите внимание, что текст подсказки НЕ будет кодирован в HTML.
  • empty: строка, указывает текст, соответствующий пустому выбору. Его значение — пустая строка. Опция 'empty' также может быть массивом пар "значение-метка". Каждая пара будет использована для рендеринга опции списка в начале. Обратите внимание, что метка текста НЕ будет кодирована в HTML.
  • options: массив, указывает дополнительные атрибуты для каждого тега OPTION. Ключи массива должны быть значениями опций, а значения массива — дополнительными атрибутами тега OPTION в парах "имя-значение". Например,
        array(
            'value1'=>array('disabled'=>true,'label'=>'value 1'),
            'value2'=>array('label'=>'value 2'),
        );
    
Начиная с версии 1.1.13, доступна специальная опция с именем 'unselectValue'. Она может быть использована для установки значения, которое будет возвращено, когда ни одна опция не выбрана в режиме выбора нескольких элементов. При установке рендерится скрытое поле, чтобы при выборе нескольких элементов, когда не выбрано ни одной опции, мы могли получить отправленное значение unselect. Если 'unselectValue' не установлена или установлена в NULL, скрытое поле не будет рендериться.
{return} строка сгенерированный выпадающий список
Исходный код: framework/web/helpers/CHtml.php#1018 (показать)
public static function dropDownList($name,$select,$data,$htmlOptions=array())
{
    
$htmlOptions['name']=$name;

    if(!isset(
$htmlOptions['id']))
        
$htmlOptions['id']=self::getIdByName($name);
    elseif(
$htmlOptions['id']===false)
        unset(
$htmlOptions['id']);

    
self::clientChange('change',$htmlOptions);
    
$options="\n".self::listOptions($select,$data,$htmlOptions);
    
$hidden='';

    if(!empty(
$htmlOptions['multiple']))
    {
        if(
substr($htmlOptions['name'],-2)!=='[]')
            
$htmlOptions['name'].='[]';

        if(isset(
$htmlOptions['unselectValue']))
        {
            
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
            if(!empty(
$htmlOptions['disabled']))
                
$hiddenOptions['disabled']=$htmlOptions['disabled'];
            
$hidden=self::hiddenField(substr($htmlOptions['name'],0,-2),$htmlOptions['unselectValue'],$hiddenOptions);
            unset(
$htmlOptions['unselectValue']);
        }
    }
    
// add a hidden field so that if the option is not selected, it still submits a value
    
return $hidden . self::tag('select',$htmlOptions,$options);
}

Генерирует выпадающий список.

См. также

  • clientChange
  • inputField
  • listData

emailField() метод (доступен с версии v1.1.14)

public static string emailField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя входного поля
$value строка значение входного поля
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, также распознаются несколько специальных атрибутов (см. clientChange и tag для более подробной информации.)
{return} строка сгенерированное входное поле
Исходный код: framework/web/helpers/CHtml.php#777 (показать)
public static function emailField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('email',$name,$value,$htmlOptions);
}

Генерирует входное поле для ввода адреса электронной почты.

См. также

  • clientChange
  • inputField

encode() метод

public static string encode(string $text)
$text строка данные, которые нужно закодировать
{return} строка закодированные данные
Исходный код: framework/web/helpers/CHtml.php#106 (показать)
public static function encode($text)
{
    return 
htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
}

Кодирует специальные символы в HTML-сущности. Для кодирования будет использоваться кодировка приложения.

См. также

  • http://www.php.net/manual/en/function.htmlspecialchars.php

encodeArray() метод

public static array encodeArray(array $data)
$data массив данные, которые нужно закодировать
{return} массив закодированные данные
Исходный код: framework/web/helpers/CHtml.php#133 (показать)
public static function encodeArray($data)
{
    
$d=array();
    foreach(
$data as $key=>$value)
    {
        if(
is_string($key))
            
$key=htmlspecialchars($key,ENT_QUOTES,Yii::app()->charset);
        if(
is_string($value))
            
$value=htmlspecialchars($value,ENT_QUOTES,Yii::app()->charset);
        elseif(
is_array($value))
            
$value=self::encodeArray($value);
        
$d[$key]=$value;
    }
    return 
$d;
}

Кодирует специальные символы в массиве строк в HTML-сущности. Если необходимо, будут закодированы и ключи, и значения массива. Если значение является массивом, этот метод также закодирует его рекурсивно. Для кодирования будет использоваться кодировка приложения.

См. также

  • http://www.php.net/manual/en/function.htmlspecialchars.php

endForm() метод

public static string endForm()
{return} строка сгенерированный тег
Исходный код: framework/web/helpers/CHtml.php#379 (показать)
public static function endForm()
{
    return 
'</form>';
}

Генерирует закрывающий тег формы.

См. также

  • beginForm

error() метод

public static string error(CModel $model, string $attribute, array $htmlOptions=array ( ))
$model CModel модель данных
$attribute строка имя атрибута
$htmlOptions массив дополнительные атрибуты HTML, которые нужно отобразить в контейнерном теге.
{return} строка отображение ошибки. Пустая строка, если ошибки не найдены.
Исходный код: framework/web/helpers/CHtml.php#2251 (показать)
public static function error($model,$attribute,$htmlOptions=array())
{
    
self::resolveName($model,$attribute); // turn [a][b]attr into attr
    
$error=self::encode($model->getError($attribute));
    if(
$error!='')
    {
        if(!isset(
$htmlOptions['class']))
            
$htmlOptions['class']=self::$errorMessageCss;
        return 
self::tag(self::$errorContainerTag,$htmlOptions,$error);
    }
    else
        return 
'';
}

Отображает первую ошибку валидации для атрибута модели.

См. также

  • CModel::getErrors
  • errorMessageCss
  • $errorContainerTag

errorSummary() метод

public static string errorSummary(mixed $model, string $header=NULL, string $footer=NULL, array $htmlOptions=array ( ))
$model смешанный тип модели, ошибки ввода которых необходимо отобразить. Это может быть одна модель или массив моделей.
$header строка фрагмент кода HTML, отображаемый перед ошибками
$footer строка фрагмент кода HTML, отображаемый в конце ошибок
$htmlOptions массив дополнительные атрибуты HTML, которые нужно отобразить в контейнерном теге div. Специальная опция с именем 'firstError', если она установлена в true, заставит вывод сводки ошибок показывать только первое сообщение об ошибке для каждого атрибута. Если она не установлена или установлена в false, будут отображаться все сообщения об ошибках. Эта опция доступна с версии 1.1.3.
{return} строка сводка ошибок. Пустая строка, если ошибки не найдены.
Исходный код: framework/web/helpers/CHtml.php#2204 (показать)
public static function errorSummary($model,$header=null,$footer=null,$htmlOptions=array())
{
    
$content='';
    if(!
is_array($model))
        
$model=array($model);
    if(isset(
$htmlOptions['firstError']))
    {
        
$firstError=$htmlOptions['firstError'];
        unset(
$htmlOptions['firstError']);
    }
    else
        
$firstError=false;
    foreach(
$model as $m)
    {
        foreach(
$m->getErrors() as $errors)
        {
            foreach(
$errors as $error)
            {
                if(
$error!='')
                    
$content.= '<li>'.self::encode($error)."</li>\n";
                if(
$firstError)
                    break;
            }
        }
    }
    if(
$content!=='')
    {
        if(
$header===null)
            
$header='<p>'.Yii::t('yii','Please fix the following input errors:').'</p>';
        if(!isset(
$htmlOptions['class']))
            
$htmlOptions['class']=self::$errorSummaryCss;
        return 
self::tag('div',$htmlOptions,$header."\n<ul>\n$content</ul>".$footer);
    }
    else
        return 
'';
}

Отображает сводку ошибок валидации для одной или нескольких моделей.

См. также

  • CModel::getErrors
  • errorSummaryCss

fileField() метод

public static string fileField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя входного поля
$value строка значение входного поля
$htmlOptions массив дополнительные атрибуты HTML (см. tag).
{return} строка сгенерированное входное поле
Исходный код: framework/web/helpers/CHtml.php#857 (показать)
public static function fileField($name,$value='',$htmlOptions=array())
{
    return 
self::inputField('file',$name,$value,$htmlOptions);
}

Генерирует элемент ввода файла. Обратите внимание, что вам нужно установить атрибут 'enctype' окружающего элемента формы в 'multipart/form-data'. После отправки формы информацию об загруженном файле можно получить через $_FILES[$name] (см. документацию PHP).

См. также

  • inputField

form() метод

public static string form(mixed $action='', string $method='post', array $htmlOptions=array ( ))
$action смешанный тип URL действия формы (см. normalizeUrl для получения подробностей об этом параметре.)
$method строка метод формы (например, post, get)
$htmlOptions массив дополнительные атрибуты HTML (см. тег).
{возврат} строка сгенерированный тег формы.
Исходный код: framework/web/helpers/CHtml.php#325 (показать)
public static function form($action='',$method='post',$htmlOptions=array())
{
    return 
self::beginForm($action,$method,$htmlOptions);
}

Генерирует открывающий тег формы. Это сокращение для beginForm.

getIdByName() метод

public static string getIdByName(string $name)
$name строка имя, на основе которого генерируется HTML-идентификатор
{возврат} строка сгенерированный идентификатор на основе имени.
Исходный код: framework/web/helpers/CHtml.php#2369 (показать)
public static function getIdByName($name)
{
    return 
str_replace(array('[]','][','[',']',' '),array('','_','_','','_'),$name);
}

Генерирует допустимый HTML-идентификатор на основе имени.

hiddenField() метод

public static string hiddenField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя элемента ввода
$value строка значение элемента ввода
$htmlOptions массив дополнительные атрибуты HTML (см. тег).
{возврат} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#825 (показать)
public static function hiddenField($name,$value='',$htmlOptions=array())
{
    return 
self::inputField('hidden',$name,$value,$htmlOptions);
}

Генерирует скрытое поле ввода.

См. также

  • inputField

htmlButton() метод

public static string htmlButton(string $label='button', array $htmlOptions=array ( ))
$label строка метка кнопки. Обратите внимание, что это значение будет вставлено непосредственно в элемент кнопки без HTML-кодирования.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации.)
{возврат} строка сгенерированный тег кнопки
Исходный код: framework/web/helpers/CHtml.php#494 (показать)
public static function htmlButton($label='button',$htmlOptions=array())
{
    if(!isset(
$htmlOptions['name']))
        
$htmlOptions['name']=self::ID_PREFIX.self::$count++;
    if(!isset(
$htmlOptions['type']))
        
$htmlOptions['type']='button';
    
self::clientChange('click',$htmlOptions);
    return 
self::tag('button',$htmlOptions,$label);
}

Генерирует кнопку с помощью тега HTML button. Этот метод похож на button, за исключением того, что он генерирует тег 'button' вместо тега 'input'.

См. также

  • clientChange

image() метод

public static string image(string $src, string $alt='', array $htmlOptions=array ( ))
$src строка URL изображения
$alt строка текст альтернативного отображения
$htmlOptions массив дополнительные атрибуты HTML (см. тег).
{возврат} строка сгенерированный тег изображения
Исходный код: framework/web/helpers/CHtml.php#453 (показать)
public static function image($src,$alt='',$htmlOptions=array())
{
    
$htmlOptions['src']=$src;
    
$htmlOptions['alt']=$alt;
    return 
self::tag('img',$htmlOptions);
}

Генерирует тег изображения.

imageButton() метод

public static string imageButton(string $src, array $htmlOptions=array ( ))
$src строка URL изображения
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации.)
{возврат} строка сгенерированный тег кнопки
Исходный код: framework/web/helpers/CHtml.php#540 (показать)
public static function imageButton($src,$htmlOptions=array())
{
    
$htmlOptions['src']=$src;
    
$htmlOptions['type']='image';
    return 
self::button('submit',$htmlOptions);
}

Генерирует кнопку отправки изображения.

См. также

  • clientChange

inputField() метод

protected static string inputField(string $type, string $name, string $value, array $htmlOptions)
$type строка тип ввода (например, 'text', 'radio')
$name строка имя элемента ввода
$value строка значение элемента ввода
$htmlOptions массив дополнительные атрибуты HTML для тега (см. тег).
{возврат} строка сгенерированный тег ввода
Исходный код: framework/web/helpers/CHtml.php#1447 (показать)
protected static function inputField($type,$name,$value,$htmlOptions)
{
    
$htmlOptions['type']=$type;
    
$htmlOptions['value']=$value;
    
$htmlOptions['name']=$name;
    if(!isset(
$htmlOptions['id']))
        
$htmlOptions['id']=self::getIdByName($name);
    elseif(
$htmlOptions['id']===false)
        unset(
$htmlOptions['id']);
    return 
self::tag('input',$htmlOptions);
}

Генерирует тег HTML ввода. Этот метод генерирует тег HTML ввода на основе заданного имени и значения ввода.

label() метод

public static string label(string $label, string $for, array $htmlOptions=array ( ))
$label строка текст метки. Обратите внимание, что текст необходимо HTML-кодировать при необходимости.
$for строка идентификатор HTML-элемента, к которому относится эта метка. Если это false, атрибут 'for' для тега метки не будет отображен.
$htmlOptions массив дополнительные атрибуты HTML. Распознаётся следующий атрибут HTML:
  • required: если это установлено и равно true, метка будет стилизована с помощью CSS-класса 'required' (настраивается с помощью CHtml::$requiredCss), и будет дополнена CHtml::beforeRequiredLabel и CHtml::afterRequiredLabel.
{возврат} строка сгенерированный тег метки
Исходный код: framework/web/helpers/CHtml.php#577 (показать)
public static function label($label,$for,$htmlOptions=array())
{
    if(
$for===false)
        unset(
$htmlOptions['for']);
    else
        
$htmlOptions['for']=$for;
    if(isset(
$htmlOptions['required']))
    {
        if(
$htmlOptions['required'])
        {
            if(isset(
$htmlOptions['class']))
                
$htmlOptions['class'].=' '.self::$requiredCss;
            else
                
$htmlOptions['class']=self::$requiredCss;
            
$label=self::$beforeRequiredLabel.$label.self::$afterRequiredLabel;
        }
        unset(
$htmlOptions['required']);
    }
    return 
self::tag('label',$htmlOptions,$label);
}

Генерирует тег метки.

link() метод

public static string link(string $text, mixed $url='#', array $htmlOptions=array ( ))
$text строка тело ссылки. Оно НЕ будет HTML-кодировано. Поэтому вы можете передавать HTML-код, например, тег изображения.
$url смешанный тип URL или маршрут действия, который может быть использован для создания URL. См. normalizeUrl для получения более подробной информации о том, как указать этот параметр.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации.)
{возврат} строка сгенерированная гиперссылка
Исходный код: framework/web/helpers/CHtml.php#422 (показать)
public static function link($text,$url='#',$htmlOptions=array())
{
    if(
$url!=='')
        
$htmlOptions['href']=self::normalizeUrl($url);
    
self::clientChange('click',$htmlOptions);
    return 
self::tag('a',$htmlOptions,$text);
}

Генерирует тег гиперссылки.

См. также

  • normalizeUrl
  • clientChange
END_OF_DOCUMENT_MARKER

linkButton() метод

public static string linkButton(string $label='submit', array $htmlOptions=array ( ))
$label строка метка кнопки
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{return} строка сгенерированный тег кнопки
Исходный код: framework/web/helpers/CHtml.php#555 (показать)
public static function linkButton($label='submit',$htmlOptions=array())
{
    if(!isset(
$htmlOptions['submit']))
        
$htmlOptions['submit']=isset($htmlOptions['href']) ? $htmlOptions['href'] : '';
    return 
self::link($label,'#',$htmlOptions);
}

Генерирует кнопку отправки ссылки.

См. также

  • clientChange

linkTag() метод

public static string linkTag(string $relation=NULL, string $type=NULL, string $href=NULL, string $media=NULL, array $options=array ( ))
$relation строка атрибут rel тега ссылки. Если null, атрибут не будет сгенерирован.
$type строка атрибут type тега ссылки. Если null, атрибут не будет сгенерирован.
$href строка атрибут href тега ссылки. Если null, атрибут не будет сгенерирован.
$media строка атрибут media тега ссылки. Если null, атрибут не будет сгенерирован.
$options массив другие параметры в формате имя-значение
{return} строка сгенерированный тег ссылки
Исходный код: framework/web/helpers/CHtml.php#232 (показать)
public static function linkTag($relation=null,$type=null,$href=null,$media=null,$options=array())
{
    if(
$relation!==null)
        
$options['rel']=$relation;
    if(
$type!==null)
        
$options['type']=$type;
    if(
$href!==null)
        
$options['href']=$href;
    if(
$media!==null)
        
$options['media']=$media;
    return 
self::tag('link',$options);
}

Генерирует тег ссылки, который можно вставить в секцию head HTML-страницы. Не путайте этот метод с link(). Последний генерирует гиперссылку.

listBox() метод

public static string listBox(string $name, mixed $select, array $data, array $htmlOptions=array ( ))
$name строка имя поля ввода
$select смешанный тип выбранное(ые) значение(я). Может быть строкой для одиночного выбора или массивом для множественного выбора.
$data массив данные для генерации опций списка (значение=>отображение). Вы можете использовать listData для генерации этих данных. Обратитесь к listOptions для получения информации о том, как эти данные используются для генерации опций списка. Обратите внимание, что значения и метки автоматически кодируются в HTML этим методом.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты. См. clientChange и тег для получения более подробной информации. Кроме того, поддерживаются следующие параметры, специфичные для списка:
  • encode: boolean, указывает, нужно ли кодировать значения. По умолчанию true.
  • prompt: строка, указывает текст подсказки, отображаемый в качестве первой опции списка. Его значение пустое. Обратите внимание, что текст подсказки НЕ кодируется в HTML.
  • empty: строка, указывает текст, соответствующий пустому выбору. Его значение пустое. Параметр 'empty' также может быть массивом пар значение-метка. Каждая пара будет использоваться для рендеринга опции списка в начале. Обратите внимание, что метка текста НЕ кодируется в HTML.
  • options: массив, указывает дополнительные атрибуты для каждого тега OPTION. Ключи массива должны быть значениями опций, а значения массива — дополнительными атрибутами тега OPTION в парах имя-значение. Например,
        array(
            'value1'=>array('disabled'=>true,'label'=>'value 1'),
            'value2'=>array('label'=>'value 2'),
        );
    
{return} строка сгенерированный список
Исходный код: framework/web/helpers/CHtml.php#1082 (показать)
public static function listBox($name,$select,$data,$htmlOptions=array())
{
    if(!isset(
$htmlOptions['size']))
        
$htmlOptions['size']=4;
    if(!empty(
$htmlOptions['multiple']))
    {
        if(
substr($name,-2)!=='[]')
            
$name.='[]';
    }
    return 
self::dropDownList($name,$select,$data,$htmlOptions);
}

Генерирует список.

См. также

  • clientChange
  • inputField
  • listData

listData() метод

public static array listData(array $models, mixed $valueField, mixed $textField, mixed $groupField='')
$models массив список объектов модели. Этот параметр также может быть массивом ассоциативных массивов (например, результаты CDbCommand::queryAll).
$valueField смешанный тип имя атрибута или анонимная функция (PHP 5.3+) для значений опций списка
$textField смешанный тип имя атрибута или анонимная функция (PHP 5.3+) для текстов опций списка
$groupField смешанный тип имя атрибута или анонимная функция (PHP 5.3+) для имен групп опций списка. Если пусто, группы не будут сгенерированы.
{return} массив данные списка, которые можно использовать в dropDownList, listBox и т.д.
Исходный код: framework/web/helpers/CHtml.php#2289 (показать)
public static function listData($models,$valueField,$textField,$groupField='')
{
    
$listData=array();
    if(
$groupField==='')
    {
        foreach(
$models as $model)
        {
            
$value=self::value($model,$valueField);
            
$text=self::value($model,$textField);
            
$listData[$value]=$text;
        }
    }
    else
    {
        foreach(
$models as $model)
        {
            
$group=self::value($model,$groupField);
            
$value=self::value($model,$valueField);
            
$text=self::value($model,$textField);
            if(
$group===null)
                
$listData[$value]=$text;
            else
                
$listData[$group][$value]=$text;
        }
    }
    return 
$listData;
}

Генерирует данные, подходящие для элементов HTML на основе списков. Сгенерированные данные могут быть использованы в dropDownList, listBox, checkBoxList, radioButtonList и их активных версиях (например, activeDropDownList). Обратите внимание, что этот метод не кодирует сгенерированные данные в HTML. Вы можете вызвать encodeArray для их кодирования, если это необходимо. Обратитесь к методу value для указания поля значения, поля текста и поля группы. Вы также можете передавать анонимные функции как второй, третий и четвертый аргументы, которые вычисляют значение поля текста (только PHP 5.3+) начиная с 1.1.13. Ваша анонимная функция должна принимать один аргумент — модель, из которой генерируется текущий тег <option>.

CHtml::listData($posts,'id',function($post) {
	return CHtml::encode($post->title);
});

listOptions() метод

public static string listOptions(mixed $selection, array $listData, array &$htmlOptions)
$selection смешанный тип выбранное(ые) значение(я). Может быть строкой для одиночного выбора или массивом для множественного выбора.
$listData массив данные опций (см. listData)
$htmlOptions массив дополнительные атрибуты HTML. Распознаются следующие два специальных атрибута:
  • encode: boolean, указывает, нужно ли кодировать значения. По умолчанию true.
  • prompt: строка, указывает текст подсказки, отображаемый в качестве первой опции списка. Его значение пустое. Обратите внимание, что текст подсказки НЕ кодируется в HTML.
  • empty: строка, указывает текст, соответствующий пустому выбору. Его значение пустое. Параметр 'empty' также может быть массивом пар значение-метка. Каждая пара будет использоваться для рендеринга опции списка в начале. Обратите внимание, что метка текста НЕ кодируется в HTML.
  • options: массив, указывает дополнительные атрибуты для каждого тега OPTION. Ключи массива должны быть значениями опций, а значения массива — дополнительными атрибутами тега OPTION в парах имя-значение. Например,
        array(
            'value1'=>array('disabled'=>true,'label'=>'value 1'),
            'value2'=>array('label'=>'value 2'),
        );
    
  • key: строка, указывает имя атрибута ключа объекта(ов) выбора. Используется, когда выбор представлен объектами. В этом случае свойство, заданное ключом параметра, будет рассматриваться как фактическое значение выбора. Этот параметр по умолчанию равен 'primaryKey', что означает использование значения свойства 'primaryKey' объектов в выборе. Этот параметр доступен с версии 1.1.3.
{return} строка сгенерированные опции списка
Исходный код: framework/web/helpers/CHtml.php#2505 (показать)
public static function listOptions($selection,$listData,&$htmlOptions)
{
    
$raw=isset($htmlOptions['encode']) && !$htmlOptions['encode'];
    
$content='';
    if(isset(
$htmlOptions['prompt']))
    {
        
$content.='<option value="">'.strtr($htmlOptions['prompt'],array('<'=>'&lt;','>'=>'&gt;'))."</option>\n";
        unset(
$htmlOptions['prompt']);
    }
    if(isset(
$htmlOptions['empty']))
    {
        if(!
is_array($htmlOptions['empty']))
            
$htmlOptions['empty']=array(''=>$htmlOptions['empty']);
        foreach(
$htmlOptions['empty'] as $value=>$label)
            
$content.='<option value="'.self::encode($value).'">'.strtr($label,array('<'=>'&lt;','>'=>'&gt;'))."</option>\n";
        unset(
$htmlOptions['empty']);
    }

    if(isset(
$htmlOptions['options']))
    {
        
$options=$htmlOptions['options'];
        unset(
$htmlOptions['options']);
    }
    else
        
$options=array();

    
$key=isset($htmlOptions['key']) ? $htmlOptions['key'] : 'primaryKey';
    if(
is_array($selection))
    {
        foreach(
$selection as $i=>$item)
        {
            if(
is_object($item))
                
$selection[$i]=$item->$key;
        }
    }
    elseif(
is_object($selection))
        
$selection=$selection->$key;

    foreach(
$listData as $key=>$value)
    {
        if(
is_array($value))
        {
            
$content.='<optgroup label="'.($raw?$key : self::encode($key))."\">\n";
            
$dummy=array('options'=>$options);
            if(isset(
$htmlOptions['encode']))
                
$dummy['encode']=$htmlOptions['encode'];
            
$content.=self::listOptions($selection,$value,$dummy);
            
$content.='</optgroup>'."\n";
        }
        else
        {
            
$attributes=array('value'=>(string)$key,'encode'=>!$raw);
            if(!
is_array($selection) && !strcmp($key,$selection) || is_array($selection) && in_array($key,$selection))
                
$attributes['selected']='selected';
            if(isset(
$options[$key]))
                
$attributes=array_merge($attributes,$options[$key]);
            
$content.=self::tag('option',$attributes,$raw?(string)$value : self::encode((string)$value))."\n";
        }
    }

    unset(
$htmlOptions['key']);

    return 
$content;
}

Генерирует опции списка.

mailto() метод

public static string mailto(string $text, string $email='', array $htmlOptions=array ( ))
$text строка тело ссылки. Оно НЕ будет кодироваться в HTML. Поэтому вы можете передавать HTML-код, такой как тег изображения.
$email строка адрес электронной почты. Если он пустой, первый параметр (тело ссылки) будет обрабатываться как адрес электронной почты.
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{return} строка сгенерированная ссылка mailto
Исходный код: framework/web/helpers/CHtml.php#439 (показать)
public static function mailto($text,$email='',$htmlOptions=array())
{
    if(
$email==='')
        
$email=$text;
    return 
self::link($text,'mailto:'.$email,$htmlOptions);
}

Генерирует ссылку mailto.

См. также

  • clientChange

metaTag() метод

public static string metaTag(string $content, string $name=NULL, string $httpEquiv=NULL, array $options=array ( ))
$content строка атрибут содержимого тега meta
$name строка атрибут name тега meta. Если null, атрибут не будет сгенерирован
$httpEquiv строка атрибут http-equiv тега meta. Если null, атрибут не будет сгенерирован
$options массив другие параметры в виде пар имя-значение (например, 'scheme', 'lang')
{возвращает} строка сгенерированный тег meta
Исходный код: framework/web/helpers/CHtml.php#212 (показать)
public static function metaTag($content,$name=null,$httpEquiv=null,$options=array())
{
    if(
$name!==null)
        
$options['name']=$name;
    if(
$httpEquiv!==null)
        
$options['http-equiv']=$httpEquiv;
    
$options['content']=$content;
    return 
self::tag('meta',$options);
}

Генерирует тег meta, который может быть вставлен в секцию head HTML-страницы.

modelName() метод (доступен с версии v1.1.14)

public static string modelName(CModel|string $model)
$model CModel|строка модель данных или имя класса модели
{возвращает} строка сгенерированное HTML имя-значение
Исходный код: framework/web/helpers/CHtml.php#2392 (показать)
public static function modelName($model)
{
    if(
is_callable(self::$_modelNameConverter))
        return 
call_user_func(self::$_modelNameConverter,$model);

    
$className=is_object($model) ? get_class($model) : (string)$model;
    return 
trim(str_replace('\\','_',$className),'_');
}

Генерирует HTML имя для заданной модели.

См. также

  • CHtml::setModelNameConverter()

normalizeUrl() метод

public static string normalizeUrl(mixed $url)
$url смешанный тип параметр, используемый для генерации корректного URL
{возвращает} строка нормализованный URL
Исходный код: framework/web/helpers/CHtml.php#1421 (показать)
public static function normalizeUrl($url)
{
    if(
is_array($url))
    {
        if(isset(
$url[0]))
        {
            if((
$c=Yii::app()->getController())!==null)
                
$url=$c->createUrl($url[0],array_splice($url,1));
            else
                
$url=Yii::app()->createUrl($url[0],array_splice($url,1));
        }
        else
            
$url='';
    }
    return 
$url==='' ? Yii::app()->getRequest()->getUrl() : $url;
}

Нормализует входной параметр, чтобы он стал корректным URL.

Если входной параметр — пустая строка, возвращается текущий URL-запрос.

Если входной параметр — непустая строка, он обрабатывается как корректный URL и возвращается без изменений.

Если входной параметр — массив, он обрабатывается как маршрут контроллера и список параметров GET, и вызывается метод CController::createUrl для создания URL. В этом случае первый элемент массива относится к маршруту контроллера, а остальные пары ключ-значение — к дополнительным параметрам GET для URL. Например, array('post/list', 'page'=>3) может быть использован для генерации URL /index.php?r=post/list&page=3.

numberField() метод (доступен с версии v1.1.14)

public static string numberField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются и некоторые специальные атрибуты (см. clientChange и tag для подробностей).
{возвращает} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#658 (показать)
public static function numberField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('number',$name,$value,$htmlOptions);
}

Генерирует поле ввода типа число.

См. также

  • clientChange
  • inputField

openTag() метод

public static string openTag(string $tag, array $htmlOptions=array ( ))
$tag строка имя тега
$htmlOptions массив атрибуты элемента. Значения будут закодированы в HTML с помощью encode(). Если задан атрибут 'encode' со значением false, остальные значения атрибутов НЕ будут закодированы в HTML. С версии 1.1.5, атрибуты со значением null не будут отображаться.
{возвращает} строка сгенерированный тег HTML-элемента
Исходный код: framework/web/helpers/CHtml.php#179 (показать)
public static function openTag($tag,$htmlOptions=array())
{
    return 
'<' . $tag . self::renderAttributes($htmlOptions) . '>';
}

Генерирует открытый HTML-элемент.

pageStateField() метод

public static string pageStateField(string $value)
$value строка сохраненные состояния страницы в сериализованном формате
{возвращает} строка сгенерированное скрытое поле
Исходный код: framework/web/helpers/CHtml.php#406 (показать)
public static function pageStateField($value)
{
    return 
'<input type="hidden" name="'.CController::STATE_INPUT_NAME.'" value="'.$value.'" />';
}

Генерирует скрытое поле для хранения постоянных состояний страницы. Этот метод используется внутри statefulForm.

passwordField() метод

public static string passwordField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются и некоторые специальные атрибуты (см. clientChange и tag для подробностей).
{возвращает} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#840 (показать)
public static function passwordField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('password',$name,$value,$htmlOptions);
}

Генерирует поле ввода для пароля.

См. также

  • clientChange
  • inputField

radioButton() метод

public static string radioButton(string $name, boolean $checked=false, array $htmlOptions=array ( ))
$name строка имя поля ввода
$checked логический тип включен ли радио-кнопка
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются и некоторые специальные атрибуты (см. clientChange и tag для подробностей). С версии 1.1.2 доступен специальный параметр 'uncheckValue', который позволяет указать значение, возвращаемое при снятии галочки с радио-кнопки. В этом случае рендерится скрытое поле, так что при снятии галочки мы можем получить отправленное значение uncheck. Если 'uncheckValue' не задан или равен NULL, скрытое поле не будет рендериться.
{возвращает} строка сгенерированная радио-кнопка
Исходный код: framework/web/helpers/CHtml.php#897 (показать)
public static function radioButton($name,$checked=false,$htmlOptions=array())
{
    if(
$checked)
        
$htmlOptions['checked']='checked';
    else
        unset(
$htmlOptions['checked']);
    
$value=isset($htmlOptions['value']) ? $htmlOptions['value'] : 1;
    
self::clientChange('click',$htmlOptions);

    if(
array_key_exists('uncheckValue',$htmlOptions))
    {
        
$uncheck=$htmlOptions['uncheckValue'];
        unset(
$htmlOptions['uncheckValue']);
    }
    else
        
$uncheck=null;

    if(
$uncheck!==null)
    {
        
// add a hidden field so that if the radio button is not selected, it still submits a value
        
if(isset($htmlOptions['id']) && $htmlOptions['id']!==false)
            
$uncheckOptions=array('id'=>self::ID_PREFIX.$htmlOptions['id']);
        else
            
$uncheckOptions=array('id'=>false);
        if(!empty(
$htmlOptions['disabled']))
            
$uncheckOptions['disabled']=$htmlOptions['disabled'];
        
$hidden=self::hiddenField($name,$uncheck,$uncheckOptions);
    }
    else
        
$hidden='';

    
// add a hidden field so that if the radio button is not selected, it still submits a value
    
return $hidden . self::inputField('radio',$name,$value,$htmlOptions);
}

Генерирует радио-кнопку.

См. также

  • clientChange
  • inputField

radioButtonList() метод

public static string radioButtonList(string $name, string $select, array $data, array $htmlOptions=array ( ))
$name string имя списка радиокнопок. Вы можете использовать это имя для получения выбранного значения (значений) после отправки формы.
$select string выбор радиокнопок.
$data массив пары «значение-метка», используемые для создания списка радиокнопок. Обратите внимание, значения будут автоматически закодированы в HTML, а метки — нет.
$htmlOptions массив дополнительные HTML-параметры. Параметры будут применены к каждому элементу ввода радиокнопки. Признаются следующие специальные параметры:
  • template: строка, задаёт, как будет отрисовываться каждая радиокнопка. По умолчанию "{input} {label}", где "{input}" будет заменён созданным тегом ввода радиокнопки, а "{label}" — соответствующей меткой радиокнопки, {beginLabel} будет заменён на <label> с labelOptions, {labelTitle} будет заменён на заголовок соответствующей метки радиокнопки, а {endLabel} — на </label>
  • separator: строка, задаёт строку, разделяющую созданные радиокнопки. По умолчанию новая строка (
    ).
  • labelOptions: массив, задаёт дополнительные HTML-атрибуты, которые должны быть отрисованы для каждого тега метки в списке.
  • container: строка, задаёт окружающий тег для радиокнопок. По умолчанию 'span'. Если значение пустая строка, окружающий тег не будет сгенерирован.
  • baseID: строка, задаёт префикс базового ID, который будет использоваться для радиокнопок в списке. Этот параметр доступен начиная с версии 1.1.13.
  • empty: строка, задаёт текст, соответствующий пустому выбору. Его значение пустое. Параметр 'empty' также может быть массивом пар «значение-метка». Каждая пара будет использована для отрисовки радиокнопки в начале. Обратите внимание, что метка текста НЕ будет закодирована в HTML. Этот параметр доступен начиная с версии 1.1.14.
{return} строка сгенерированный список радиокнопок
Исходный код: framework/web/helpers/CHtml.php#1245 (показать)
public static function radioButtonList($name,$select,$data,$htmlOptions=array())
{
    
$template=isset($htmlOptions['template'])?$htmlOptions['template']:'{input} {label}';
    
$separator=isset($htmlOptions['separator'])?$htmlOptions['separator']:self::tag('br');
    
$container=isset($htmlOptions['container'])?$htmlOptions['container']:'span';
    unset(
$htmlOptions['template'],$htmlOptions['separator'],$htmlOptions['container']);

    
$labelOptions=isset($htmlOptions['labelOptions'])?$htmlOptions['labelOptions']:array();
    unset(
$htmlOptions['labelOptions']);

    if(isset(
$htmlOptions['empty']))
    {
        if(!
is_array($htmlOptions['empty']))
            
$htmlOptions['empty']=array(''=>$htmlOptions['empty']);
        
$data=CMap::mergeArray($htmlOptions['empty'],$data);
        unset(
$htmlOptions['empty']);
    }

    
$items=array();
    
$baseID=isset($htmlOptions['baseID']) ? $htmlOptions['baseID'] : self::getIdByName($name);
    unset(
$htmlOptions['baseID']);
    
$id=0;
    foreach(
$data as $value=>$labelTitle)
    {
        
$checked=!strcmp($value,$select);
        
$htmlOptions['value']=$value;
        
$htmlOptions['id']=$baseID.'_'.$id++;
        
$option=self::radioButton($name,$checked,$htmlOptions);
        
$beginLabel=self::openTag('label',$labelOptions);
        
$label=self::label($labelTitle,$htmlOptions['id'],$labelOptions);
        
$endLabel=self::closeTag('label');
        
$items[]=strtr($template,array(
            
'{input}'=>$option,
            
'{beginLabel}'=>$beginLabel,
            
'{label}'=>$label,
            
'{labelTitle}'=>$labelTitle,
            
'{endLabel}'=>$endLabel,
        ));
    }
    if(empty(
$container))
        return 
implode($separator,$items);
    else
        return 
self::tag($container,array('id'=>$baseID),implode($separator,$items));
}

Создаёт список радиокнопок. Список радиокнопок похож на список флажков, за исключением того, что он позволяет только один выбор.

rangeField() метод (доступен начиная с v1.1.14)

public static string rangeField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя элемента ввода
$value строка значение элемента ввода
$htmlOptions массив дополнительные HTML-атрибуты. Помимо обычных HTML-атрибутов, также распознаются несколько специальных атрибутов (подробнее см. clientChange и tag).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#675 (показать)
public static function rangeField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('range',$name,$value,$htmlOptions);
}

Создаёт поле ввода диапазона.

См. также

  • clientChange
  • inputField

refresh() метод (доступен начиная с v1.1.1)

public static void refresh(integer $seconds, string $url='')
$seconds целое число количество секунд ожидания перед обновлением страницы
$url строка URL, на который должна перенаправить страница. Если пусто, означает текущую страницу.
Исходный код: framework/web/helpers/CHtml.php#267 (показать)
public static function refresh($seconds,$url='')
{
    
$content="$seconds";
    if(
$url!=='')
        
$content.=';url='.self::normalizeUrl($url);
    
Yii::app()->clientScript->registerMetaTag($content,null,'refresh');
}

Регистрирует мета-тег 'refresh'. Этот метод может быть вызван в любом месте представления. Он зарегистрирует мета-тег 'refresh' в CClientScript, чтобы страница могла быть обновлена через указанное количество секунд.

renderAttributes() метод

public static string renderAttributes(array $htmlOptions)
$htmlOptions массив атрибуты для отрисовки
{return} строка результат отрисовки
Исходный код: framework/web/helpers/CHtml.php#2773 (показать)
public static function renderAttributes($htmlOptions)
{
    static 
$specialAttributes=array(
        
'autofocus'=>1,
        
'autoplay'=>1,
        
'async'=>1,
        
'checked'=>1,
        
'controls'=>1,
        
'declare'=>1,
        
'default'=>1,
        
'defer'=>1,
        
'disabled'=>1,
        
'formnovalidate'=>1,
        
'hidden'=>1,
        
'ismap'=>1,
        
'itemscope'=>1,
        
'loop'=>1,
        
'multiple'=>1,
        
'muted'=>1,
        
'nohref'=>1,
        
'noresize'=>1,
        
'novalidate'=>1,
        
'open'=>1,
        
'readonly'=>1,
        
'required'=>1,
        
'reversed'=>1,
        
'scoped'=>1,
        
'seamless'=>1,
        
'selected'=>1,
        
'typemustmatch'=>1,
    );

    if(
$htmlOptions===array())
        return 
'';

    
$html='';
    if(isset(
$htmlOptions['encode']))
    {
        
$raw=!$htmlOptions['encode'];
        unset(
$htmlOptions['encode']);
    }
    else
        
$raw=false;

    foreach(
$htmlOptions as $name=>$value)
    {
        if(isset(
$specialAttributes[$name]))
        {
            if(
$value===false && $name==='async') {
                
$html .= ' ' . $name.'="false"';
            }
            elseif(
$value)
            {
                
$html .= ' ' . $name;
                if(
self::$renderSpecialAttributesValue)
                    
$html .= '="' . $name . '"';
            }
        }
        elseif(
$value!==null)
            
$html .= ' ' . $name . '="' . ($raw ? $value : self::encode($value)) . '"';
    }

    return 
$html;
}

Отображает атрибуты тега HTML. Начиная с версии 1.1.5, атрибуты, значение которых равно null, не будут отрисованы. Специальные атрибуты, такие как 'checked', 'disabled', 'readonly', будут правильно отрисованы на основе их соответствующего логического значения.

resetButton() метод

public static string resetButton(string $label='reset', array $htmlOptions=array ( ))
$label строка метка кнопки
$htmlOptions массив дополнительные HTML-атрибуты. Помимо обычных HTML-атрибутов, распознаются и некоторые специальные атрибуты (подробнее см. clientChange и tag).
{return} строка сгенерированный тег кнопки
Исходный код: framework/web/helpers/CHtml.php#526 (показать)
public static function resetButton($label='reset',$htmlOptions=array())
{
    
$htmlOptions['type']='reset';
    return 
self::button($label,$htmlOptions);
}

Создаёт кнопку сброса.

См. также

  • clientChange

resolveName() метод

public static string resolveName(CModel $model, string &$attribute)
$model CModel модель данных
$attribute строка атрибут
{return} строка имя элемента ввода
Исходный код: framework/web/helpers/CHtml.php#2691 (показать)
public static function resolveName($model,&$attribute)
{
    
$modelName=self::modelName($model);

    if((
$pos=strpos($attribute,'['))!==false)
    {
        if(
$pos!==0)  // e.g. name[a][b]
            
return $modelName.'['.substr($attribute,0,$pos).']'.substr($attribute,$pos);
        if((
$pos=strrpos($attribute,']'))!==false && $pos!==strlen($attribute)-1)  // e.g. [a][b]name
        
{
            
$sub=substr($attribute,0,$pos+1);
            
$attribute=substr($attribute,$pos+1);
            return 
$modelName.$sub.'['.$attribute.']';
        }
        if(
preg_match('/\](\w+\[.*)$/',$attribute,$matches))
        {
            
$name=$modelName.'['.str_replace(']','][',trim(strtr($attribute,array(']['=>']','['=>']')),']')).']';
            
$attribute=$matches[1];
            return 
$name;
        }
    }
    return 
$modelName.'['.$attribute.']';
}

Создаёт имя элемента ввода для атрибута модели. Обратите внимание, что имя атрибута может быть изменено после вызова этого метода, если имя содержит квадратные скобки (в основном используются в табличных элементах ввода) перед фактическим именем атрибута.

resolveNameID() метод

public static void resolveNameID(CModel $model, string &$attribute, array &$htmlOptions)
$model CModel модель данных
$attribute строка атрибут
$htmlOptions массив HTML-параметры
Исходный код: framework/web/helpers/CHtml.php#2673 (показать)
public static function resolveNameID($model,&$attribute,&$htmlOptions)
{
    if(!isset(
$htmlOptions['name']))
        
$htmlOptions['name']=self::resolveName($model,$attribute);
    if(!isset(
$htmlOptions['id']))
        
$htmlOptions['id']=self::getIdByName($htmlOptions['name']);
    elseif(
$htmlOptions['id']===false)
        unset(
$htmlOptions['id']);
}

Создаёт имя элемента ввода и ID для атрибута модели. Этот метод обновит HTML-параметры, установив соответствующие атрибуты 'name' и 'id'. Этот метод также может изменить имя атрибута, если имя содержит квадратные скобки (в основном используются в табличных элементах ввода).

resolveValue() метод (доступен начиная с v1.1.3)

public static mixed resolveValue(CModel $model, string $attribute)
$model CModel модель данных
$attribute строка имя атрибута
{return} смешанный тип значение атрибута
Исходный код: framework/web/helpers/CHtml.php#2724 (показать)
public static function resolveValue($model,$attribute)
{
    if((
$pos=strpos($attribute,'['))!==false)
    {
        if(
$pos===0) // [a]name[b][c], should ignore [a]
        
{
            if(
preg_match('/\](\w+(\[.+)?)/',$attribute,$matches))
                
$attribute=$matches[1]; // we get: name[b][c]
            
if(($pos=strpos($attribute,'['))===false)
                return 
$model->$attribute;
        }
        
$name=substr($attribute,0,$pos);
        
$value=$model->$name;
        foreach(
explode('][',rtrim(substr($attribute,$pos+1),']')) as $id)
        {
            if((
is_array($value) || $value instanceof ArrayAccess) && isset($value[$id]))
                
$value=$value[$id];
            else
                return 
null;
        }
        return 
$value;
    }
    else
        return 
$model->$attribute;
}

Оценивает значение атрибута модели. Этот метод может распознать имя атрибута, записанное в формате массива. Например, если имя атрибута 'name[a][b]', будет возвращено значение "$model->name['a']['b']".

script() метод

public static string script(string $text, array $htmlOptions=array ( ))
$text строка JavaScript, который должен быть заключён
$htmlOptions массив дополнительные HTML-атрибуты (см. tag)
{return} строка заключённый JavaScript
Исходный код: framework/web/helpers/CHtml.php#292 (показать)
public static function script($text,array $htmlOptions=array())
{
    
$defaultHtmlOptions=array(
        
'type'=>'text/javascript',
    );
    
$htmlOptions=array_merge($defaultHtmlOptions,$htmlOptions);
    return 
self::tag('script',$htmlOptions,"\n/*<![CDATA[*/\n{$text}\n/*]]>*/\n");
}

Оборачивает указанный JavaScript в тег script.

scriptFile() метод

public static string scriptFile(string $url, array $htmlOptions=array ( ))
$url строка URL файла JavaScript
$htmlOptions массив дополнительные атрибуты HTML (см. тег)
{возврат} строка тег файла JavaScript
Исходный код: framework/web/helpers/CHtml.php#307 (показать)
public static function scriptFile($url,array $htmlOptions=array())
{
    
$defaultHtmlOptions=array(
        
'type'=>'text/javascript',
        
'src'=>$url
    
);
    
$htmlOptions=array_merge($defaultHtmlOptions,$htmlOptions);
    return 
self::tag('script',$htmlOptions,'');
}

Включает файл JavaScript.

searchField() метод (доступен начиная с версии v1.1.16)

public static string searchField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{возврат} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#642 (показать)
public static function searchField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('search',$name,$value,$htmlOptions);
}

Генерирует поле ввода для поиска.

См. также

  • clientChange
  • inputField

setModelNameConverter() метод (доступен начиная с v1.1.14)

public static void setModelNameConverter(callback|null $converter)
$converter обработчик|null новый генератор; имя модели или класса передается в этот обработчик, и результат должен быть допустимым значением для атрибута имени HTML.
Исходный код: framework/web/helpers/CHtml.php#2410 (показать)
public static function setModelNameConverter($converter)
{
    if(
is_callable($converter))
        
self::$_modelNameConverter=$converter;
    elseif(
$converter===null)
        
self::$_modelNameConverter=null;
    else
        throw new 
CException(Yii::t('yii','The $converter argument must be a valid callback or null.'));
}

Устанавливает генератор, используемый в методе CHtml::modelName(). Можно использовать значение `null` для восстановления значения по умолчанию.

statefulForm() метод

public static string statefulForm(mixed $action='', string $method='post', array $htmlOptions=array ( ))
$action смешанный тип URL действия формы (см. normalizeUrl для получения подробностей об этом параметре.)
$method строка метод формы (например, post, get)
$htmlOptions массив дополнительные атрибуты HTML (см. тег).
{возврат} строка сгенерированный тег формы.
Исходный код: framework/web/helpers/CHtml.php#394 (показать)
public static function statefulForm($action='',$method='post',$htmlOptions=array())
{
    return 
self::form($action,$method,$htmlOptions)."\n".
        
self::tag('div',array('style'=>'display:none'),self::pageStateField(''));
}

Генерирует тег формы с сохранением состояния. Тег формы с сохранением состояния похож на тег form, за исключением того, что он отображает дополнительное скрытое поле для хранения состояния страницы. Вам следует использовать этот метод для генерации тега формы, если вы хотите получить доступ к состоянию страницы, сохраняющемуся при отправке формы.

submitButton() метод

public static string submitButton(string $label='submit', array $htmlOptions=array ( ))
$label строка метка кнопки
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{возврат} строка сгенерированный тег кнопки
Исходный код: framework/web/helpers/CHtml.php#512 (показать)
public static function submitButton($label='submit',$htmlOptions=array())
{
    
$htmlOptions['type']='submit';
    return 
self::button($label,$htmlOptions);
}

Генерирует кнопку отправки.

См. также

  • clientChange

tag() метод

public static string tag(string $tag, array $htmlOptions=array ( ), mixed $content=false, boolean $closeTag=true)
$tag строка имя тега
$htmlOptions массив атрибуты элемента. Значения будут закодированы в HTML с помощью encode(). Если задан атрибут 'encode' и его значение равно false, остальные значения атрибутов НЕ будут закодированы в HTML. С версии 1.1.5 атрибуты, значение которых равно null, не будут отображаться.
$content смешанный тип содержимое, которое будет заключено между открывающим и закрывающим тегами элемента. Оно не будет закодировано в HTML. Если значение равно false, это означает, что содержимого нет.
$closeTag логическое генерировать ли закрывающий тег.
{возврат} строка сгенерированный тег HTML-элемента
Исходный код: framework/web/helpers/CHtml.php#161 (показать)
public static function tag($tag,$htmlOptions=array(),$content=false,$closeTag=true)
{
    
$html='<' . $tag . self::renderAttributes($htmlOptions);
    if(
$content===false)
        return 
$closeTag && self::$closeSingleTags ? $html.' />' : $html.'>';
    else
        return 
$closeTag ? $html.'>'.$content.'</'.$tag.'>' : $html.'>'.$content;
}

Генерирует HTML-элемент.

telField() метод (доступен начиная с v1.1.14)

public static string telField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{возврат} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#794 (показать)
public static function telField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('tel',$name,$value,$htmlOptions);
}

Генерирует поле ввода для номера телефона.

См. также

  • clientChange
  • inputField

textArea() метод

public static string textArea(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{возврат} строка сгенерированная область ввода текста
Исходный код: framework/web/helpers/CHtml.php#872 (показать)
public static function textArea($name,$value='',$htmlOptions=array())
{
    
$htmlOptions['name']=$name;
    if(!isset(
$htmlOptions['id']))
        
$htmlOptions['id']=self::getIdByName($name);
    elseif(
$htmlOptions['id']===false)
        unset(
$htmlOptions['id']);
    
self::clientChange('change',$htmlOptions);
    return 
self::tag('textarea',$htmlOptions,isset($htmlOptions['encode']) && !$htmlOptions['encode'] ? $value : self::encode($value));
}

Генерирует область ввода текста.

См. также

  • clientChange
  • inputField

textField() метод

public static string textField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются также некоторые специальные атрибуты (см. clientChange и тег для получения более подробной информации).
{возврат} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#625 (показать)
public static function textField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('text',$name,$value,$htmlOptions);
}

Генерирует текстовое поле ввода.

См. также

  • clientChange
  • inputField

timeField() метод (доступен начиная с v1.1.14)

public static string timeField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#709 (показать)
public static function timeField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('time',$name,$value,$htmlOptions);
}

Генерирует поле ввода времени.

См. также

  • clientChange
  • inputField

urlField() метод (доступен начиная с v1.1.14)

public static string urlField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#811 (показать)
public static function urlField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('url',$name,$value,$htmlOptions);
}

Генерирует поле ввода URL.

См. также

  • clientChange
  • inputField

value() метод

public static mixed value(mixed $model, mixed $attribute, mixed $defaultValue=NULL)
$model смешанный тип модель. Может быть объектом или массивом.
$attribute смешанный тип имя атрибута (используйте точку для объединения нескольких атрибутов) или анонимную функцию (PHP 5.3+). Помните, что функции, созданные с помощью «create_function», не поддерживаются этим методом. Также обратите внимание, что числовое значение не имеет смысла, когда первый параметр имеет тип объекта.
$defaultValue смешанный тип значение по умолчанию, которое возвращается, если атрибут не существует.
{return} смешанный тип значение атрибута.
Исходный код: framework/web/helpers/CHtml.php#2346 (показать)
public static function value($model,$attribute,$defaultValue=null)
{
    if(
is_scalar($attribute) || $attribute===null)
        foreach(
explode('.',$attribute) as $name)
        {
            if(
is_object($model) && isset($model->$name))
                
$model=$model->$name;
            elseif(
is_array($model) && isset($model[$name]))
                
$model=$model[$name];
            else
                return 
$defaultValue;
        }
    else
        return 
call_user_func($attribute,$model);

    return 
$model;
}

Вычисляет значение указанного атрибута для данной модели. Имя атрибута может быть задано в формате с точкой. Например, если атрибут «author.firstName», этот метод вернет значение «$model->author->firstName». Значение по умолчанию (переданное в качестве последнего параметра) будет возвращено, если атрибут не существует или прерван (например, $model->author равен null). Модель может быть объектом или массивом. Если это массив, атрибут обрабатывается как ключ массива. Например, для «author.firstName» это будет означать значение массива «$model['author']['firstName']».

Анонимная функция также может использоваться для вычисления атрибута начиная с версии 1.1.13 ($параметр attribute; только PHP 5.3+) следующим образом:

$taskClosedSecondsAgo=CHtml::value($closedTask,function($model) {
	return time()-$model->closed_at;
});
Ваша анонимная функция должна принимать один аргумент, который является моделью, текущее значение рассчитывается от. Эта функция может использоваться вместе с listData. Обратитесь к документации для получения дополнительной информации.

weekField() метод (доступен начиная с v1.1.16)

public static string weekField(string $name, string $value='', array $htmlOptions=array ( ))
$name строка имя поля ввода
$value строка значение поля ввода
$htmlOptions массив дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, распознаются некоторые специальные атрибуты (см. clientChange и tag для получения более подробной информации).
{return} строка сгенерированное поле ввода
Исходный код: framework/web/helpers/CHtml.php#760 (показать)
public static function weekField($name,$value='',$htmlOptions=array())
{
    
self::clientChange('change',$htmlOptions);
    return 
self::inputField('week',$name,$value,$htmlOptions);
}

Генерирует поле ввода недели.

См. также

  • clientChange
  • inputField

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

Spec-Zone.ru

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