phpbar.de logo

Mailinglisten-Archive

[php] Re: verzeichnisse einbinden unter smarty

[php] Re: verzeichnisse einbinden unter smarty

Thomas Gigold listen at gigold.de
Die Sep 28 17:15:59 CEST 2004


Hallo.

> /* Bis hierhin ist alles i.O. ;-) */
> 
> /* Und das hier wird dann gar nix mehr: */
> 
> class MySmarty extends Smarty {
>       function MySmarty()     {
>                $this->Smarty();
>                         $this->template_dir = DOC_ROOT."/templates/";
>                         $this->compile_dir = DOC_ROOT."/_smarty/templates_c/";
>                         $this->config_dir = DOC_ROOT."/_smarty/configs/";
>                         $this->cache_dir = DOC_ROOT."/_smarty/cache/";          
>                 }               
>         }
> 
> komischerweise müssen die pfade aber eigentlich alle korrekt sein,
> denn wenn ich die verzeichnisse "nicht objektorientiert" einbinde,
> klappt alles:

Äh ... DOC_ROOT ist in der Klasse vorhanden?!

Deine Mail hat zumindest von ihrem Aufbau auch einen Fehlern, und zwar 
solltest Du eine Klasse _vor_ der Initierung erweitern und dann die 
erweiterte Klasse aufrufen.

Also erst die richtige Smarty-Datei holen

require(_ROOTDIR.'/system/smarty/Smarty.class.php');

Dann deine Erweiterung
require(_ROOTDIR.'/system/smarty/MySmarty.class.php');

Und dann initalisiert Du Deine _Erweiterung_; nicht Smarty!
$smarty = &new MySmarty;

Und dann legst Du Deine Template-Ordner fest ...
$smarty->template_dir = 'templates/hermes/';

(Deine Mail zumindest impliziert die falsche Reihenfolge Deiner 
Anstrengungen).


Abgesehen davon erschliesst sich mir gerade so überhaupt nicht, warum Du 
die Template-Ordner innerhalb einer Klasse definieren willst???



Thomas

php::bar PHP Wiki   -   Listenarchive