Login stránka s jiným vzhledem než celá aplikace

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Webster.K
Člen | 212
+
0
-

Zdravím všechny, chtěl bych se zeptat. Řeším jednu drobnost a to s přihlášením. Když mám celou aplikaci, tak v @layout.latte mam vzhled toho, jak celá stránka vypadá, tedy homepage/clanky a další. Teď ale řeším, jak to udělat, když chci přihlašovací stránku, která vůbec nezapadá do vzhledu stránky, potřebuju na ní mít jen přihlašovací formulář. Jak toho docílit? Když dám formulář do sign/in.latte tak je obalenej tím z @layout.latte

Pavel Kravčík
Člen | 1196
+
0
-

Dej pryč {block content} nebo definuje vlastní {layout ‚jinej.latte‘}

Webster.K
Člen | 212
+
0
-

Jako že v in.latte dám pryč {block content} a ono se to nezobrazi jako obsah v @layout.latte?

Webster.K
Člen | 212
+
0
-

A definování vlastního layoutu tak aby to fungovalo presne pro tuhle jedinou stránku se dělá jak? Zkoušel jsem hledat, ale odpověď jsem nenašel, nebo z toho co jsem teď na rychlo našel a stihl ozkoušet mi vyhodilo nějakou chybu/nebo se nenacetlo… jinak kdyz to smazu v in.latte hodí to chybu: Cannot include undefined block ‚content‘.

ali
Člen | 342
+
-1
-

Bud primo v template

{layout "layout2.latte"}

Nebo v presenteru v render metode zavolej

$this->layout("layout2.latte");
jiri.pudil
Nette Blogger | 1032
+
0
-

Případně pokud ten layout nepoužiješ už nikde jinde, můžeš napsat {layout none} a mít veškerý kód jen v té šabloně.

blaztar
Člen | 93
+
+2
-

Nebo přidej @layout.latte přímo do složky kde máš danou šablonu. Použije se ta místo té ve složce templates.

Webster.K
Člen | 212
+
0
-

Kdyz bych se tedy v presenteru rozhodl dát $this->layout(„layout2.latte“); kam to v něm napsat? přímo do třídy class SignPresenter extends BasePresenter {} když to dám to nefunguje… počítám tedy že do nějaké funkce, napadl mě beforeRender, ale to vyhodí chybu, šlo by to prosím trochu konkrétněji? Jsem opravdu začátečník a teprve tomu přicházím na kloub

Pavel Kravčík
Člen | 1196
+
0
-

Do té akce/renderu, kde vypisuješ tu zobrazenou stránku. Pokud Ti tohle není jasné, chtělo by to projet quickstart nebo zkusit postudovat OOP.

Jan Mikeš
Člen | 771
+
+1
-

ali napsal(a):

Nebo v presenteru v render metode zavolej

$this->layout("layout2.latte");

Spravne je to $this->setLayout("@neco.latte") pripadne lze vyuzit i $this->layout = "@neco.latte" diky magickym setterum.

Editoval Lexi (16. 5. 2016 13:00)

Webster.K
Člen | 212
+
0
-

když kamkoliv dám $this->setLayout(„sign“); tak mi to začne stahovat soubor který začíná: Fatal error: Maximum function nesting level of ‚256‘ reached, aborting! in C:\Program Files\VertrigoServ\www\avrt\vendor\nette\http\src\Http\Helpers.php on line 56.
pokud kamkoliv dám $this->setLayout("@sign.latte"); vyhodí to šablona nenalezena – app\presenters\templates\Sign\@@sign.latte.latte'

zkusil jsem to dat do beforeRender, do _construct :( a nic.

dokonce i když na začátek šablony dám {layout "@sign.latte"} tak to začne stahovat

Editoval Webster.K (16. 5. 2016 13:56)

Myiyk
Člen | 321
+
0
-

{layout none}
Na začátek souboru. A dej tam celé html.

Jan Mikeš
Člen | 771
+
0
-

Ukaz jeste obsah souboru @sign.latte, protoze Maximum function nesting level of ‚256‘ reached vypada jako ze se ti nekde neco zacykli, pripadne sem posli vice kodu z obou sablon.

AdamVyborny
Člen | 36
+
0
-

Do SignPresenter.php dej

protected function beforeRender()
	{
		parent::beforeRender();
		$this->setLayout(FALSE);
	}