\Nette\Forms\Container: jak přidat property na způsob setOption?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
chikeet
Člen | 160
+
0
-

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
+
0
-

ne, container je logicka cast formulare, nikoliv graficka. Pro graficke rozdeleni pouzij skupiny (addGroup).

chikeet
Člen | 160
+
0
-

@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
+
+1
-

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.

chikeet
Člen | 160
+
0
-

Skupiny se dají i zanořovat? Pokud jo, tak to půjde, ale nikdy mě nenapadlo, že by to takhle mohlo fungovat.

David Matějka
Moderator | 6445
+
0
-

Ne, zanorovat se (bohuzel) nedaji – budou pod sebou. Jak rikam, radeji to vykresli rucne ;)

chikeet
Člen | 160
+
0
-

Ok, asi to tak bude nakonec nejlepší. Vypadá to, že jsem s tou automatizací zašla už moc daleko a ve výsledku se tu snažím zatloukat hřebíky lopatou :-)