2010-03-18 6 views
4

Je voudrais inclure du texte de l'indice dans l'étiquette d'un Zend_Form_Element, et il ne semble pas fonctionner:Subscript ou texte Superscript dans une étiquette Zend Form

$zend_form_element->setLabel('Label <sub>x</sub>'); 

Est-ce que je peux faire pour l'obtenir produire correctement sans devoir écrire manuellement le formulaire sur la page de vue? Merci pour l'aide,

Dave

Répondre

1

Essayez:

$zend_form_element->setAttribs(array('escape' => false)) 
        ->setLabel('Label <sub>x</sub>'); 

Ou au singulier:

$zend_form_element->setAttrib('escape', false) 
        ->setLabel('Label <sub>x</sub>'); 
+0

C'était proche, mais apparemment , vous devez mettre 'escape' => false sur le décorateur pour l'élément de formulaire: $ zend_form_element-> addDecorator ('Label', array ('escape' => false)); –

6

je dirais que la meilleure façon est d'obtenir décoratrice réelle de l'élément, puis définir l'option d'échappement, de ne pas ajouter un nouveau décorateur:

$zend_form_element->getDecorator('Label')->setOption('escape',false); 
+0

Cela ne fonctionne pas pour moi. Aucune des réponses ne fonctionne pour moi. Le texte pour lequel j'ai défini l'étiquette est toujours échappé. Voici à quoi ressemble mon code d'élément: http://pastebin.com/tRV9Rx0p –

+0

Ah, découvert. $ this-> setElementDecorators() a été appelé plus tard et écrasait tous mes changements. –

0

De la réponse de @ fireeyedboy, vous pouvez également effectuer les opérations suivantes directement dans votre Zend_Form:

$this->addElement(
'radio', 
'name', 
array(
    /* more settings */ 
    'attribs' => array(
     'escape' => FALSE 
    ) 
)); 
1

Vous pouvez également iT de la manière suivante:

$radioElement = new Zend_Form_Element_Checkbox('formelement_0'); 
$radioElement->setLabel('Do you accept the <a href="#">Terms &amp; Conditions</a>?'); 
$radioElement->getDecorator('Label')->setOption('escape', false);