2011-07-02 6 views
3

Zend_Formを使用してフォームを出力していますが、ボタンの要素をグループ化してフィールドセットに追加しようとしています。Zend_Formを使用して複数の要素グループを1つの表示グループに追加

私が管理している最高です:2つの要素グループを2つの別々の表示グループ内にある

<fieldset id="fieldset-group1"> 
    <div class="buttons"> 
     <button name="submit_form" id="submit_form" type="submit">Submit</button> 
     <button name="cancel_form" id="cancel_form" type="submit">Cancel</button> 
    </div> 
</fieldset> 
<fieldset id="fieldset-group2"> 
    <div class="buttons"> 
     <button name="reset_form" id="reset_form" type="submit">Reset</button> 
     <button name="button_form" id="button_form" type="button">Button</button> 
    </div> 
</fieldset> 

。 DisplayGroup HtmlTag Decoratorの 'tag'オプションを 'div'に設定してこれを行いました。 2つのdivのは、一つの表示グループ内にある

<fieldset id="fieldset-group1"> 
    <div class="buttons"> 
     <button name="submit_form" id="submit_form" type="submit">Submit</button> 
     <button name="cancel_form" id="cancel_form" type="submit">Cancel</button> 
    </div> 

    <div class="buttons"> 
     <button name="reset_form" id="reset_form" type="submit">Reset</button> 
     <button name="button_form" id="button_form" type="button">Button</button> 
    </div> 
</fieldset> 

:私は達成するために探しています何

はこれです。

私はHtmlTag Decoratorで利用できる 'openOnly'と 'closeOnly'オプションを使うことができましたが、DisplayGroupsでは利用できません。

Zend_View_Helper_Fieldsetを拡張して、私が望むことをする以外に、これを行うより良い方法がありますか?

答えて

0

いつもあなたは自分のデコレータを書くことができると言います。あなたがしなければならないのは、view_helperを拡張するのではなく、独自のデコレータを書くことです。ここのデコレータはフィールドセットafaikではなく、FormElementsの内部で使用され、フィールドセットで使用されます。あなたが探しているdivを扱うデザインではないFormElementsデコレータです。

5
'decorators'=>array('FormElements', 
        array(array('divtag'=>'HtmlTag'),'options'=>array('tag'=>'div')), 
        array(array('fstag'=>'HtmlTag'),'options'=>array('tag'=>'fieldset','openOnly'=>true)), 
        ) 

openOnly/closeOnlyは、実際に私は尋ねた質問に答えるんので、あまりにも

+0

ねえDisplayGroupsで使用することができます!しかし、フィールドセットデコレータをhtmlTagデコレータに変更すると、Fieldsetビューヘルパーを使用しないため、フィールドセットに凡例を追加する機能が失われます。 – steve

+0

はい...一つの解決策は、凡例 'array( 'Description'、 'options' => array( 'tag' => '凡例'))'のような記述を使用することです。 – aditirex

+0

また、これらのグループをサブフォームにしてサブフォームにフィールドセットを適用しようとする場合があります。 – aditirex

関連する問題