Redraw snippetu, nebo i celé stránky

Damo
Člen | 54
+
0
-

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)

Ozzrel
Generous Backer | 51
+
0
-

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
			}
Pepino
Člen | 245
+
+1
-

Řekl bych, že do šablony v těch modulech A, B musíš dostat zbytek šablony z toho defaultního modulu.

Damo
Člen | 54
+
0
-

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)

Damo
Člen | 54
+
0
-

tak vyreseno tim, ze jsem do @layout.latte modulu A a B, vlozil parent templatu z homepage, ktera mi vykresli i cely obsah webu
{layout '../../Presenters/templates/@layout.latte'}

Editoval Damo (8. 4. 2022 16:49)