Získání komponenty presenteru z komponenty

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

function createComponentOne($name) {
        $component = new One();
        return $component ;
}
function createComponentTwo($name) {
        $component = new Two();
        return $component ;
}

Vytvarim v presenteru 2 komponenty. Nasledne bych chtel v sablone komponenty One pouzit neco jako {control two} – vytvoreni komponenty Two v komponente One, ale aby obe byly definovane v presenteru

je to mozne? diky

jtousek
Člen | 951
+
0
-

Připadá mi to jako blbost. Pokud komponenta A potřebuje v sobě vykreslit komponentu B tak nevidím důvod dávat komponentu B do presenteru, může si ji klidně vytvořit komponenta A. ⇒ Proč je chceš v presenteru obě?

simPod
Člen | 383
+
0
-

protoze komponentu B (umistena v basepresenteru) vykresluju nekolikrat i v jinych presenterech, ktere dedi Basepresenter, tak mi prislo hloupe ji psat vickrat

jtousek
Člen | 951
+
0
-

Co bys psal vícekrát není ta komponenta ale jen továrnička což je imho v pořádku.

simPod
Člen | 383
+
0
-

jo to je vlastne pravda. pak mam ale jeste podobnej priklad kde vytvarim v tovarnicce formular

takze v tom dalsim pripade se komponenta A = komplikovany formular, ktery chci vykreslit jak v komponente B tak v par presenterech

jtousek
Člen | 951
+
0
-

Tak si ten formulář udělej jako samostatnou třídu poděděnou od Nette\Forms\Form, respektive nějakého vlastného BaseForm a definici formuláře měj až v té třídě. Továrnička bude volat pouze new což není problém mít na více místech.

simPod
Člen | 383
+
0
-

mno dobra, to by slo. diky