Úprava cesty k templates + Úprava basePath + Úprava Presenter
- SontoEremo
- Člen | 341
Zdravím Vás,
Rád by som poprosil tých skúsených (keďže som začiatočník) s malou pomocou možno aj trochu väčšou.
Môj hosting je Websupport
PHP Verzia 5.3
Nette Verzia 2.0.10
Takže mám štruktúru webu takúto:
----- /web ← // Halvná zložka u hostingu..
------- /mojweb ← // Uložený Nette Framework
--------- /data
----------- /log
----------- /temp
--------- /includes
----------- /app
----------- /libs
------------- /Nette
--------- /templates
----------- /theme1
------------- /assets
--------------- /css
--------------- /js
--------------- /images
------------- /Homepage
------------- /Sign
------------- /@layout.latte
----------- /theme2
------------- /assets
--------------- /css
--------------- /js
--------------- /images
------------- /Homepage
------------- /Sign
------------- /@layout.latte
--------- /www_page
----------- /index.php
--------- /.htaccess
O čo mi ide? ide mi o to aby mi zobralo šablóny z root adresára
templates/nazovzlozky/@layout.latte ako keby boli
uložné v /app/templates/…
Snažil som sa v Presenter.php zmeniť ‚formatLayoutTemplateFiles‘ a
‚formatTemplateFiles‘ kde sú cesty
($dir/templates/$presenter/@$layout.latte) na
($dir/templates/vp_default/$presenter/@$layout.latte)
Ale márne vždy mi to vyhodilo iba Error 500, prosím ako
zmeniť cestu aby mi bralo šablóny v tej zložke? kde si ju uložím?
2 pomoc:
Tu by som už naozaj potreboval tých skúsenejších
čo sa týka zložky templates/nazovzlozky/@layout.latte
rád by som docielil toho aby si to zistilo názov tej zložky pri ktorej musí
byť predpona „vp_“ čiže výsledok by bol
templates/vp_nazovzlozky/@layout.latte ak by bolo iba
templates/nazovzlozky/@layout.latte bralo by sa to ako
keby tam zlozka nebola s tým, že by sa dalo medzi tymi zložkami prepínať
čiže
vp_nazovzlozky1–alebo--\\vp_nazovzlozky2–alebo--\\vp_nazovzlozky3
3 pomoc:
Ak mám v templates/nazovzlozky/assets/css/styles.css
templates/nazovzlozky/assets/images/favicon.ico
templates/nazovzlozky/assets/js/jquery.js
a v @layout.latte mám {$basePath}/assets/css/styles.css
{$basePath}/assets/images/favicon.ico
{$basePath}/assets/js/jquery.js
Absolútne mi to nereaguje myslím ten {$basePath} ak sa
pozriem do zdrojového kódu napr. firefox tak mám cestu len ako
/assets/css/styles.css atď…
Čo je samozrejme nefunkčné keďže potrebujem cestu
templates/nazovzlozky/assets/css/styles.css viem, že to
môžem tam dať natvrdo no ide mi o to, že
potrebujem aj to aby sa mi načítala cesta napr.
{$basePath}/{nazovzlozky}/assets/css/styles.css
Ospravedlňujem sa ako som sa nevyjadril presnejšie no neviem to presnejšie
napísať :)
Ale som vopred vďačný za každú radu,pomoc,návod,nakódovanie atď…
- froggy
- Člen | 17
Ad 1) V proměnné $dir
je standardně cesta do
/app/templates/. Takže je potřeba do funkce
formatLayoutTemplateFiles
a formatTemplateFiles
ještě vložit nastavení $dir
na adresář, kde se budou
nacházet šablony.
Ad 3) Asi bych to řešil tak, že v presenteru zjistím použitý template
a do šablony předám cestu ke složce, kde se nachází. V šabloně by pak
bylo například {$templatePath}/images/favicon.ico
.
- SontoEremo
- Člen | 341
froggy napsal(a):
Ad 1) V proměnné
$dir
je standardně cesta do /app/templates/. Takže je potřeba do funkceformatLayoutTemplateFiles
aformatTemplateFiles
ještě vložit nastavení$dir
na adresář, kde se budou nacházet šablony.
Nazdar vďaka za odpoveď…
Čo sa týka tej cesty k templates tak som poupravoval
formatLayoutTemplateFiles a formatTemplateFiles
Kde :
$dir = dirname($this->getReflection()->getFileName());
$dir = is_dir("$dir/templates") ? $dir : dirname($dir);
Som zmenil na toto:
$dir = $_SERVER['DOCUMENT_ROOT']; //dirname($this->getReflection()->getFileName());
$dir = is_dir("$dir/templates") ? $dir : dirname($dir);
Som si 100% istí, že to nie je správne aj keď to síce funguje …
froggy napsal(a):
Ad 3) V proměnné
$dir
je standardně cesta do/app/templates/
. Takže je potřeba do funkceformatLayoutTemplateFiles
aformatTemplateFiles
ještě vložit nastavení$dir
naadresář
, kde se budou nacházet šablony.
Ospravedlňujem sa ale nerozumiem zadaniu Ako zistiť v presenteru
použitie template a do šablóny predať cesku k zložke?
tak aby zadaním do @layout.latte stačilo
{$templatePath}/images/favicon.ico.
a pekne by sa to vypísalo napr. pri náhľade do zdrojového kódu
templates/nazovzlozky/assets/images/favicon.ico
Editoval SontoEremo (13. 3. 2013 16:19)