Problém se šablonou – při vkládání dalšího obsahu chyba

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

Zdravím.
Po delší době jsem opět zkusil Nette. Při poslední návštěvě, nevím při jaké verzi to bylo mi fungovalo to co je napsáno v QuickStart, a to že jednotlivý templaty jsem do @layout.phtml volal pomocí
`/--html
{include $content}
\--`
Když jsem to ale zkusil dnes, tak při tom na mě vyskočila Laděnka s chybou:
Missing template file ‚./app/templates/./app/templates/Default.default.phtml‘.
Co je to za chybu mi je jasný, jen nevím, jak se jí zbavit.
Určitě to bude nějaká blbina, něco jsem přehlíd nebo tak.
Jinak proměnnou
<?php $this->template->content ?>
pokud je to ona jsem nikde nevolal takže tu si nastavil takhle sám framework.
Používám PHP 5.3 + #
Nette Framework 0.8 (revision 305 released on 2009/05/06 23:15:25).
Díky za pomoc
Pavel

Editoval polygon (16. 7. 2009 11:06)

Ondřej Mirtes
Člen | 1536
+
0
-

to s tím /-- je nějaká věc z Texy, takhle se to rozhodně nikdy nedělalo :) Doporučuji zkusit

{? $content->render() }

Každopádně musíš mít v té složce /app/templates/ správnou šablonu, tedy Default.default.phtml anebo ještě v podsložce Default/default.phtml (Nette podporuje obě varianty a jsou rovnocenné.)

polygon
Člen | 7
+
0
-

LastHunter: tak nepomohlo. Chyba je pořád ta samá.
Já mám pocit, že si Nette přidává k adrese ./app/templates/.
Mno nevím docela by mě zajímalo co to dělá. Teďka se tu šťourám v Presenteru a v Templatech a zjišťuje jak je to vytváří a proč je to vytváří takhle.

Ondřej Mirtes
Člen | 1536
+
0
-

polygon napsal(a):

LastHunter: tak nepomohlo. Chyba je pořád ta samá.
Já mám pocit, že si Nette přidává k adrese ./app/templates/.
Mno nevím docela by mě zajímalo co to dělá. Teďka se tu šťourám v Presenteru a v Templatech a zjišťuje jak je to vytváří a proč je to vytváří takhle.

Mrkni na proměnné prostředí (tuším Environment::getVariable()) appDir a templatesDir.

polygon
Člen | 7
+
0
-

tak jsem do nich kouknul…
schválně jsem nechal vypsat hodnotu templatesDir.

Tam mi to vypsalo následující:

./app/templates

Tak jsem zkusil naincludovat soubor Default.default.phtml ručně pomocí šablony jako {include './app/templates/Default.default.phtml'} to nefungovalo potom jsem tam začal od začátku odmazávat tečku a lomítko a nakonec mi to začalo fungovat až na {include 'Default.default.phtml'}. No jo ale tohle je docela k ničemu :) to už pak tu šablonu nepotřebuju.
Jsem z toho jelen.

Panda
Člen | 569
+
0
-

Nebude problém v konstantě APP_DIR, která je definovaná v index.php? Proměnná prostředí templatesDir by se měla sestavovat právě podle ní a relativní cesty mohou v různých částech aplikace dělat paseku. Mělo by tam být něco takového:

<?php
	define("APP_DIR", dirname(__FILE__) . '../app');
?>

Nebo, pokud máš složku app ve složce s document_root:

<?php
	define("APP_DIR", dirname(__FILE__) . '/app');
?>

Editoval Panda (16. 7. 2009 20:21)

polygon
Člen | 7
+
0
-

Panda: to co to jak jsi říkal to nebylo ale navedlo mě to na správný řešení :)

Fígl je v tom že se nesmí použít

<?php
define('APP_DIR', dirname(__FILE__) . '/app'); //takhle mam ja tu cestu
?>

ale POZOR když jsem si vzpoměl na nnovinku PHP 5.3 a to konstantu __DIR__, takže:

<?php
define('APP_DIR', __DIR__ . '/app'); //takhle mam ja tu cestu
?>

to zázračně funguje :)

Editoval polygon (16. 7. 2009 20:18)