opi: Systemlast / Module nicht einbinden

Beitrag lesen

Hallo Struppi,

Was den Header angeht, gibt es da soviele Möglichkeiten dass ich froh bin immer ein Modul benutzen zu können das alle Möglichkeiten abdeckt.

...

und dazwischen ganz normale HTML-Ausgabe ...

print "<table class ...
print "<div class ...
print "<form class ...

einmal sieht HTML code im Skript Code nicht schön aus, außerdem vermeidest du mit Funktionen Verschachtelungsfehler und wie sieht es bei einer komplexen Struktur aus?

Wieso das?

Wenn du eine statische *.htm Datei schreibst, kannst du genauso viele
Fehler machen bei der Verschachtelung. Ansonsten schaut das für mich
sehr lesbar aus. Beispiel:

  
  
# mal schnell dahin getippt  
  
my $hash = {  
   "Struppi"   => "Hallo",  
   "Christian" => "Hi",  
   "opi"       => "Hi alter",  
};  
  
print "<table class=\"tab_options\">\n";  
print "   <tr>\n";  
print "      <th class=\"td_option_header\">Begr&uuml;&szlig;ung</th>\n";  
print "      <th class=\"td_option_header\">Name</th>\n";  
print "   </tr><tr>\n";  
  
foreach my $key (sort keys %$hash) {  
   print "      <td class=\"td_option_body\">$hash->{$key}</td>\n";  
   print "      <td class=\"td_option_body\">$key</td>\n";  
   print "   </tr><tr>\n";  
}  
  
print "      <td class=\"td_option_footer\" colspan=\"2\"></td>\n";  
print "   </tr>\n";  
print "</table>\n";  

z.b. mit einem Formular, dort ist ein Select Feld mit einer Liste IDs und den dazugehörigen Werten als Text und falls das Formular vorher schon angezeigt wurde muss der Wert ausgewählt werden, wenn nicht eine andere vorgegebene ID. Mit dem CGI Modul sieht das so aus:

print CGI::popup_menu(
-name => 'ids',
-values => [keys %$list],
-labels => $list,
-default => $id
);

  
  
# copy paste aus einem meiner skripts, pfad+name geändert  
  
print "<form action=\"/pfad/skript.cgi\">\n";  
print "<input type=\"hidden\" name=\"SESSIONID\" value=\"$arg->{SESSIONID}\">\n";  
print "<table class=\"tab_options\">\n";  
print "   <tr>\n";  
print "      <th colspan=\"2\" class=\"td_option_header\">Options</th>\n";  
print "   </tr><tr>\n";  
print "      <td style=\"width:30%;\" class=\"td_option_body\">Update rate</td>\n";  
print "      <td style=\"width:70%;\" class=\"td_option_body\">\n";  
print "         <select name=\"Rate\" size=\"1\" class=\"listfield\">\n";  
  
# mein default-wert wird hier gesetzt, wenn er nicht bei einem  
# vorherigen aufruf gesetzt wurde ...  
  
$arg->{Rate} = "inactive" unless $arg->{Rate};  
  
foreach ( "inactive", 10, 30, 60, 180, 600 ) {  
   print "            <option value=\"$_\" selected>$name</option>\n" if $_ eq $arg->{Rate};  
   print "            <option value=\"$_\">$name</option>\n" if $_ ne $arg->{Rate};  
}  
  
print "         </select>\n";  
print "      </td>\n";  
  
# normalerweise kommen hier noch ein paar andere selects+options...  
# soviel wollte ich nun doch nicht einfügen :-)  
  
print "   </tr>\n";  
print "</table>\n";  
print "</form>\n";  

Natürlich kann man das auch selber machen, aber je mehr du davon brauchst umso glücklicher bist du das das schon mal jemand gemacht hat.

Bei manchen Dingen ja, bei manchen nein. Siehe auch weiter unten.

doFooter(); # meine Fußleiste mit </body></html>

print CGI::end_html();

sieht für mich nicht schlechter aus.

naja, ausser das diese Funktion meine schön formatierte Fußleiste
nicht wieder gibt ;-)

Natürlich ist es Geschmackssache, aber warum etwas was andere die evtl. mehr Ahnung haben und x-fach erprobt ist

weil ich es privat mache und es mir einen riesen Spaß macht Struppi :-)

Greez,
opi

--
Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|