Jump to content
Sign in to follow this  
k00ni

Ein paar Smarty-Fragen

Recommended Posts

1.) Fehlerhaftes Setzen von Variablen im Template?


Ich habe in einer config.inc.php ein paar Variablen belegt, welche die Ordner - und URL-Pfade zu wichtigen Ordnern darstellen.


Hier ein Auszug:

 

template_dir = $S_friends_admin_tpl_dir;

// URL-Pfade in der Smartyklasse registrieren.
$In_friends_smarty->assign('S_friends_url',             $S_friends_url);
$In_friends_smarty->assign('S_friends_images_url',      $S_friends_images_url);
?>

 

In der php-Datei, welche das Template einbindet, steht nur

 

display('admin.tpl');

// Bindet die fuss.php ein.
require($pdir_admin.'/fuss.php');

?>

 

Diese bindet eine tpl-Datei die auszugsweise folgenden Inhalt hat:

 


 

Wiso meckert er dann rum?


Fatal error: Smarty error: [in admin.tpl line 9]: syntax error: unrecognized tag 'S_friends_images_url' (Smarty_Compiler.class.php, line 590) in /srv/www/htdocs/web18/html/testsystem/psys/lib/smarty/Smarty.class.php on line 1092


Er bekommt scheinbar Bauchweh wegen der {S_friends_images_url}. Aber warum? Die wurde doch in der config.inc.php sauber gesetzt und registriert. :=(





2.) Wie wird die Sprachdatenbank angebunden?


Die Klasse SmartyMLDB ist ja abgeleitet von der Smarty-Klasse und ganz schön erweitert wurden. Wenn ich nun eigene Language-Tags nutzen will, wie gehe ich dann vor? Es soll für jedes Plugin meines Modules eine eigene Sprachtabelle angelegt werden. Wie regelt das nun das pSys und wo wird dies implementiert? Ich verstehe nicht, wo die Daten aus der Tabelle ihren Weg zu den Konstanten finden.





3.)Wie läuft das mit der Kompilierung und der Abfrage der Datenbank ab?


Ich habe eine Seite. Die wird aufgerufen. Dabei kompiliert mir Smarty die Seite und legt sie ab (wo?). Dann greift ein anderer User drauf zu. Werden nun alle Datenbankabfragen wieder ausgeführt? Müssten sie ja theoretisch, da sie vor dem $smarty_klasse->display stehen. Oder wie erkennt dass Skript, dass es nicht den Kram ausführen muss?





Habe gerade mal etwas herum gespielt. Sehr interessant. Wird sich sicher in viel Arbeit niederschlagen, hier alles umzustellen :-o

Share this post


Link to post
Share on other sites

Zu 2: Es gibt nur "eine Sprachdatenbank". Du musst hier weiter nichts tun als deine Tags in deinen Templates setzen. Du kannst gleiche Tags benutzen wie schon vorhanden sind, aber auch komplett eigene. Ich benutze den Prefix PL, du könntest einen anderen nutzen, macht aber kaum Sinn, da du ja ebenfalls an den überwiegenden Stellen die selben Wörter benutzt wie das pSys selbst. Würde also nur sinnlos die Datenflut verdoppeln.



Zu 3: Die kompilierten Templates werden in cache/smartycompile abgelegt. Diese werden nur neu kompiliert und übersetzt wenn sich das Template selbst ändert! Ansonsten fasst Smarty dort nichts wieder an. Daher benötigt die Multilanguage Geschichte dann "NULL" Ressourcen

Share this post


Link to post
Share on other sites

zu 2.) Ja, dass wäre der erste Weg gewesen, aber ich möchte irgendwann eine Pluginstruktur implementieren und da ist es zur Laufzeit nicht bekannt, wer wann welchen Plugin verwendet. Wenn dann nun jedes Plugin in eine gemeinsame Tabelle schreibt, dann wird das sehr aufwendig dies zu warten. So hat jedes seine eigene Tabelle. Dinge, die sich überlappen, werde ich natürlich aus dem pSys übernehmen.


zu 3.) Verstehe ich das richtig? Also nur wenn ich in der tpl-Datei etwas anpasse, dann wird das Ding neu kompiliert? Wenn sich also in der Datenbank etwas ändert, bleibt das Template trotzdem so? Kann es da nicht vokommen, dass es einige Zeit dauern kann bis die "neusten" Daten "sichtbar" sind ?

Share this post


Link to post
Share on other sites

Smarty ist richtig geil. Habe jetzt die letzten Tage damit gearbeitet und bin gut reingekommen. Die implementierte Sprachimplementierung ist auch hammer, man braucht sich um nüscht zu kümmern. Ich setze nur die Konstante, packe meinen HTML-Code rein und der macht alles allein. Sehr geil, so muss das sein. :-o

Share this post


Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...