přístup do jiného presenteru

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

Ahoj, nemůžu nikde najít, kde se to řešilo, tak se ptám tady.
V Admin presenteru spravuju uživatele a chci je schvalovat podle toho toho, jestli mají vyplněné všechny required údaje na profilu.
Údaje na profilu se nastavují se v 8 formulářích (= 8 createComponent) v settings presenteru.

Moje kontrola spočívá v tom, že si načtu postupně ty formuláře, a prvek po prvku je procházím a když je pole required a nemá hodnotu, kontrola selhala.

Jenže tuhle kontrolu můžu dělat jenom v settings presenteru a už ne jako admin v admin presenteru. Prosím poraďte mi, jak získat přístup z admin presenteru do settings presenteru, abych mohl provést kontrolu uživatelů. Jsem zoufalý, prosím o radu.

besanek
Člen | 128
+
0
-

Proč vůbec tato kontrola? Když je něco required, tak to nelze odeslat, natož aby vznikl takto „nekompletní“ uživatel.

JHadamcik
Člen | 47
+
0
-

U inputu ve formuláři prostě nastav ->setRequired(‚This input is required.‘); a o zbytek se nette postará samo a nikdy se ti tam něco co je required a nevyplněné nedostane.

jrwm
Člen | 14
+
0
-

Smažu uživatele a za rok mě uživatel požádá, abych mu obnovil účet. Jenže mezitím se mi změnily povinné položky v profilu a potřebuji jako administrátor ověřit, jestli má vyplněny všechny povinné položky nebo ne. :)

mkoubik
Člen | 728
+
0
-

Nevím co myslíš tím „získat přístup z admin presenteru do settings presenter“, ale pokud potřebuješ ke komponentě přistupovat z více presenterů, tak její továrničku přesuň do společného předka.

BTW tohle by se mělo řešit úplně jinak (v doménové vrstvě).

Editoval mkoubik (22. 8. 2013 16:01)

jrwm
Člen | 14
+
0
-

mkoubik: jo jenže se pak z BasePresenteru stává skladiště, kam házím všechno, k čemu mám mít přístup z více presenterů. A hodit tam 8 formulářů ze settings presenteru a další tři metody se mi jako řešení nelíbí.

získat přístup z admin presenteru do settings presenteru znamená volat metody settings presenteru z admin presenteru. Které ovšem nemůžou být statické, protože createComponent nejsou statické

frosty22
Člen | 373
+
0
-

Tak tohle je hloupost, vezmi to z pohledu objektů Presenter je prostě nějaký objekt, který má nějaké stavy, metody. Sice z tohoto pohledu bys mohl mít závislost na jiném presenteru, ale tu ty ani nechceš, ty potřebuješ oddělit vytváření formuláře od presenteru, kde ho nyní vytváříš.

Případně i dalších věcí – nevím co chceš vše volat na těch metodách SettingPresenter, ale tu funkčnost těch metod si přenes do jiného objektu / jiných objektů – tak jak je to logické. A potom tyto objekty si zaregistruj jako službu do konfigu a odtud je presenterem, který je potřebuje vytáhni tj. oběma.

V podstatě veškerou logiku bys měl tahat, pokud možnost, z presenteru do vlastních tříd ven a presenter by měl jen komunikovat mezi view (= potřebou dat daných šablon) a danými službami, která tyto data budou poskytovat.