2010-04-30 6 views
1

avec ce morceau de codeComment puis-je ajuster la position d'une étiquette pour un élément radio de forme zend?

$feOnline = New Zend_Form_Element_Radio('online'); 
$feOnline->setValue($article->online) 
     ->addMultiOptions(array(0=>'offline', 1=>'online')) 
     ->setLabel('Online'); 

ce html est généré

<dd id="online-element"> 
<label for="online-0"> 
    <input type="radio" checked="checked" value="0" id="online-0" name="online">offline 
</label><br> 
<label for="online-1"><input type="radio" value="1" id="online-1" name="online">online 
</label> 
</dd> 

Cependant, je ne veux pas la balise d'entrée à l'intérieur de l'étiquette-étiquette. Pas besoin de "
" non plus ...

Quels décorateurs dois-je ajouter pour obtenir cette sortie?

<dd id="online-element"> 
    <input type="radio" checked="checked" value="0" id="online-0" name="online"><label for="online-0">offline</label> 
    <input type="radio" value="1" id="online-1" name="online"><label for="online-1">online</label> 
</dd> 

Répondre

1

Si vous utilisez par défaut Zend_View_Helper_FormRadio vous ne pouvez pas changer la radio bidirectionnelle est rendue.
Le code est le suivant (ligne 159)

// Wrap the radios in labels 
$radio = '<label' 
     . $this->_htmlAttribs($label_attribs) . ' for="' . $optId . '">' 
     . (('prepend' == $labelPlacement) ? $opt_label : '') 
     . '<input type="' . $this->_inputType . '"' 
     . ' name="' . $name . '"' 
     . ' id="' . $optId . '"' 
     . ' value="' . $this->view->escape($opt_value) . '"' 
     . $checked 
     . $disabled 
     . $this->_htmlAttribs($attribs) 
     . $endTag 
     . (('append' == $labelPlacement) ? $opt_label : '') 
     . '</label>'; 

Aucune configuration est en place pour changer la logique. Pensez à la raison pour laquelle vous VRAIMENT besoin de changer la façon dont il est rendu, essayez d'utiliser CSS pour le style de la sortie par exemple.
Si vous concluez, vous besoin de pour changer le rendu, créer votre propre assistant d'affichage et l'utiliser à la place de celui par défaut.