Dvoufázové zobrazení webu dle URL parametru (zobrazení pro web a pro inteligentní zařízení)
- fany
- Člen | 18
Mám presenter, kde mám logiku pro daný nahled.latte soubor.
Tento latte soubor je potřeba zobrazit ve 2 různých pohledech a to za
1: Plný pohled, včetně layout.latte (kde je menu, přepínače
i postranní menu)** WEB**
2: jen samotný nahled.latte soubor včetně logiky a dalších latte souborů,
které se includují do této šablony – Inteligentní zařízení
Napadlo mě použít parametr v URL kdy poslední parametr by byl identifikátor zobrazení (přepínač mezi plným a ořezaným pohledem), případně nastavit si pro daný presenter 2 routy, přičemž první by volala vše a druhá by volala jen fce které jsou potřeba.
Mám automaticky generované menu z DB a v případě druhého pohledu by nebyla potřeba jej vůbec zobrazovat a tudíž ani tahat zbytečná data z DB.
Rád bych se vyhnul řešení, kdy bych vytvořil nový presenter a
zduplikoval kod z již stávajícího jen s tím rozdílem že druhý
presenter by zobrazoval jen daný latte soubor bez omáčky
Dvoje zobrazení mám jedno pro web a druhé pro inteligentní zařízení,
které využívá jen jednu podstránku, pro zobrazení aktuálních
informací.
Výsledný pohled by měl dle parametru v URL adrese
zobrazit pouze vyhledávání a z druhého pohledu vyhledávání s prvky
menu.
aneb pokud se v URL adrese nachází parameter „1“, tak pomoci presenteru
nastavit v layout zobraz či ne.
- Joacim
- Člen | 229
Zdravím,
také by mě zajímalo jak pro jeden presenter mohu použít budto 2 templaty (jeden samotný holý a druhý vše včetně layout) případně jak napsat pro jeden presenter (jednu render metodu) 2 routy, jednu na plné zobrazení a druhou jen s template.latte bez omáčky okolo.
Stačilo by použít další parametr v URL, který by jen přepínal mezi zobrazením s a bez layout.latte, a tento parametr bych umel dostat i níže do rodičů jako je BasePresenter
Díky moc
- Joacim
- Člen | 229
CZechBoY napsal(a):
Spis bych udelal 2× render – tzn. renderDefault a renderPlain (napriklad).
V renderPlain bys mel nastaveni sablony a vypnuti layoutu.$this->setView('default'); $this->setLayout(null);
jen nezapomen, ze v layoutu nejspis vkladas css, js a tak
Tak to by problém asi nebyl, mohu si vytvořit jiný layout a ten použít jen pro ořezanou stránku včetně všech CSS a JS, problém byl v tom, že nechci duplikovat kod a ani HTML v templatu, v presenteru si dám opakující se kod do fasady, ale co u template ?
- CZechBoY
- Člen | 3608
U template si dáš opakujícíc se kod do template do bloku a ten blok
potom vyvoláš/vložíš.
https://latte.nette.org/cs/tags#…