Divné vyhodnocení relativních cest
- Vox
- Člen | 5
Zdravím,
potřeboval bych poradit v jedné maličkosti. Mám routu:
$router[] = new Route('<page=default>[/<id>]', 'Homepage:default');
a pokud měním <page>, všechno běží, jak má. Ale když mám třeba stránku aktuality a nastavím <id> (‚rozkliknu‘ aktualitu), všechny relativní cesty, které mám v presenteru se odkazují, jako bych byl ve složce aktuality (což mi dělá poměrně bordel). Potřebuju totiž načíst galerii ze složky, ale jakmile rozkliknu detail, prohledá se správná složka, ale obrázky se hledají místo v root/img/gallery v root/aktuality/img/gallery.
Omlouvám se za trochu obšírnější popis a předem díky za každou
radu!
(Jestli se to tady už někde řešilo, tak bych poprosil odkaz.)
- Jan Tvrdík
- Nette guru | 2595
Vox wrote:
všechny relativní cesty, které mám v presenteru
Dej příklad relativní cesty v presenteru.
- Vox
- Člen | 5
Jde mi o tohle (zjednodušeně):
Presenter:
class HomepagePresenter extends BasePresenter {
public function renderDefault() {
$this->template->gallery = DirectoryModel::GetContent( "./img/gallery" );
}
}
Model:
class DirectoryModel {
$result = array();
static public function GetContent( $directory ) {
// Otevre adresar $directory a zjisti obsah: foreach ($dir as $item)
array_push( $result, "$directory/$item" );
}
return $result
}
Když se mi obsah složky vrátí, jsou to položky ve stylu:
- ./img/gallery/group1.jpg
- ./img/gallery/group2.jpg
- ./img/gallery/group3.jpg
Ale protože aktualní stránka je např. root/aktuality/3, vyhodnotí se relativní cesta jako:
- root/aktuality/img/gallery/group1.jpg
- root/aktuality/img/gallery/group2.jpg
- root/aktuality/img/gallery/group3.jpg
Jestli jsem se ale s tou relativní cestou v presenteru sekl (jakože teď vidím, že to nejspíš nebylo nejšťastnější pojmenování), sorry.