Страница 1 из 1

Создание собственного элемента формы.

Добавлено: 2011.07.07, 13:26
gshadrin
Здравствуйте.
В Yii для упрощения процесса создания форм предоставляются классы помощники (helper). Например, для создания текстового поля, можно вызвать метод CHtml::textField(), для выпадающего списка — CHtml::dropDownList(). Помимо того возможно использование "построителя форм". Тогда используются классы CFormButton и CFormInputElements унаследованные от CFormElement.
Вопрос. Возможно ли использование собственных элементов формы (не стандартных)? Как мне кажется для этого необходимо добавить в CHtml методы для отрисовки этого элемента и добавить собственный type с необходимыми методами в CFormInputElements. Достаточно ли этого? Необходимо ли где-то еще прописать новый элемент?
Возможно существуют примеры, рецепты по созданию собственных элементов? Возможно кто-то делал что-то подобное? На верном ли я пути?
Заранее спасибо.

Re: Создание собственного элемента формы.

Добавлено: 2011.07.07, 13:33
BuCeFaL
gshadrin писал(а):Здравствуйте.
В Yii для упрощения процесса создания форм предоставляются классы помощники (helper). Например, для создания текстового поля, можно вызвать метод CHtml::textField(), для выпадающего списка — CHtml::dropDownList(). Помимо того возможно использование "построителя форм". Тогда используются классы CFormButton и CFormInputElements унаследованные от CFormElement.
Вопрос. Возможно ли использование собственных элементов формы (не стандартных)? Как мне кажется для этого необходимо добавить в CHtml методы для отрисовки этого элемента и добавить собственный type с необходимыми методами в CFormInputElements. Достаточно ли этого? Необходимо ли где-то еще прописать новый элемент?
Возможно существуют примеры, рецепты по созданию собственных элементов? Возможно кто-то делал что-то подобное? На верном ли я пути?
Заранее спасибо.
Можно создать свой Класс помощник, править файлы фреймворка очень плохая затея.

Re: Создание собственного элемента формы.

Добавлено: 2011.07.10, 12:15
greatdane
А просто применить класс/ид к стандартным элементам недостаточно? Для этого есть же параметр htmlOptions.

Re: Создание собственного элемента формы.

Добавлено: 2011.07.10, 15:23
Johnatan
Загляните в мануал по CFormInputElement

Там написано, что
The type property can also be a class name or a path alias to the class. In this case, the input is generated using a widget of the specified class. Note, the widget must have a property called "model" which expects a model object, and a property called "attribute" which expects the name of a model attribute.
соответственно можно сделать свои элементы формы. Достаточно объявить их как отдельный класс виджета.