1

ここに記載されているように 2 つの列を使用する http://agiletoolkit.org/doc/form/styling は 4.2.1 では機能しません

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

やり方は変わった?

4

1 に答える 1

1

はい、フォームは現在、変数をラベルの上に置く「スタック」クラスのみをサポートしています。フォームには独自のレイアウトがなくなりましたが、デフォルトのグリッド システムが使用されます。たとえば、「atk-grid」列をフォームに割り当て、フィールドセットで「span3」を使用すると、垂直フォーム ブロックが得られます。

フィールドセットに atk-row クラスを割り当て、フィールドで 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 マスターで検索form.htmlして比較してください。form_horizontal.htmlこれにより、独自のフォーム レイアウトを作成する方法がよくわかります。Agile Toolkit でフォームを作成する方法が 1 つしかないわけではありません。

ps ドキュメント ページを更新して、非互換性に関する警告を表示しました。

于 2012-06-17T08:24:22.510 に答える