Autor |
Nachricht |
ONeill
UGamela-Kenner
Anmeldedatum: 24.12.2007 Beiträge: 81
|
Verfasst am: So 08 Jun 2008, 09:03 Titel:
Frage zu Templates |
|
Hey,
habs jetzt ins Off-Topic getan da ich unter Allgemein keine Rechte zum Themen erstelln habe.
Wollte mal wissen wie das mit den Templates ist. Ugamela hat ja (wie ich glaube) ein eigenes Template Engine. Wo genau befindet sich das? Finde es i.wie nicht. Kann mir da vllt jemand helfen?
|
Nach oben
|
|
|
Phoscur
Site Admin
Anmeldedatum: 07.12.2007 Beiträge: 919
|
Verfasst am: So 08 Jun 2008, 10:51 Titel:
|
|
ugamela besitzt eine sehr einfache Templateengine von Peberos bestehend aus den drei funktionen ReadFromFile, gettemplate und parsetemplate.
Die neue Version wird höchstverscheinlich die Klasse KTemplate verwenden.
// nach Allgemein verschoben.
_________________
Wenn du Hilfe brauchst wende dich an einen >Supporter<.
|
Nach oben
|
|
|
ONeill
UGamela-Kenner
Anmeldedatum: 24.12.2007 Beiträge: 81
|
Verfasst am: So 08 Jun 2008, 11:02 Titel:
|
|
Ah ok. Dann wart ich mal auf die neue Version. Hoffe dann mal das es dabei sein wird ^^.
Kennt ihr noch andere Template Engine wie Smarty oder so? Hab ja schon einige gefunden/gesehen nur find ich keine guten Anleitungen dazu.
Gruß
//Edit
oder gibt es ne möglichkeit mit php das template (html) und den code (php) leicht von einander zu trennen?
|
Nach oben
|
|
|
Phoscur
Site Admin
Anmeldedatum: 07.12.2007 Beiträge: 919
|
Verfasst am: So 08 Jun 2008, 13:29 Titel:
|
|
Smarty ist zu groß und schwerfällig für ein kleines und schnelles Game wie UGamela. KTemplate findest du übrigens schnell über Google. Der Vorteil gegenüber dem alten liegt bei den Blöcken.
_________________
Wenn du Hilfe brauchst wende dich an einen >Supporter<.
|
Nach oben
|
|
|
ONeill
UGamela-Kenner
Anmeldedatum: 24.12.2007 Beiträge: 81
|
Verfasst am: Mo 09 Jun 2008, 05:46 Titel:
|
|
Ok den PHP Code vom Html Code zu trennen ist dann ja schonmal gut aber wie schauts jetzt aus wenn ich die Sprache/Texte auch von dem Ganzen trennen will.
Ist das die einzige Funktion dazu?
Code: | function includeLang($filename,$ext='.mo'){
global $lang;
// added if to test availability of the file by Phlegma
if (!file_exists(UGAMELA_ROOT_PATH."language/".DEFAULT_LANG.'/'.$filename.$ext)) return false;
include(UGAMELA_ROOT_PATH."language/".DEFAULT_LANG.'/'.$filename.$ext);
return true;
} |
bzw gibt es eine gute art den php code html code und die texte sinnvoll zu trennen? ich weiß nicht ob ktemplate oder smarty sowas unterstützt und ob die art wie ugamela funkt die beste ist.
|
Nach oben
|
|
|
Phoscur
Site Admin
Anmeldedatum: 07.12.2007 Beiträge: 919
|
Verfasst am: Mo 09 Jun 2008, 15:38 Titel:
|
|
Bei Templateparsing werden bestimmte Platzhalter (meist {bla} ) durch anderen Text oder Code ersetzt. Dabei wird ein ganzes Array in die zugehörigen Platzhalter geschrieben (der Inhalt von $parse['bla'] erseztzt {bla}). Das Sprachsystem funktioniert so, dass alle Sprachvariablen in einem Array gespeichert werden, im Template befinden sich dann dementsprechende Platzhalter ( array $lang wird in $parse eingespeist oder $parse gleich mit $parse = $lang erstellt).
Das ist Peberos System, dafür braucht er nur vier Funktionen. Nun kann man das aber noch erweitern indem man auch noch Ausdrücke im Template interepretieren lässt, was in höchster Form dann Smarty ergibt. Das wirkt sich natürlich negativ auf die Geschwindigkeit aus, da der Parser viel mehr zu tun hat.
KTemplate kann wenig mehr als Peberos System, erlaubt aber templates wiederzuverwenden und macht mehrere Templates für ein Modul überflüssig.
_________________
Wenn du Hilfe brauchst wende dich an einen >Supporter<.
|
Nach oben
|
|
|
|