Jak pochopit dekorátory v Zend_Form za pár minut
Srpen 15th, 2008
Předpokládám, že máte již základní znalost toho, jaké dekorátory v ZF máme a jak se s nimi zachází. Neřikám, že tohle je ultra super detailní návod, ale snad vám pomůže pochopit princip.
Nejjednodušší je použít k nastavení u elementu setDecorators(), což smaže ty co sou a nastaví ty, které chceme.
jako parametr tomu pošleme array:- [1] = ‚ViewHelper‘ – ten vygeneruje samotný tag (např input), když ho pošleme ne jako string, ale jako array(‚ViewHelper‘,array()), tak v druhém parametru můžem nastavovat parametry (‚class‘=‚muj class pro element‘)
- [2] = ‚Label‘ – ten generuje popisek, opět ho můžem poslat arrayem a u něj je nutno upozornit na ‚placement‘=‚append|prepend‘, který určuje, jestli bude připojen před nebo za element.
- [3] = ‚HtmlTag‘ – zajímavým parametrem je ‚tag‘, který určuje, který tag bude tento dekorátor reprezentovat (např. div), a také placement = ‚null|prepend|append‘ – když null, tak se obsah obalí.
- [4] = ‚Errors‘ – vykreslí chyby jako UL – nezkoumal bych jak to udělat jinak – takhle je to dost dobré, CSS zvládne zbytek
- [5] = ‚Description‘ – je delší popis elementu (opět parametry tag, placement, class)
- vykresli tag input s classem ‚muj class pro element‘
- vykresli label, kterej podle ‚placement‘ dej před nebo za to, co si získal v minulém kroku
- udělej tag (zde div) a podle placement ho a) obal b)dej před c) dej za obsah z předchozího kroku
- vykresli chyby do UL a (defaultně) je připoj za obsah z předchozího kroku
- podobně i s Description (jen je tag P, myslím defaultně)
U formu postupujdeme velmi podobně ;) Třeba na tabulku bysme použili:
array(
‚ViewHelper‘,
array(‚HtmlTag‘,array(‚tag‘=>‚table‘))
‚FormElements‘ );
Home
Srpen 5th, 2009 at 19.19
Děkuju! Konečně někdo rozumě popsal jak to funguje. Proč to takhle není někde v dokumentaci to by mě zajímalo. Jednoduché, přehledné výstižné.