Latte nezpracovává makra a vykresli jen čisté html

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

Zdravím, řeším teď předělávku jedne aplikace co byla nonNette do nette, zatím vše ok, moc tam toho není, základní presentery, base presenter rozšířený o autowire přes notace a teď jsem začal převádět form do továrniček. Začal jsem u login formu, ok přepsal jsem to mimo presenter, vykreslil se, ale při subminut co běžel ajaxově se vrátila 500ka, byla tam chyba v onsubmit akci. Když jsem ale dal refresh stránky tak se neco podělalo, sign presenter se zavolá, pravděpodně i zpracuje korektně, pak to přejde na šablony a tady je konec. Správně se načte šablona presenteru, jsou v něm základní makra pro form, ale ty se nezpracují, resp žádné makro se nezpracuje a vykreslení stránky skončí v této šabloně, nedojde ani k načtení layoutu.

Puvodně jsem hledal chybu v presenteru, ale pokud z něj odstraním vše tak problém přetrvává. Když odstraním všechny změny co jsem udělal od doby kdy to šlapalo normálně postaru tak problém tam stále je. Když zavolám nějaký jiný presenter tak se normálně zpracuje a vykresli, jen tento jeden jakoby vypl latte

Nesetkal se s tím někdo? Nette je v poslední stable verzi a phpko je v 5.3 verzi.

Jen dodám že po hodině laborování mě to zpět naskočilo a form se vykreslil. Submit jsem neprováděl a po refreshi stránky se to opět rozbilo a latte zase nejde. Mazat tmp adresář jsem zkoušel, i restart serveru.

akadlec
Člen | 1326
+
0
-

Nikdo nic? Nestekali jste se s tímto problémem? Nemá nette nějakou tajnou cache? ;)

akadlec
Člen | 1326
+
0
-

Tak mě napadá, nemůže to být třeba problém nějaké špatně napsané mezery nekdě? nebo tabu? Přešel jsem totiž na NetBeansy a nějak je nemůžu donutit dělat taby jako taby, furt je to nějaké rozhašené :(

PS: v toolsech sem si vypl převod tabu na mezery.

enumag
Člen | 2118
+
0
-

Taby a mezery tohle nezpůsobí. Spíš se podívej zda ti u nějakého makra nechybí koncová závorka „}“.

Jinak bych zkoušel pokus-omyl mazat části šablon co se ještě vykreslí v pořádku a co už ne.

akadlec
Člen | 1326
+
0
-

to jsem zkoušel, nechal sem prázdnou šablonu jen s definicí bloku, nechal sem prázdý presenter bez jediné metody…vždy stejný výsledek.

enumag
Člen | 2118
+
0
-

V tom případě se ti asi nějak povedlo vypnout Latte filtr. Nejspíš něco jako přetížení getTemplate, createTemplate nebo templatePrepareFilters bez volání parent metody.

akadlec
Člen | 1326
+
0
-

No to jsem si taky myslel, jenže když tyto metody uplně vyhodím, respektive, necham to podědit nette\ui tak výsledek je stejný. když ale změním url na jiný presenter tak se vše korektně vykreslí.

Michal Vyšinský
Člen | 608
+
0
-

Tak ukaž kód problematického presenteru…

akadlec
Člen | 1326
+
0
-

tak na něm není co ukazovat když neobsahuje žádnou metodu, definici, prostě nic, prostě jen

Class SignPresenter extend BasePresenter {}
enumag
Člen | 2118
+
0
-

Fajn, takže BasePresenter + šablonu + @layout.

akadlec
Člen | 1326
+
0
-

uf…no krokovaní a hledání kde to chcípne se vyplatilo v jednom děděném presenteru byla prázdná metoda „templatePrepareFilters“ když ji vyhodím tak to jede, ovšem nechápu, protože tu mám vedle jednu pokusnou aplikaci kde tato metoda je a ta normálně jede.

Ovšem objevil se mi další problém :( Teď mě to začalo vyhazovat hlášku Cannot include undefined block ‚content‘

V šabloně presenteru mám:

{var $title = 'Dashboard'}

{#content}
	<H1>Dummy</H1>
	<h2>Welcome to the administration</h2>
{/#}

a v @layout.latte

....
{include #content}
....

Když šablonu presenteru upravím takto:

{block #content}
Blablabla

či takto:

{block content}
Blablabla

tak je hláška pořád stejná.

Jen doplním že verzi nette mám teď 2.1-dev

enumag
Člen | 2118
+
0
-

Nejspíš proto že se v té jiné aplikaci ten presenter nedědil anebo ta metoda byla přetížená ještě jednou někde dál.

Ty bloky nevim proč nefungujou. Zkus v @layout {#content}{/#}. Jo a ujisti se že se opravdu používá ta šablona a layout cos napsal a ne něco jiného.

akadlec
Člen | 1326
+
0
-

No to sem si taky myslel že se ta metoda někde jinde přetíží, jenže jsem ji našel jen na dvou místech, přímo v nette a pak v tom presenteru. Nechápu to. Tu jednoduchou appku co mam jako „sandbox“ normálně rozjedu, tu co dělám je téměř stejná, jediný rozdíl co tam je tak je ten že ja sem si tam přidal translator.

Ty bloky teda vyzkouším. Šablona presenteru by se měla používat, protože když ji vyhodím tak na mě řve že mu ta šablona chybí. To vypadá jak by ji zpracoval ale ten blok si nikde neuložil a pak mu chyběl.

Ondřej Brejla
Člen | 746
+
0
-

akadlec napsal(a):

Tak mě napadá, nemůže to být třeba problém nějaké špatně napsané mezery nekdě? nebo tabu? Přešel jsem totiž na NetBeansy a nějak je nemůžu donutit dělat taby jako taby, furt je to nějaké rozhašené :(

PS: v toolsech sem si vypl převod tabu na mezery.

<OT>Pokud vypneš Expand Tabs to Spaces (ať už globálně, jen na PHP fajlech nebo na projektu), tak je to expandovat nesmí. Pokud ano, zadej issue a popiš zreprodukovatelný case. Psát na Nette forum, že je to v NB „nějaké rozhašené“ nikomu nepomůže ;-)</OT>

akadlec
Člen | 1326
+
0
-

<OT>Tak ono to možná funguje korektně, když skočím kurzorem na začáte řádku a pak šipkou doprava tak to skáče po tabech, ale když to udělám naopak tak to skáče po mezerách, jen jsem zvyklý z jiného IDE že to po tabech skáče oběma směry. Nicméně byl to jen nápad jestli ten můj problém nahodou nesouvisí s tím a očividně asi ne.</OT>

akadlec
Člen | 1326
+
0
-

takže vyřešeno…tímto se omlouvám všem za otravování ;) v jedné metodě jsem měl překlep, to je holt to noční pogramování ;)