Имеется возможность вставить на форму
переключаемые области, выполненные в виде вкладок. Для этого сначала
нужно зарезервировать на форме область под вкладки.
$this->addTabContainer('tabset');
|
Параметром является уникальное имя области, необходимое
для добавления вкладок в эту область и позиционирования других элементов
формы, относительно области вкладок.
При необходимости область вкладок можно позиционировать, задав позицию вторым параметром.
$this->addTabContainer('tabset', 'header.after');
|
Добавление вкладки в область вкладок:
$this->addTab('tabname1', 'tabset', self::TAB_STATE_ACTIVE);
$this->addTab('tabname2', 'tabset');
|
Первый параметр – уникальное имя вкладки, предназначенный для позиционирования полей внутри вкладки.
Второй параметр – имя области вкладок, в которой данная вкладка размещается.
Третий, необязательный, параметр – исходное состояние вкладки:
- AMI_ModFormView::TAB_STATE_ACTIVE – текущая, выбранная вкладка;
- AMI_ModFormView::TAB_STATE_NORMAL – обычная неактивная вкладка (по умолчанию);
- AMI_ModFormView::TAB_STATE_DISABLED – "выключенная" вкладка.
Для полей формы, вкладки можно рассматривать как секции, и добавление поля на вкладку аналогично включению поля в секцию.
$this->addField(array('name' => 'myfield1', 'position' => 'tabname1.end'));
|
Для того, чтобы назначить вкладке читаемый заголовок,
необходимо в языковом файле формы установить значения переменных
form_tab_имяВкладки.
%%form_tab_tabname1 %en%%
Tab title
%%form_tab_tabname1%ru%%
Заголовок вкладки
|
Пример
class AmiClean_AmiSample_FormViewAdm extends Hyper_AmiClean_FormViewAdm{
public function init(){
$this->addField(array('name' => 'id', 'type' => 'hidden'));
$this->addField(array('name' => 'mod_action', 'value' => 'form_save', 'type' => 'hidden'));
$this->addField(array('name' => 'public', 'type' => 'checkbox', 'default_checked' => true));
$this->addField(array('name' => 'nickname'));
$this->addField(array('name' => 'birth', 'type' => 'date', 'validate' => array('custom', 'stop_on_error')));
$this->addField(array('name' => 'email'));
$this->addTabContainer('tabset');
$this->addTab('info', 'tabset', self::TAB_STATE_ACTIVE);
$this->addTab('contacts', 'tabset',self::TAB_STATE_COMMON,'', array('edit','show'));
$this->addField(array('name' => 'about', 'type' => 'htmleditor', 'cols' => 80, 'rows' => 10, 'position' => 'info.end', 'modes' => array('editor', 'bb')));
$this->addField(array('name' => 'phone', 'position' => 'contacts.end'));
$this->addField(array('name' => 'homepage', 'position' => 'contacts.end', 'validate' => array('domain')));
return parent::init();
}
}
|