Redraw snippetu, nebo i celé stránky
- Damo
- Člen | 56
Mám projekt s Nittro. Potřeboval bych nějak vyřešit, aby se mi při požadavku na přesnou adresu vykreslil celý web, nikoliv jen snippet.
Resp.
https://nejaka-domena.cz/
mi vykresli web, kdyz tam kliknu na menu A (url https://nejaka-domena.cz/a), tak se mi prekresli snippet
přes ajax (nějaký div), stejně podobně jako menu B (url https://nejaka-domena.cz/b).
Tak a teď potřebuji vyřešit, že když user přistoupí rovnou na adresu https://nejaka-domena.cz/b,
aby mi web vykreslil i ten zbytek, ne jen ten snippet pro menu B. Jak docílit
toho, aby mi vykreslil i obsah webu jako na https://nejaka-domena.cz/ ?
Ještě doplním, že obsah těch menu A nebo B, je vlastní Module s vlastím BasePresenterem, kde umím rozlišit požadavek, zda jde o ajax, tedy požadavek na překreslní snippetu, popř. přímý přístup uživatele, ale co tam dát, aby se mi vykreslil i obsah homepage presenteru a k tomu pokracoval s obsahem Menu B
public function startup() {
if (!$this->isAjax()) {
// přímý požadavek url https://nejaka-domena.cz/b
// ??
}
parent::startup();
}
Díky
Editoval Damo (8. 4. 2022 9:48)
- Damo
- Člen | 56
Ozzrel napsal(a):
Ahoj, tam kde už teď řešíš snippet tak to pořešíš asi tak:
if ($this->isAjax()) { $this->redrawControl('a'); // tady to už máš } else { $this->redirect('Homepage:a'); // tady když to prostě přijde jako request }
Ale já nemám v homepage a. A je App\AModule\Presenters\DefaultPresenter.php s
public function actionDefault() {
...
if ($this->isAjax()) {
$this->postGet("this");
$this->redrawControl("content");
} else {
// tady redirect na Homepage:a jaksi nejde
}
}
Nějak do „else“ dostat aby vykonal jeste sablonu @layout.latte v App/Presenters/templates (včetně PHP co tu šablonu naplní) před šablonou v App/AModule/templates/@layout.latte a k ní sablona presenteru App/AModule/templates/Default/default.latte
Editoval Damo (8. 4. 2022 11:45)