2011-02-01 13 views
0

Zend_Formのラジオ要素に問題があります。それは、ラジオボタンを除き、フォーム内のすべての要素のために働く「Zend Formラジオボタンのフォーマットの問題

$this->setElementDecorators(array(
        'Label', 
        'ViewHelper', 
        'Errors', 
        array('HtmlTag', array('tag' => 'div', 'class' => 'clearfix')), 
       )); 

いくつかの研究の後、私は入力要素が内側に配置されていることが判明:

私はフォームのデコレータを持って、それがこのです。ラベルタグを使用し、残りのフォームにはsetLabelメソッドのテキストしかありません。

私のレイアウトを台無しにしているので、そこから抜け出す方法はありますか?正しい方法。

+0

マークアップの表示方法の例を教えてください。 – Phil

答えて

0

ZF Decoratorsへようこそ、ヘルメットを入手してください。私はZFを使い始めようと思っている人に、無用、悪い、ごみ、

しかし、それらに入る!あなた自身で作成し、ラジオボタンのデフォルトの設定を無効にして、あなたのために働かせてください。 ZF Decoratorについてのこの知識がなければ、フォームのレイアウトに常に挑戦したり、ZF Decoratorが必要なときに機能しなかったためにjQueryを使用して要素を再配置したりすることになります。

要するに、ドキュメントを読み、自分で作成して楽しんでください。

0

あなたはZendRadio.phpでこれを変更できます。 159行目に行き、あなたが好きなものに変更してください。

+0

Zend_Frameworkライブラリを直接編集することはお勧めできません。この要素をあなたが望むようにレンダリングする独自の方法を作成するのがベストでしょう。 –

+0

私はちょうど私がちょうど始まったとき去年書かれたことに同意するZend: - P –

0

1つの解決策は、Zend_View_Helper_FormRadioの独自のバージョンを作成することです。 My_View_Helper_FormRadioと呼んで、カスタムプレフィックスパスをビューに追加します(これは設定ファイルで行うことができます)。

次に、内部レンダリング(ViewScriptデコレータのポイントから)を完全に制御できます。

マークアップのレンダリング方法の例を示した場合は、私は代替案を詳しく説明したり提案したりすることができます。