Problém se šablonou – při vkládání dalšího obsahu chyba
- polygon
- Člen | 7
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
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é.)
- Ondřej Mirtes
- Člen | 1536
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
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
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
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)