Neuigkeiten:

still alive...

Hauptmenü

Ein paar Smarty-Fragen

Begonnen von k00ni, 17. Februar 2008, 01:12:19

Vorheriges Thema - Nächstes Thema

k00ni

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[/quote]
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  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />

k00ni

zu 1.) Hat sich erledigt. Ich habe das \"$\" irgendwie ignoriert.  /uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" />

Powie

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

k00ni

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 ?

k00ni

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.  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />

Powie

Jepp, und irgendwie \"passt\" das ganze auch zusammen /uploads/emoticons/icon_e_smile.gif.4a0acefcb917340d2c82e5239c009e6e.gif\" alt=\":)\" />. MAcht mir auch eine Menge Spass
51%  [/uploads/emoticons/icon_e_surprised.gif.a005678239f11b45b64b526b2c82e9a1.gif\" alt=\":o\" />]

all your base are belong to us