Globalna sablona pre vsetky stranky
- d4ncul
- Člen | 41
Caute. Mam myslim si jednoduchu otazku, ktoru ale akosi neviem rozlusknut. Ide o toto. Mam databazu udalosti, ktore ale roznymi sposobmi filtrujem a vystup by som potreboval nasmerovat vzdy na urcitu sablonu.
Odkazy:
$this->template->menuItems = array(
'Úvod' => 'Homepage:',
'Zajtra' => 'Homepage:tomorrow',
'Pozajtra' => 'Homepage:afterTomorrow',
'Víkend' => 'Homepage:weekend', ... a tak dalej
Homepage presenter:
class HomepagePresenter extends BasePresenter {
public function renderDefault() {
$this->template->events = $this->eventsRepo->getActualEvents();
}
public function renderTomorrow() {
$this->template->events = $this->eventsRepo->getTomorrowEvents();
}
public function renderAfterTomorrow() {
$this->template->events = $this->eventsRepo->getAfterTomorrowEvents();
}
Momentalne mam pre kazdu metodu rovnaku sablonu … ako sa da spravit to, aby som premennu events posielal iba do jednej sablony? Napr. default.latte
DAKUJEM
Editoval d4ncul (25. 8. 2014 14:54)
- David Kudera
- Člen | 455
Spíš bych si na to udělal samostatnou komponentu, podle tohoto návodu.
Jestli to je všude, tak si createComponent_NECO_
dáš do base
presenteru a v šabloně budeš mít jen to {control _NECO_}
.
No a pokud to máš ve více šablonách samostatně, tak taková věc bude
nejspíše patřid do @layout.latte
a ne do jednotlivých
šablon.
- d4ncul
- Člen | 41
Zda sa mi to prilis komplikovane pre to co potrebujem.
Neslo by to nejakym obdobnym sposobom, ako su tieto zdrojaky? Jednoducho
povedane, zavolam si metodu actionWeekendEvents(), ktora mi
vrati pole objektov a toto pole si nasledne poslem do defaultnej sablony pre
HomepagePresenter, cize default.latte. Co poviete?
public function renderDefault($events) {
$this->template->events = $events;
}
public function actionWeekendEvents() {
$events = $this->eventsRepo->getWeekendEvents();
$this->redirect('Homepage:default', $events);
}
- Kori
- Člen | 73
Ahoj, tak si ty data nasetuj do property presenteru a pouzij setView().
class HomepagePresenter extends BasePresenter {
protected $events;
public function actionTomorrow() {
$this->events = $this->eventsRepo->getTomorrowEvents();
$this->setView('default');
}
public function actionAfterTomorrow() {
$this->events = $this->eventsRepo->getAfterTomorrowEvents();
$this->setView('default');
}
public function actionDefault() {
$this->events = $this->eventsRepo->getSomeDefaultData();
}
public function renderDefault() {
$this->template->events = $this->events;
}
Editoval Kori (25. 8. 2014 17:14)
- David Matějka
- Moderator | 6445
nedelej pro vsechno akci. Mej jen jednu akci – treba actionDefault a posli si tam nejaky parametr – treba „date“, dle ktereho vyberes konkretni akce