Přístup z vlastní třídy k presenteru
- kejlicz
- Člen | 201
Zdravím všechny.
Opět jsem se při své snaze proniknout do Nette zasekl na věci, kterou nevím jak řešit. Asi to bude mými mezerami v OOP.
Když generuji link v presenteru
$this->link("homepage:default");
tak je to ok. Jak docílím toho, abych mohl funkci link použít i ve své vlastní třídě, kterou presenter používá?
Díky
Martin Kejzlar
- kejlicz
- Člen | 201
Díky za reakci. Taky si myslím, že to mám na 99% blbě vymyšlené. Teprve se rozkoukávám a zkouším, jak řešit určité požadavky.
Popíšu svůj původní záměr:
Mám třídu menu a druhou třídu, která se mi stará o práci s názvy
okresů (skloňování, sousední okresy, URL tvary atd.). Třída Menu by
v jedné funkci pomocí určitého postupu a třídy Okresy, vytvořila HTML
kód a ten by se poslal z presenteru do šablony. Tudíž potřebuju
v třídě Menu použít link().
S komponentama jsem si již taky hrál, ale pokud jsem to pochopil, komponenta odkazuje na signály a já potřebuju odkázat na akci.
- jiri.pudil
- Nette Blogger | 1032
Komponenta je ale zakotvená v komponentovém stromu, na jehož vrcholu je presenter. Takže se z komponenty k presenteru snadno dostaneš:
$this->getPresenter()->link("Homepage:default");
V šabloně pak funguje makro plink
:
{plink Homepage:default}