Benutzer:Kirmse/Userliste
Durch das Script listclass.cgi
werden die Klassen der Schule aufgelistet. Zusätzlich werden noch die Einträge ALLE
(Schüler und Lehrer), alle Schüler
und Lehrer
angegeben.
Entsprechend dem ausgewählten Link wird durch das Script listuser.cgi
entweder eine 3spaltige oder eine 4spaltige Tabelle zurückgegeben. In der Überschrift wird zudem auch nach Klassen und Kursen unterschieden. Dabei wird davon ausgegangen, dass Klassen in der Form "mindestens eine Ziffer und danach ein Buchstabe" angegeben ist, z.B. "10b". Bei Kursen wird erwartet, dass diese mit "mindestens einer Ziffer, dann ein Slash und danach mindestens ein Zeichen kommt, z.B. "12/I".
<source lang="perl">
- !/usr/bin/perl
use warnings; use strict;
use CGI::Carp qw(fatalsToBrowser); use Net::LDAP; use lib '../module'; # anpassen! use Delixs::User;
my (@klassen, $liste);
- ========================== Konfigurationsbereich ========================
- das aufzurufende Script mit Pfad
my $script = 'http://delixs/online/listuser.cgi'; # anpassen!
- ========================== HTML-Bereich =================================
- Die generierte HTML-Seite wird zusammengesetzt aus dem Kopf, der (eigentlichen)
- Tabelle und dem Fuss. Hier wird die Variable $head als HERE-Dokument bereitgestellt.
- Ab der 2. Zeile, die mit: "<!doctype html ..." beginnt, ist alles reines HTML.
- Sie können damit ohne Perlkenntnisse das Aussehen der Seite beeinflussen.
my $head =<<'KOPF'; <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Auflisten der Klassen</title> <meta name="author" content="Hans-Dietrich Kirmse"> <meta name="generator" content="Ulli Meybohms HTML EDITOR"> </head> <body background="whttxtr2.jpg" text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#0000C0" vlink="#FF0000">
Nutzerübersicht
Bitte wählen Sie eine Klasse aus
KOPF
- die Variable $foot sollte normalerweise nicht geändert werden, da nur Copyrightvermerk.
- Falls dieser an irgendeiner anderen Stelle erscheint, ist dagegen natürlich nichts einzuwenden.
my $foot =<<'FUSS';
[ <a href="index.html">zurück</a> ]
© <a href="mailto:hd.kirmse@gmx.de">HD. Kirmse</a> ERG Saalfeld/Thüringen, listclass.cgi Version 0.1 - Oktober 2008
</body> </html> FUSS
- ========================== Hauptprogramm ================================
- wir initialisieren unsere Klassenliste
$liste = '
- ';
$liste .= '
- <a href="'.$script.'?gruppe=ALL">ALLE</a> '."\n"; $liste .= '
- <a href="'.$script.'?gruppe=SCHUELER">alle Schüler</a> '."\n"; $liste .= '
- <a href="'.$script.'?gruppe=LEHRER">Lehrer</a> '."\n";
- wir holen uns die Klassen
- und erstellen für jede Klasse einen Eintrag in dieser Liste
- <a href="'.$script.'?gruppe='.$klasse.'">'.$klasse.'</a> '."\n"; }
- und schließen die Liste ab
'."\n";
- wir schicken die Seite zum Apache
print "Content-type: text/html\n\n"; print $head; print $liste; print $foot;
__END__ </source>
<source lang="perl">
- !/usr/bin/perl
use warnings; use strict;
use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use Net::LDAP; use lib '../module'; # anpassen! use Delixs::User;
my ($gruppe, %ueberschrift, $key_ueberschrift, $tabelle, @user, $login, $name, $klasse);
- wir holen uns zuerste den (einzigen) Parameter
$gruppe = param('gruppe'); $gruppe = '12/1';
- die Strings fuer die verschiedenen Ueberschriften
%ueberschrift = (
ALLE => 'Die Nutzer (Schüler und Lehrer) auf diesem Schulserver', SCHUELER => 'Die Schüler auf diesem Schulserver', LEHRER => 'Die Lehrer auf diesem Schulserver', KLASSE => "Die Schüler der Klasse $gruppe auf diesem Schulserver", KURS => "Die Schüler vom Kurs $gruppe auf diesem Schulserver",
);
- wir ermitteln, ob ALLE, SCHUELER, LEHRER, KLASSE oder KURS zutrifft
if ($gruppe eq 'ALL') { $key_ueberschrift = 'ALLE'; } elsif ($gruppe eq 'SCHUELER') { $key_ueberschrift = 'SCHUELER'; } elsif ($gruppe eq 'LEHRER') { $key_ueberschrift = 'LEHRER'; } elsif ($gruppe =~ /^\d+\w?$/) { $key_ueberschrift = 'KLASSE'; } elsif ($gruppe =~ /^\d+\/.+/) { $key_ueberschrift = 'KURS'; } else { $key_ueberschrift = 'KLASSE'; }
- ========================== HTML-Bereich =================================
- Die generierte HTML-Seite wird zusammengesetzt aus dem Kopf, der (eigentlichen)
- Tabelle und dem Fuss. Hier wird die Variable $head als HERE-Dokument bereitgestellt.
- Ab der 2. Zeile, die mit: "<!doctype html ..." beginnt, ist alles reines HTML.
- Sie können damit ohne Perlkenntnisse das Aussehen der Seite beeinflussen.
my $head =<<'KOPF'; <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Nutzerübersicht</title> <meta name="author" content="Hans-Dietrich Kirmse"> <meta name="generator" content="Ulli Meybohms HTML EDITOR"> </head> <body background="whttxtr2.jpg" text="#000000" bgcolor="#FFFFFF" link="#0000FF"
alink="#0000C0" vlink="#FF0000">
- die Variable $foot sollte normalerweise nicht geändert werden, da nur Copyrightvermerk.
- Falls dieser an irgendeiner anderen Stelle erscheint, ist dagegen natürlich nichts einzuwenden.
Nutzerübersicht
%%ueberschrift%% |
---|
KOPF
my $foot =<<'FUSS';
[ <a href="index.html">zurück</a> ]
© <a href="mailto:hd.kirmse@gmx.de">HD. Kirmse</a> ERG Saalfeld/Thüringen, listuser.cgi Version 0.1 - Oktober 2008
</body> </html> FUSS
- ========================== Hauptprogramm ================================
- die Ueberschrift in den Tabellenkopf einfuegen
$head =~ s/%%ueberschrift%%/$ueberschrift{$key_ueberschrift}/;
- wir initialisieren die Tabelle
$tabelle = '
'."\n"; if ($gruppe eq 'ALL' or $gruppe eq 'SCHUELER') { # also mit 4 Spalten $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; } else { # mit 3 Spalten $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; $tabelle .= ''."\n"; }- wir holen uns die Daten
- wir bauen die Tabelle
- Tabelle abschliessen
Login | Name | Klasse | Homepage |
---|---|---|---|
Login | Name | Homepage | |
$login | $name | $klasse | <a href=\"http://arktur/~$login/\">http://arktur/~$login/</a> |
$login | $name | <a href=\"http://arktur/~$login/\">http://arktur/~$login/</a> |
'."\n";
- wir schicken die Seite zum Apache
print "Content-type: text/html\n\n"; print $head; print $tabelle; print $foot;
__END__ </source>