在4.2.1中更改了表单类

时间:2012-06-17 04:02:01

标签: php user-interface frameworks atk4

使用此处记录的2列 http://agiletoolkit.org/doc/form/styling 在4.2.1中不起作用

$f->setFormClass('basic atk-form-basic-2col');

有没有办法改变?

1 个答案:

答案 0 :(得分:1)

是的,表单现在只支持“堆叠”类,它将变量放在标签上方。表单不再具有自己的布局,但它们使用默认的网格系统。例如,如果将“atk-grid”列分配给表单,则在字段集上使用“span3”可以获得垂直表单块。

如果将atk-row类分配给fieldset并在字段上使用span3,则会获得水平表单块。

设置表单类:$form->setClass('atk-row')

第一个字段集已包含在模板中,因此要更改:$form->template->trySet('fieldset', 'span4');

可以使用$form->addSeparator('span5');

设置后续字段集

个别字段类是通过$field->setAttr('class','...');

示例(基于模型的水平布局形式):

$form=$this->add('Form')->setClass('stacked');
$form->template->trySet('fieldset','atk-row');
$form->setModel('User');

foreach($form->elements as $field){
    if($field instanceof Form_Field){
        $field->setAttr('class','span3');
    }
}

// If you want to separate fields into 2 rows:
$sep=$form->addSeparator('atk-row');
$form->add('Order')->move($sep,'middle')->now();

为了简化所有这些,您可以使用自定义表单模板。在最新的Github master中查找form.html并将其与form_horizontal.html进行比较。这应该可以让您了解如何创建自己的表单布局。它不像Agile Toolkit只有一种构建表单的方法。

P.S。我已更新文档页面以发出不兼容警告。