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