Thread Mein bisher kürzestes CGI-Script (27 answers)
Opened by rosti at 2011-08-11 19:25

sitescriptor
 2011-08-12 13:28
#151540 #151540
User since
2009-08-09
105 Artikel
BenutzerIn
[default_avatar]
2011-08-11T18:16:41 pq
das templating gefällt mir gar nicht. ist vermutlich sehr aufwendig zu warten, da man im template nur %s stehen hat und im code nach der reihenfolge schauen muss.

Sehe ich auch so.
Ein Tipp: erstmal die Platzhalter aus dem Template in einen Hash schreiben und die Eigenschaft '_select_' im MetaHash abfragen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
$Self->{'MetaHash'}   = 
{ $Self->{'NICKtab'} =>
{
"id" =>
{
'_isindex_' => 'true',
'_noinsert_' => 'true',
'_noupdate_' => 'true',
'length' => 32,
'_select_' => " _tabfield_ ",
},
....

und '_tabfield_' mit dem physikalischen Tabellen-/Spaltennamen ersetzen 'pegel.id'. Dann noch die Logik dazu ('WHERE'), Daten holen, Platzhalter ersetzen. Über den MetaHash könnte man auch weitere Rechte produzieren.

2011-08-11T18:16:41 pq
...wenn dann würde ich gleich mit einem fertigen template-system arbeiten.

Würde ich auch, wenn sie nicht "Programmierersyntaxen" hätten, an die man kaum einen Webdesigner setzen kann.
Mein neuer Pageparser arbeitet mit:
Code: (dl )
1
2
3
<!--INCLUDE:path /-->
<!--EVENT:site:instance:event [(name=wert;...)] /-->
<!--EVENT:site:instance:event [(name=wert;...)] -->Template<!--/-->

Und im Template selbst:
Platzhalter:'__name1.name2[.nameN][(parameter)]__'
Loop etc.:
Code: (dl )
1
2
3
4
5
6
7
8
content_1[<!--ifRECORD-->content_2<!--noRECORD-->content_3<!--RECORDend-->content_4]

inside content_2:
<!--LOOP-->content_1<!--LOOP_END-->
<!--LOOP-->content_1<!--SUB_LOOP_IF{condition}-->content_2<!--SUB_LOOP_END-->content_3<!--LOOP_END-->
<!--IF_LOOP{condition}-->content_1<!--ELSE-->content_2<!--IF_LOOP_END-->
Everywhere:
<!--IF{condition}-->content_true<!--IF_ELSE-->content_false<!--IF_END-->

Sehr pragmmatisch, ist aber gültiges HTML und schon unausgeführt "stylbar"!

Bin ich gesprächig heute...

View full thread Mein bisher kürzestes CGI-Script