Faulbaer's Schlafmulde :: german :: code :: closedshop template update/rewrite
2007.11.19, 09:54

closedshop template update/rewrite

da habe ich mir ja etwas vorgenommen. closedshop ist extrem oldschool perl, wie man es von herzen zu hassen gelernt hat. immerhin gibt es eine recht komplette versionshistorie, doch insgesamt ist der code etwa zu null prozent dokumentiert.

nach dem gaul-maul prinzip moechte ich mein geranze an diesem punkt einstellen. dafuer, dass der shop seit anderthalb jahren kein groesseres update erfahren hat, ist er naemlich echt gut. der source selbst ist fast lesbar und ich fuehle mich im rewrite nach html::template zunehmend wohler.

einige der hauptfunktionen sind bereits uebertragen und waehrend ich zwar hier und dort auf schmerzhafte kopfnuesse treffe, gefallen mir die umgeschriebenen funktionen und templates immer mehr.

zwei fragen beschaeftigen mich allerdings schon noch:

- zur zeit verwende ich html::template nicht nur dafuer, html asuzugeben, sondern auf fuer die ausgabe von rechnungen per mail. ich frage mich, ob ich dazu eine andere template engine verwenden sollte, sehe aber noch keinen wirklich guten grund dafuer. vorerst bleibe ich also dabei und gebe den mail-templates halt eine andere endung.

- ich wuerde statt der tmpl_if funktion haeufig lieber tmpl_loop verwenden, da der inhalt eines leeren loop schlicht nicht ausgegeben wird, wodurch ich mir mir im zweifel if-entscheidungen sparen kann. eigentlich ist der einsatz von tmpl_if nur sinnvoll, wenn ich fuer 'if not' eine ausgabe benoetige und das gibt tmpl_if nur ueber tmpl_else her, oder ich muss in der applikation bereits das ergebnis xorn, was den code nicht direkt lesbarer macht:

im programm:

if (!$#elements) {
  $template->param(elements_empty => true);
}

im template:

<tmpl_if name=elements_empty>
  <b>keine elemente gefunden</b>
</tmpl_if>

naja ... es gibt schlimmeres. html::template gibt es auch fuer java und php, habe ich gesehen. die sprache scheint identisch, was portierungen vom einen ins andere sicher erleichtert. wer sich an die perl-implementation gewoehnt hat, wird sein wissen sicher einfach in die php-welt mitnehmen koennen.

Faulbaer (zu html::template::compile habe ich allerdings wenig gefunden)

 
add a comment