macolo
10-11-2002, 21:43
hallo
ich hirne schon den ganzen abend an diesem problem herum: ich möchte ein modul "Kalender" einbinden, von hier:
http://www.i-netlab.de/downloads/kalender.html
also hab ich den code kopiert und unter /Perl/lib ins file calendar.pm gepastet.
hier ist mein perl script:
#!/usr/bin/perl
##
##
use strict;
use CGI::Carp qw(fatalsToBrowser);
use calendar qw(month_as_html);
print <<HEAD;
Content-type: text/html\n\n
<html><body>
HEAD
my $monthtab = month_as_html("11","2002");
print $monthtab;
print<<FOOT;
</BODY></HTML>
FOOT
use calendar qw(month_as_html); wenn ich diese zeile auskommentiere, dann funktioniert eigentlich alles, ausser eben der hauptzweck - die monatstabelle.
hier ist der month_as_html-ausschnitt aus der calendar.pm (der rest ist unter obiger url zu begutachten) :
################################################## #######################
# Monat als HTML Tabelle mit Feiertagen
sub month_as_html{
return "-1" if scalar @_ < 2;
my ($month, $year) = @_;
my %feiertag = &feiertage($year);
my %fixtag = &fixtage($year);
my $x_day = 1;
my $row = 0;
my $table = ();
my @wochentag = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag);
my @monat = qw(null Januar Februar März April Mai Juni Juli August September Oktober November Dezember);
my $first_day = &weekday(1, $month, $year, 1);
my $days = &days_of_month($month, $year);
$table = "<table border cellpadding=0 cellspacing=0 width=\"100%\">\n";
$table .= "<tr>\n";
$table .= "<th colspan=7>$monat[$month] $year</th>\n";
$table .= "</tr>\n<tr>";
for(0..6){
$table .= "<th>$wochentag[$_]</th>\n"
}
$table .= "</tr>\n";
# Hier wird der Kalender zusammengebaut
for($row = 1; $row <= 6; $row ++){
$table .= "<tr>\n";
for(0..6){
if( $first_day <= $_ and $row == 1){ # Einstieg in Kalender
$table .= "<td>$x_day <b>$feiertag{\"$x_day.$month.$year\"}</b>
<b>$fixtag{\"$x_day.$month.$year\"}</b></td>\n";
$x_day++;
}
elsif( $x_day <= $days and $row != 1){
$table .= "<td>$x_day <b>$feiertag{\"$x_day.$month.$year\"}</b>
<b>$fixtag{\"$x_day.$month.$year\"}</b></td>\n";
$x_day++;
}
else{ # Tag stimmt nicht überein
$table .= "<td> </td>\n";
}
}
$table .= "</tr>\n";
}
# Abschluss der Tabelle
$table .= "</table>\n";
return $table;
}
################################################## #######################
ich hab perl 5.8 und apache2 alles für win32 und lasse es unter winxp laufen. alle anderen scripts funktionieren.
greets
macolo
ich hirne schon den ganzen abend an diesem problem herum: ich möchte ein modul "Kalender" einbinden, von hier:
http://www.i-netlab.de/downloads/kalender.html
also hab ich den code kopiert und unter /Perl/lib ins file calendar.pm gepastet.
hier ist mein perl script:
#!/usr/bin/perl
##
##
use strict;
use CGI::Carp qw(fatalsToBrowser);
use calendar qw(month_as_html);
print <<HEAD;
Content-type: text/html\n\n
<html><body>
HEAD
my $monthtab = month_as_html("11","2002");
print $monthtab;
print<<FOOT;
</BODY></HTML>
FOOT
use calendar qw(month_as_html); wenn ich diese zeile auskommentiere, dann funktioniert eigentlich alles, ausser eben der hauptzweck - die monatstabelle.
hier ist der month_as_html-ausschnitt aus der calendar.pm (der rest ist unter obiger url zu begutachten) :
################################################## #######################
# Monat als HTML Tabelle mit Feiertagen
sub month_as_html{
return "-1" if scalar @_ < 2;
my ($month, $year) = @_;
my %feiertag = &feiertage($year);
my %fixtag = &fixtage($year);
my $x_day = 1;
my $row = 0;
my $table = ();
my @wochentag = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag);
my @monat = qw(null Januar Februar März April Mai Juni Juli August September Oktober November Dezember);
my $first_day = &weekday(1, $month, $year, 1);
my $days = &days_of_month($month, $year);
$table = "<table border cellpadding=0 cellspacing=0 width=\"100%\">\n";
$table .= "<tr>\n";
$table .= "<th colspan=7>$monat[$month] $year</th>\n";
$table .= "</tr>\n<tr>";
for(0..6){
$table .= "<th>$wochentag[$_]</th>\n"
}
$table .= "</tr>\n";
# Hier wird der Kalender zusammengebaut
for($row = 1; $row <= 6; $row ++){
$table .= "<tr>\n";
for(0..6){
if( $first_day <= $_ and $row == 1){ # Einstieg in Kalender
$table .= "<td>$x_day <b>$feiertag{\"$x_day.$month.$year\"}</b>
<b>$fixtag{\"$x_day.$month.$year\"}</b></td>\n";
$x_day++;
}
elsif( $x_day <= $days and $row != 1){
$table .= "<td>$x_day <b>$feiertag{\"$x_day.$month.$year\"}</b>
<b>$fixtag{\"$x_day.$month.$year\"}</b></td>\n";
$x_day++;
}
else{ # Tag stimmt nicht überein
$table .= "<td> </td>\n";
}
}
$table .= "</tr>\n";
}
# Abschluss der Tabelle
$table .= "</table>\n";
return $table;
}
################################################## #######################
ich hab perl 5.8 und apache2 alles für win32 und lasse es unter winxp laufen. alle anderen scripts funktionieren.
greets
macolo