Úprava cesty k templates + Úprava basePath + Úprava Presenter

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

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
+
0
-

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
+
0
-

froggy napsal(a):

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.

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 funkce formatLayoutTemplateFiles a formatTemplateFiles ještě vložit nastavení $dir na adresář, 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)