oldLayoutMode VS současný stav

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

Nejsem zase až tak zdatný v Nette, takže mám dotaz. Mám fungující aplikaci, kterou jsem napsal kdysi, myslím úplně běžným způsobem. Nahradil jsem v ní verzi Nette za aktuální, a všechno v pohodě funguje. Ale… v nové verzi je možné použít řekněme direktivu public $oldLayoutMode = false;, a pak celá aplikace nefunguje. Udělal by si někdo ve stručnosti čas, aby mi laicky vysvětlil, co, resp. jak se má co změnit, aby to fungovalo podle současné vize? Kde je ta hlavní změna? Děkuji mockrát.

Ondřej Mirtes
Člen | 1536
+
0
-

Je otázka, jestli se vyplatí přepisovat starou aplikaci (pokud v ní nebudou probíhat další bouřlivé změny) podle novinek v Nette.

$oldLayoutMode = false vypne starý způsob fungování šablon (který fungoval na principu @layout.phtml + {include $content} ze šablony Presenter.action.phtml) a zapne nový způsob, který pracuje na principu bloků a opačném vykreslování – doporučuji přednášku, kde David rozebírá výhody nového systému.

Petr Motejlek
Člen | 293
+
0
-

S tim souhlasim. Kdyz mam starou aplikaci a funguje mi s novym Nette, tak je to super. Otazka je: Potrebuju to? Jestli je treba k te aplikaci neco pripsat a ve stare verzi Nette pro to neni podpora, to je chvile pro prepsani vseho na novou verzi, jindy ne.

toka
Člen | 253
+
0
-

Tak nebo tak, stejně se budu muset do tajů nových vymožeností ponořit, abych nepokulhával pozadu :-)

lactarius
Člen | 47
+
0
-

No – teď jsem se do toho slušně zamotal. Zřejmě se jedná o problém mezi židlí a klávesnicí, ale mimořádného rozsahu, protože to jsou věci, který mi u jiný aplikace fungujou (se stejnou verzí frameworku).
Jedná se o to, že se neprovede stylování.
Kus kódu šablon:

{* Front/@layout *}
.
<script type="text/javascript">
$(document).ready(function() {
	$('input:visible:enabled:first').focus();
});
</script>
.
<div id="content">
	{block content}
	{/block}
</div>

<div id="footer">
	{block footer}
		<a href="{link Login:}">login</a>
	{/block}
</div>

{* Front/Default/default *}
{block content}
	<h3>...</h3>

{* Front/Login/default *}
{block content}
	<h3>Přihlášení</h3>
	{control loginForm}
	<a href="{link register}" style="font-style: italic;">Registrace</a>

Po spuštění normálně naběhne úvodní stránka i s uvítacím blábolem. Po kliknutí na odkaz se natáhne stránka s přihlašovacím formulářem, hlava i pata z layoutu – ale jinak to hlavu ani patu nemá – proběhne v pořádku i JS, protože kurzor skočí na první pole formuláře, ve zdrojáku je normálně vidět
DTD s příslušenstvím – a provede se, protože čeština je v pořádku – všechno – pouze bez CSS.
Fakt už nevím, v čem by mohla být chyba.

Ondřej Mirtes
Člen | 1536
+
0
-

A máš správně cestu k CSS souborům? Včetně {$basePath}?

lactarius
Člen | 47
+
0
-

Ondřej Mirtes: …čoveče – to jsou věci.....
Tak dík, no – já to tušil…
Nicméně – pouze pro zajímavost zasílám podstatnou část layoutu, ve kterým byla natolik zásadní chyba, že jsem jí prostě přehlídnul. Co je nejhorší – tím to nebylo. Teď mi ale vysvětli, jak je možný, že i takto naběhla správně ta první stránka:

</head>


<div id="container">

	<div id="header">
		{block header}
		<h1>AJAX Chat</h1>
		{/block}
	</div>

	<div id="content">
		{block content}
		{/block}
	</div>

	<div id="footer">
		{block footer}
		<a href="{link Login:}">login</a>
		{/block}
	</div>

</div>

<body>


</body>
</html>

Samozřejmě vím, co je mou povinností – zítra vrátím občanku a zpátky na strom…

PetrP
Člen | 587
+
0
-

$oldLayoutMode jsem moc nepochopil, na začátku jsem ho zkoušel (možná to je už jinak ale nevypadá to). Problem je že se nastavuje v Presenteru a určuje umístění mimo jiné presenteru, ale jak má PresenterLoader vědet kde má presenter hledat?

Ondřej Mirtes
Člen | 1536
+
0
-

$oldLayoutMode zapíná pouze nové bloky. Adresářovou strukturu nastavuje myslím $oldModuleMode – ale je to pravda, nastavuje se v Presenteru a přitom určuje umístění Presenteru. Ale hlavně, že to funguje :)

PetrP
Člen | 587
+
0
-

Jasně myslel jsem oldModuleMode, nechápu jak jsem včera pochopil že se mluví o adresářích. Vypadá to jako bych reagoval do úplně jiného okna. ;]

Ondřej Mirtes napsal(a):

ale je to pravda, nastavuje se v Presenteru a přitom určuje umístění Presenteru. Ale hlavně, že to funguje :)

A skutečně to funguje?

Ondřej Mirtes
Člen | 1536
+
0
-

Funguje, používám novou adresářovou strukturu.

PetrP
Člen | 587
+
0
-

Ondřej Mirtes napsal(a):

Funguje, používám novou adresářovou strukturu.

Já taky, mluvím o tom jestli funguje přepnout na starou adresářovou strukturu. Omlouvám se za vyjadřovací (ne)schopnost.

Protože PresenterLoader k oldModuleMode nepřihlíží, ani z principu nemůže.

Editoval PetrP (21. 1. 2010 13:18)