Имеется возможность вставить на форму
переключаемые области, выполненные в виде вкладок. Для этого сначала
нужно зарезервировать на форме область под вкладки.
$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();
}
}
|