Центр документации
Карта сайта

Создай визитку сам!


Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »


Форма - создание формы со вкладками

Имеется возможность вставить на форму переключаемые области, выполненные в виде вкладок. Для этого сначала нужно зарезервировать на форме область под вкладки. 

$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'));
 
        // Add tabs
        $this->addTabContainer('tabset');
        $this->addTab('info', 'tabset', self::TAB_STATE_ACTIVE);
        $this->addTab('contacts', 'tabset',self::TAB_STATE_COMMON,'', array('edit','show'));
 
        // Add fields on tabs
        $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();
    }
}
Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API)
 2000 – 2021 © Amiro.CMS Все права защищены.