Spec-Zone.ru › Yii 1.1

CFormElementCollection

Пакет system.web.form
Наследование class CFormElementCollection » CMap » CComponent
Реализует Countable, ArrayAccess, Traversable, IteratorAggregate
С версии 1.1
Исходный код framework/web/form/CFormElementCollection.php
CFormElementCollection реализует коллекцию для хранения элементов формы.

Поскольку CFormElementCollection наследуется от CMap, его можно использовать как ассоциативный массив. Например,
$element=$collection['username'];
$collection['username']=array('type'=>'text', 'maxlength'=>128);
$collection['password']=new CFormInputElement(array('type'=>'password'),$form);
$collection[]='some string';


CFormElementCollection может хранить три типа значений: массив конфигурации, объект CFormElement или строку, как показано в примере выше. Внутренне эти значения будут преобразованы в объекты CFormElement.

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

Свойство Тип Описание Определено в
count integer Возвращает количество элементов в карте. CMap
iterator CMapIterator Возвращает итератор для обхода элементов в списке. CMap
keys array список ключей CMap
readOnly boolean указывает, является ли карта только для чтения. CMap

Общественные методы

Метод Описание Определено в
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__construct() Конструктор. CFormElementCollection
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
add() Добавляет элемент в коллекцию. CFormElementCollection
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
clear() Удаляет все элементы в карте. CMap
contains() CMap
copyFrom() Копирует данные, доступные для итерации, в карту. CMap
count() Возвращает количество элементов в карте. CMap
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединенные поведения этого компонента. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединенные поведения этого компонента. CComponent
evaluateExpression() Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. CComponent
getCount() Возвращает количество элементов в карте. CMap
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getIterator() Возвращает итератор для обхода элементов в списке. CMap
getKeys() Возвращает список ключей CMap
getReadOnly() Возвращает значение, указывающее, является ли карта только для чтения. По умолчанию false. CMap
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, содержит ли событие с указанным именем прикрепленные обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
itemAt() Возвращает элемент со специфицированным ключом. CMap
mergeArray() Рекурсивно объединяет два или более массивов в один. CMap
mergeWith() Объединяет данные, доступные для итерации, в карту. CMap
offsetExists() Возвращает, существует ли элемент в указанном смещении. CMap
offsetGet() Возвращает элемент в указанном смещении. CMap
offsetSet() Устанавливает элемент в указанном смещении. CMap
offsetUnset() Удаляет элемент в указанном смещении. CMap
raiseEvent() Вызывает событие. CComponent
remove() Удаляет указанный элемент по ключу. CFormElementCollection
toArray() CMap

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

Метод Описание Определено в
setReadOnly() Устанавливает, является ли этот список только для чтения CMap

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

__construct() метод

public void __construct(CForm $form, boolean $forButtons=false)
$form CForm объект формы, владеющий этим набором элементов
$forButtons boolean указывает, используется ли этот набор для хранения кнопок.
Исходный код: framework/web/form/CFormElementCollection.php#41 (показать)
public function __construct($form,$forButtons=false)
{
    
parent::__construct();
    
$this->_form=$form;
    
$this->_forButtons=$forButtons;
}

Конструктор.

add() метод

public void add(mixed $key, mixed $value)
$key mixed ключ
$value mixed значение
Исходный код: framework/web/form/CFormElementCollection.php#57 (показать)
public function add($key,$value)
{
    if(
is_array($value))
    {
        if(
is_string($key))
            
$value['name']=$key;

        if(
$this->_forButtons)
        {
            
$class=$this->_form->buttonElementClass;
            
$element=new $class($value,$this->_form);
        }
        else
        {
            if(!isset(
$value['type']))
                
$value['type']='text';
            if(
$value['type']==='string')
            {
                unset(
$value['type'],$value['name']);
                
$element=new CFormStringElement($value,$this->_form);
            }
            elseif(!
strcasecmp(substr($value['type'],-4),'form'))    // a form
            
{
                
$class=$value['type']==='form' ? get_class($this->_form) : Yii::import($value['type']);
                
$element=new $class($value,null,$this->_form);
            }
            else
            {
                
$class=$this->_form->inputElementClass;
                
$element=new $class($value,$this->_form);
            }
        }
    }
    elseif(
$value instanceof CFormElement)
    {
        if(
property_exists($value,'name') && is_string($key))
            
$value->name=$key;
        
$element=$value;
    }
    else
        
$element=new CFormStringElement(array('content'=>$value),$this->_form);
    
parent::add($key,$element);
    
$this->_form->addedElement($key,$element,$this->_forButtons);
}

Добавляет элемент в коллекцию. Этот метод переопределяет родительскую реализацию, чтобы гарантировать, что в этой коллекции хранятся только массивы конфигурации, строки или объекты CFormElement.

remove() метод

public void remove(string $key)
$key string имя элемента, который нужно удалить из коллекции
Исходный код: framework/web/form/CFormElementCollection.php#107 (показать)
public function remove($key)
{
    if((
$item=parent::remove($key))!==null)
        
$this->_form->removedElement($key,$item,$this->_forButtons);
}

Удаляет указанный элемент по ключу.

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

Spec-Zone.ru

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