Propojení presenteru se stránkou

- ondrakrajcik
- Člen | 45
Dobrý den,
mám naprosto začátečnický dotaz, možná tu už někde řešení je a tak
se omlouvám za spam, ale nemohl jsem to nikde najít. Když si chci vytvořit
nějakou proměnou tak si ji vytvořím v HomePagePresenter a v default.latte,
ji můžu vypsat, problém nastává, když si vytvořím další stránku
např. „Vypis.latte“, v HomePagePresenter si vytvořím proměnou, ale ve
Vypis.latte to hlásí, že tuto proměnou nezná. Jaký postup je srávný?
Mám si vytvořit nový presenter a pak ho nějak propojit se stránkou?
jak?
Ještě by mě zajímalo, jestli když tvořím další stránky s příponou
.latte, jeslti je mám ukládat do složky Homepage, nebo se mají
ukládat jinam.
Předem děkuji

- one-two
- Člen | 80
HomepagePresenter::actionDefault() případně
renderDefault() → templates/Homepage/default.latte
HomepagePresenter::actionVypis() případně
renderVypis() → templates/Homepage/vypis.latte
JinejPresenter::actionTest() případně renderTest()
→ template/Jinej/test.latte

- ondrakrajcik
- Člen | 45
one-two napsal(a):
HomepagePresenter::actionDefault()případněrenderDefault()→ templates/Homepage/default.latte
HomepagePresenter::actionVypis()případněrenderVypis()→ templates/Homepage/vypis.latte
JinejPresenter::actionTest()případněrenderTest()→ template/Jinej/test.latte
Díky, ale bohužel mně to nefunguje. V souboru default.latte se pomocí HomepagePresenter::promenna dostanu přímo k proměnné (metody nevidím ikdyž jsou public), ale v jiném souboru .latte, k těm proměnným prostě přístup nemám. Nemá se to nastavit v nějakém konfiguračním souboru?

- Jiří Nápravník
- Člen | 710
Proměnné public nepoužívej.
Když máš Vypis.latte, tak si v HomepagePresenter vytvoř
public function renderVypis(){
$this->template->promenna = 'Ahoj světe';
}
ve Vypis.latte k ni pak pristoupíš jednoduše
{$prommena} a to vypíše Ahoj světe.
Nicméně tohle jsou základy, tka opravdu pořádně si projdi dokumentaci a Quickstart

- ondrakrajcik
- Člen | 45
Jiří Nápravník napsal(a):
Proměnné public nepoužívej.
Když máš Vypis.latte, tak si v HomepagePresenter vytvoř
public function renderVypis(){ $this->template->promenna = 'Ahoj světe'; }ve Vypis.latte k ni pak pristoupíš jednoduše
{$prommena} a to vypíše Ahoj světe.
Nicméně tohle jsou základy, tka opravdu pořádně si projdi dokumentaci a Quickstart
Přesně tak to dělám jak jsi popsal. Ale ve vypis.latte mně to hlásí,
že promněnná neexistuje.
Když ji vypisuju v default.latte tak to v pořádku funguje.

- Jan Endel
- Člen | 1016
Neboli potřebuješ stejnou proměnnou na více stránkách, toho dosáhneš jednoduše, umístěním téhle proměnné do metody beforeRender, čili nák takto:
public function beforeRender()
{
$this->teplates->promenna = "Ahoj svete";
}
ted když ve vypis.latte nebo v default.latte (obě musí být šablony presenteru ve kterém máš metodu beforeRender) napíšeš:
{$promenna}
tak ti to vypíše Ahoj světe