\Nette\Forms\Container: jak přidat property na způsob setOption?
- chikeet
- Člen | 160
Zdravím,
je možné nějak přidat property formulářovému kontejneru? Konkrétně bych
potřebovala přidat nějaký label, např. „Položky objednávky“, pro
lepší orientaci ve formuláři, a určitě nechci formuláře vykreslovat
ručně. Obcházím to zatím přes vlastní form, který má property array
$containersData
, ve kterém si drží data kontejnerů, ale je to
dost nešikovné, zvlášť když to chci používat i pro zanořené
kontejnery. Kontejner by měl mít ta data a starat se o ně sám, když
jsou jeho.
Zkoušela jsem
$container->offsetSet('label', 'Můj super kontejner');
, ale
offsetSet u containeru přidává komponentu, takže to neprojde. Řešením by
mohlo být napsat si vlastní container, ale to mi zase nevyhovuje, když chci
používat \Kdyby\Forms\Replicator
a případně jiné doplňky.
Zkrátka potřebuju nějak přidat property standardnímu kontejneru
\Nette\Forms\Container
.
Je vůbec možné to nějak provést? Nebo na to jdu z principu blbě a měla bych pro to používat něco jiného?
Editoval chikeet (16. 4. 2015 14:54)
- David Matějka
- Moderator | 6445
ne, container je logicka cast formulare, nikoliv graficka. Pro graficke
rozdeleni pouzij skupiny (addGroup
).
- chikeet
- Člen | 160
@DavidMatějka: Groups používám taky. Mám např. group „Kontaktní údaje“ a v ní dva replicatory, první na telefony a druhý na maily. Replicator je v podstatě container a hodilo by se mi mít možnost přidat tomu containeru nějaký label, pro lepší orientaci. Když si třeba uživatel odebere všechna pole v některém z těch replicatorů, zůstane mu tam jen tlačítko Přidat, ale už neví, co se přidává…
- David Matějka
- Moderator | 6445
I tady by melo jit pouzit skupiny. Sice to bude trosku slozitejsi, jelikoz se kdyby/replicator s nima moc nekamaradi, ale taky to jde (parkrat jsem to uz tak delal). Budes muset asi rucne nastavovat currentGroup u kontejneru, pripadne ty privky rucne pridavat do skupin
ale u replicatoru radeji preferuju rucni vykreslovani.
- David Matějka
- Moderator | 6445
Ne, zanorovat se (bohuzel) nedaji – budou pod sebou. Jak rikam, radeji to vykresli rucne ;)