Dodawanie kodu HTML do elementu Label w Zend_Form

Ostatnio musiałem dodać do elementu Label w Zend_Form kod HTML. Wydawałoby się, że nie może być nic prostszego. Niestety okazało się, że po dodaniu znaczników do etykiety, zostały one wyświetlone na stronie i wyglądało to mniej-więcej tak:

form

Niestety dokumentacja nie była zbyt pomocna w tym przypadku i trzeba było pogrzebać w kodzie frameworka. Rozwiązanie okazało się równie banalne jak sam problem. Wystarczyło ustawić opcję escape w dekoratorze Label na false:

$text = new Zend_Form_Element_Text('text');
$text->setLabel('<b>Etykieta</b>');
$this->addElement($text);
$text->addDecorator('Label', array('escape' => false));

W efekcie uzyskałem pożądany efekt:

form2

  1. wydajniej zakomentować linijkę

  2. Jaką linijkę? Jeśli jest jakiś lepszy sposób, chętnie go poznam.

  3. Dzięki, właśnie tego cały wczorajszy dzień szukałem a tu pyk i znalazłem, super przyda się jak nie wiem, ponieważ na co dzień nie programuje w Zendzie miałem jakieś drobne poprawki wprowadzić i się niezmiernie z tym męczyłem. :)

  4. ~piotrooo
    Cieszę się, że mogłem pomóc :)

  5. Tego typu efekty powinny być dodane w CSS. Np:
    label{font-weight:bold;}
    Html-a bym w to nie mieszał ;)

  6. ~bapro
    Masz rację. Takie rzeczy powinny być załatwiane w CSS. Znacznika b użyłem jako przykładu. Równie dobrze mógłby to być span, czy sup.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting