Benutzer:Kirmse/Userliste

Aus Delixs
(Weitergeleitet von Kirmse/Userliste)
Zur Navigation springen Zur Suche springen

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">

  1. !/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);

  1. ========================== Konfigurationsbereich ========================
  1. das aufzurufende Script mit Pfad

my $script = 'http://delixs/online/listuser.cgi'; # anpassen!

  1. ========================== HTML-Bereich =================================
  1. Die generierte HTML-Seite wird zusammengesetzt aus dem Kopf, der (eigentlichen)
  2. Tabelle und dem Fuss. Hier wird die Variable $head als HERE-Dokument bereitgestellt.
  3. Ab der 2. Zeile, die mit: "<!doctype html ..." beginnt, ist alles reines HTML.
  4. 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

  1. die Variable $foot sollte normalerweise nicht geändert werden, da nur Copyrightvermerk.
  2. 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

  1. ========================== Hauptprogramm ================================
  1. 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";
    1. wir holen uns die Klassen
    @klassen = &Delixs::User::userlist('KLASSEN');
    1. und erstellen für jede Klasse einen Eintrag in dieser Liste
    foreach my $klasse (sort @klassen) { $liste .= '
  • <a href="'.$script.'?gruppe='.$klasse.'">'.$klasse.'</a>
  • '."\n"; }
    1. und schließen die Liste ab
    $liste .= '

'."\n";

  1. wir schicken die Seite zum Apache

print "Content-type: text/html\n\n"; print $head; print $liste; print $foot;

__END__ </source>

<source lang="perl">

  1. !/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);

  1. wir holen uns zuerste den (einzigen) Parameter

$gruppe = param('gruppe'); $gruppe = '12/1';

  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",

);

  1. 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'; }

  1. ========================== HTML-Bereich =================================
  1. Die generierte HTML-Seite wird zusammengesetzt aus dem Kopf, der (eigentlichen)
  2. Tabelle und dem Fuss. Hier wird die Variable $head als HERE-Dokument bereitgestellt.
  3. Ab der 2. Zeile, die mit: "<!doctype html ..." beginnt, ist alles reines HTML.
  4. 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">

    Nutzerübersicht


     
    %%ueberschrift%%
     

    KOPF

    1. die Variable $foot sollte normalerweise nicht geändert werden, da nur Copyrightvermerk.
    2. 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, listuser.cgi Version 0.1 - Oktober 2008

</body> </html> FUSS

  1. ========================== Hauptprogramm ================================
  1. die Ueberschrift in den Tabellenkopf einfuegen

$head =~ s/%%ueberschrift%%/$ueberschrift{$key_ueberschrift}/;

  1. 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"; }
  1. wir holen uns die Daten
@user = &Delixs::User::userlist($gruppe);
  1. wir bauen die Tabelle
if ($gruppe eq 'ALL' or $gruppe eq 'SCHUELER') { # also mit 4 Spalten foreach my $user (@user) { ($login, $name, $klasse) = split /,/ , $user; $tabelle .= ''."\n"; $tabelle .= ""."\n"; $tabelle .= ""."\n"; $tabelle .= ""."\n"; $tabelle .= ""."\n"; $tabelle .= ''."\n"; } } else { foreach my $user (@user) { ($login, $name) = split /,/ , $user; $tabelle .= ''."\n"; $tabelle .= ""."\n"; $tabelle .= ""."\n"; $tabelle .= ""."\n"; $tabelle .= ''."\n"; } }
  1. Tabelle abschliessen
$tabelle .= '
LoginNameKlasseHomepage
LoginNameHomepage
 $login $name $klasse <a href=\"http://arktur/~$login/\">http://arktur/~$login/</a>
 $login $name <a href=\"http://arktur/~$login/\">http://arktur/~$login/</a>

'."\n";

  1. wir schicken die Seite zum Apache

print "Content-type: text/html\n\n"; print $head; print $tabelle; print $foot;

__END__ </source>



Benutzer:Kirmse