#!/usr/bin/perl ############################################ ## ## ## WebCal (Deletion Script) ## ## by Darryl Burgdorf ## ## (e-mail burgdorf@awsd.com) ## ## ## ## version: 1.21 ## ## last modified: 1/4/00 ## ## copyright (c) 2000 ## ## ## ## latest version is available from ## ## http://awsd.com/scripts/ ## ## ## ############################################ require "webcal.config.pl"; # NOTHING BELOW THIS LINE NEEDS TO BE ALTERED! read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if ($name eq "Delete") { $value =~ s/<//g; $value =~ s/"/"/g; $value =~ s/&/&/g; push (@Delete,$value); } elsif ($name eq "datafile") { $INPUT{'datafile'} = $value; } } if (@Delete) { &Delete; } else { &Display; } sub Display { $datafiles = (keys %editfiles); unless ($INPUT{'datafile'}) { if ($datafiles > 1) { &Header("Select Data File"); print "

Select Data File

\n"; print "
\n"; print "

Data File to Edit: \n"; print "

"; print "

\n"; &Footer; exit; } else { foreach $key (keys %editfiles) { $INPUT{'datafile'} = "$key|$editfiles{$key}"; } } } ($datafilename,$datafilepath) = split(/\|/,$INPUT{'datafile'}); open (DATA,$datafilepath); @data = ; close (DATA); &Header("Delete Calendar Entries"); print "

Existing Calendar Entries:

\n"; print "

Data File to Edit: $datafilename\n"; print "

\n"; print "\n"; $lastyear = ""; $eventcount = 0; foreach $line (@data) { next if ($line =~ /^\#/); next if (length($line) < 5); $eventcount++; $line =~ s/\n//g; $line =~ s/&/&/g; $line =~ s/"/"/g; $line =~ s/>/>/g; $line =~ s/$dateyear:\n"; $lastyear = $dateyear; } print "
"; $xshortmonth = @shortmonths[$datemonth-1]; print "$xshortmonth $dateday: "; if ($URL) { print "$desc\n"; } else { print "$desc\n"; } } print "
\n"; unless ($eventcount) { print "

NO ENTRIES IN DATA FILE!"; } else { print "

"; } print "

\n"; if ($datafiles > 1) { print "
\n"; print "\n"; print "
\n"; } &Footer; exit; } sub Delete { ($datafilename,$datafilepath) = split(/\|/,$INPUT{'datafile'}); open (DATA,$datafilepath); @data = ; close (DATA); open (DATA,">$datafilepath"); foreach $line (@data) { if ($line =~ /\n$/) { chop ($line); } $deleteflag = 0; foreach $deleteline (@Delete) { if ($line eq $deleteline) { $deleteflag = 1; } } if ($deleteflag == 0) { print DATA "$line\n"; } } close (DATA); if ($DataDirPath && $DataDirURL) { foreach $deleteline (@Delete) { $deleteline =~ s/^.*$DataDirURL/$DataDirPath/; unlink ($deleteline); } } &Display; }