HTML-CalendarMonthDB
view release on metacpan or search on metacpan
cgi/editcal.cgi view on Meta::CPAN
#!/usr/bin/perl -w
use strict;
use HTML::CalendarMonthDB;
use HTML::Template;
require URI::Escape;
main();
sub main {
my(%param);
my($qs, $queryString);
if ($ENV{'CONTENT_LENGTH'}) {
read STDIN, $queryString, $ENV{'CONTENT_LENGTH'};
}
if ($ENV{'QUERY_STRING'}) {
$queryString .= "&".$ENV{'QUERY_STRING'};
}
my(@splitQS)=split('&' ,$queryString);
foreach $qs(@splitQS) {
$qs =~ s/\+/ /g;
my(@pair)=split('=', $qs);
$pair[0]=URI::Escape::uri_unescape($pair[0]);
$pair[1]=URI::Escape::uri_unescape($pair[1]);
$param{$pair[0]} = $pair[1];
# might as well check for delete requests here
if ($pair[0] =~ 'delete_') {
my ($d,$delid) = split('_', $pair[0]);
delCal($delid);
$param{'changed'}=2;
}
}
if ($param{'edit'}) {
editCal(%param);
$param{'changed'}=1;
}
editForm(%param);
}
sub delCal {
my ($delid)=shift;
my ($cal);
my $dbname = $ENV{'DB_NAME'};
my $dbuser = $ENV{'DB_USER'};
my $dbpass = $ENV{'DB_PASS'};
my $dbclient = $ENV{'DB_CLIENT'};
my $dbcalendar = $ENV{'DB_CALENDAR'};
my $dbhost = $ENV{'DB_HOST'};
$cal = new HTML::CalendarMonthDB('dbname'=>$dbname, 'dbpass'=>$dbpass, 'dbuser'=>$dbuser, 'dbcalendar'=>$dbcalendar, 'dbclient'=>$dbclient, 'dbhost'=>$dbhost);
$cal->deldbevent($delid);
}
sub editCal {
my(%param)=@_;
my ($cal, $p);
my $dbname = $ENV{'DB_NAME'};
my $dbuser = $ENV{'DB_USER'};
my $dbpass = $ENV{'DB_PASS'};
my $dbclient = $ENV{'DB_CLIENT'};
my $dbcalendar = $ENV{'DB_CALENDAR'};
my $dbhost = $ENV{'DB_HOST'};
my($month,$day,$year) = split('_', $param{'date'});
my($calid)=$param{'calid'};
$cal = new HTML::CalendarMonthDB('month'=>$month, 'year'=>$year, 'dbname'=>$dbname, 'dbuser'=>$dbuser, 'dbcalendar'=>$dbcalendar, 'dbclient'=>$dbclient, 'dbhost'=>$dbhost);
foreach $p (keys %param) {
if ($p =~ /eventname/ && $param{$p}) {
$p =~ s/eventname_//;
$cal->editdbevent('eventid'=>$p, 'eventday'=>$param{'eventday_'.$p}, 'eventmonth'=>$param{'eventmonth_'.$p}, 'eventyear'=>$param{'eventyear_'.$p}, 'eventname'=>$param{'eventname_'.$p}, 'eventdesc'=>$param{'eventdesc_'.$p}, 'eventlink'=>$param{'eve...
}
}
}
sub editForm {
my(%param)=@_;
my ($htmlOut);
my($month,$day,$year) = split('_', $param{'date'});
my $view = $param{'view'};
my ($cal);
my %content;
my $dbname = $ENV{'DB_NAME'};
my $dbuser = $ENV{'DB_USER'};
my $dbpass = $ENV{'DB_PASS'};
my $dbclient = $ENV{'DB_CLIENT'};
my $dbcalendar = $ENV{'DB_CALENDAR'};
my $dbhost = $ENV{'DB_HOST'};
my $template = HTML::Template->new(filename => 'editcal.tmpl');
if ($param{'changed'} eq 1) {
$htmlOut .='<b><font color=blue>Events modified.</font></b><br>';
}
elsif ($param{'changed'} eq 2) {
$htmlOut .='<b><font color=blue>Event deleted.</font></b><br>';
}
$htmlOut .= '<form name="editform" method="post"><table border="0" cellpadding="3" bgcolor="ccccff">';
$htmlOut .= "<tr bgcolor=\"red\"><td colspan=\"2\"><center><b>Edit Events for $month/$day/$year </b><font size=1> <a href=\"addcal.cgi?date=".$param{'date'}."&calid=".$param{'calid'}."&view=$view\">[Add event for $month/$day/$year]</a></font></cente...
$htmlOut .= '</td></tr>';
$cal = new HTML::CalendarMonthDB('month'=>$month, 'year'=>$year, 'dbname'=>$dbname, 'dbuser'=>$dbuser, 'dbcalendar'=>$dbcalendar, 'dbclient'=>$dbclient, 'dbhost'=>$dbhost);
%content = $cal->getdbevent($day);
my ($c,$exist);
foreach $c(keys %content) {
$exist=1;
$htmlOut .= '<tr bgcolor="8888ff"><td colspan=2 align="right"><input type="submit" name="delete_'.$c.'" value="Delete Event Below"></td></tr>';
$htmlOut .= '<tr><td>Event Name</td><td><input type="text" name="eventname_'.$c.'" value="'.$content{$c}{'eventname'}.'"></td></tr>';
$htmlOut .= '<tr><td>Event Date</td><td><input type="text" size="2" maxlength="2" name="eventmonth_'.$c.'" value="'.$content{$c}{'eventmonth'}.'"><b>/</b><input type="text" size="2" maxlength="2" name="eventday_'.$c.'" value="'.$content{$c}{'eventd...
$htmlOut .= '<tr><td>Event Description</td><td><textarea rows=8 cols=30 wrap=virtual name="eventdesc_'.$c.'">'.$content{$c}{'eventdesc'}.'</textarea></td></tr>';
$htmlOut .= '<tr><td>Event Link</td><td><input type="text" name="eventlink_'.$c.'" value="'.$content{$c}{'eventlink'}.'"></td></tr>';
}
if (!$exist) {
$htmlOut .='<tr bgcolor="8888ff"><td colspan=2><center>No Events.</center></td></tr>';
}
else {
$htmlOut .= '<tr><td colspan="2" bgcolor="red"><center><b><input type="submit" name="edit" value="Commit Changes"></b></center></td></tr>';
}
$htmlOut .= '</table><input type="hidden" name="date" value="'.$param{'date'}.'" override="1"><input type="hidden" name="calid" value="'.$param{'calid'}.'" override="1">';
$htmlOut .= '</form>';
$template->param(
EDIT_CAL => $htmlOut,
BODY_INCLUDE => "onload='self.opener.window.location=\"calendar.cgi?date=1&month=$month&year=$year&view=$view\"'"
);
# print the template
print $template->output;
}
( run in 0.486 second using v1.01-cache-2.11-cpan-39bf76dae61 )