2009-12-03 8 views
1

je dois décorer à Zend_Form_Element_MultiCheckbox dans une liste non ordonnée, je peux obtenir chaque surround point par <li>, en mettant setSeparator à </li><li> et l'étiquette HtmlTag à <li>décoration Zend_Form_Element_MultiCheckbox dans une liste non ordonnée

Je viens de me trouver quoi que ce soit à mettre le <ul> autour de cette liste, quelqu'un en mesure de me diriger dans la bonne direction?

Merci pour la lecture (Mon code est inférieure)

$interests = new Zend_Form_Element_MultiCheckbox('foo'); 
    $interests->setSeparator('</li><li>'); 

    foreach ($interestsTable->findForSelect() as $interest) { // For earch interest add an option 
     $interests->addMultiOption($interest->interest_id, $interest->interest); 
    } 

    // Decorate the interests 
    $interests->setDecorators(array(
    array('ViewHelper'), 
    array('label', array(
    'tag' => 'span' )), 
    array('HtmlTag', array(
    'tag' => 'li', 'class' => 'interestOption')) 
)); 

Répondre

1

Je ne peux pas te donner un code qui fonctionnera sur le dessus de ma tête, mais, à la lecture des documents, il est clair que vous pouvez réutiliser les décorateurs autant de fois que nécessaire. Vous avez juste besoin de spécifier un nouveau nom pour eux.

Regardez: , en particulier la section intitulée "Utilisation de plusieurs décorateurs du même type".

Sur cette base, le ci-dessous pourrait fonctionner (mais je l'ai pas testé, il pourrait être dans le mauvais ordre ou quoi que ce soit):

$interests->setDecorators(
    array(
     array('ViewHelper'), 
     array('label', array('tag' => 'span')), 
     array('HtmlTag', array('tag' => 'li', 'class' => 'interestOption')), 
     array(
      'decorator' => array('LiTag' => 'HtmlTag'), 
      'options' => array('tag' => 'ul') 
     ) 
    ) 
); 
+0

Merci qui a travaillé un régal - je reçois ce qui se passe le trop – Timmeh