######################################################################################## # Calendar.pl (SP1) v2.2 # NOTES # # Created by : jaska (jarno@jokinen.as) # When you edit something, # # throesch (Mthroesch@hotmail.com) # please update VERSION CONTROL # # Mathar (mathartg@yahoo.com) # and UPDATES. # ######################################################## # # VERSION CONTROL # # # Modified From: v2.1 # # # Modified By: Throesch # # # Modified For: v2.2 # # ######################################################################################## # old updates in readme.txt # # UPDATES By throesch (MLT) (v2.2): # # 1) User control added. # # note1. the user has about 70-80% control over the admin. # # note2 Admin can turn on or off the user control. # ######################################################################################## $Calendarver= "2.2"; sub cal_list { require "$sourcedir/Subs.pl"; use Time::Local; &get_settings; ($secA,$minA,$hourA,$mdayA,$monA,$yearA,$wdayA,$ydayA,$isdstA) = localtime(time + (3600*($timeoffset+$settings[18]))); $yearstart = $yearA+1900; $displaymonths=$calpast+$calfuture; $monthstart=1+$monA-$calpast; $monthend=1+$monA+$calfuture; while ($monthstart <= 0) { $monthstart+=12; $yearstart-=1; } &make_note_array; &get_event; while (($nextnote) && (($n_year < $yearstart) || (($n_year == $yearstart) && ($n_month < $monthstart)))) {&get_event;} if ($allowcaluser == "1"){ if ($username ne "Guest" && $settings[7] ne "Administrator"){ $yymain .= qq~
calendar
~;}} $yymain .= "\n\n\n \n \n \n
"; for ($z=0; $z<$displaymonths; $z++) { $displayyear=$yearstart; $displaymonth=$monthstart+$z; while ($displaymonth >= 13) { $displaymonth-=12; $displayyear++; } if (length($displayyear)== 1) {$displayyear="0$displayyear";} if (length($displaymonth)== 1) {$displaymonth="0$displaymonth";} if (($z+1)%$calwidth == 1 && $z >= 1) {$yymain .= "
";} elsif ($z > 0) {$yymain .= "";} &drawcal; } $yymain .= "\n
\n

$txt{'193'}

\n"; &template; exit; } sub drawcal { $yytitle = "$caltxt{'1'}"; $mon = $displaymonth-1; $year = $displayyear; @months2 = ('January','February','March','April','May','Jun','July','August','September','October','November','December'); $days_in_month = &days_in_month(); ($temp,$temp,$temp,$temp,$temp,$temp,$wday,$temp,$temp) = localtime(timegm(0,0,0,1,$mon,$year)); $pvm = 1-$wday; if ($dayoffset == 1) # Offset {$pvm--;} $displayyear=substr($displayyear,-2); $monthyear = @months2[$mon]." ".$year; $monthyear1 = @months2[$mon]; $monthyear2 = ", ".$year; if ($onemonth == 1) { $yySetLocation = qq~$cgi;action=calendar2;viewmonth=$displaymonth;viewyear=$displayyear~; &redirectexit; }else{ $yymain .= qq~ ~; for ($i=0;$i<7;$i++) {$yymain .= " \n";} $yymain .= " \n"; while ($pvm <= $days_in_month) { $yymain .= " \n"; for ($weekdaycounter=0;$weekdaycounter<7;$weekdaycounter++) { if ($pvm >= 1 && $pvm <= $days_in_month) { $displayday = $pvm < 10 ? "0".$pvm : $pvm; $paivays = $displayyear.$displaymonth.$displayday; $class = "normal"; $style = "font-size=11px;"; $pvm_text = $pvm; $number = $pvm; $pvm_seq = &serial_number(); DATECHECK: if (($nextnote) && ($n_date eq $paivays)) { if ($SMI == 1) { if ($n_type eq "BD") { $style .= " background-image:URL('$imagesdir/birthday_small.gif'); background-repeat:no-repeat;"; $class = "birthday"; $pvm_text = "$pvm"; } elsif ($n_type eq "HO") { $style .= " background-image:URL('$imagesdir/holiday_small.gif'); background-repeat:no-repeat;"; $class = "note"; $pvm_text = "$pvm"; } elsif ($n_type eq "NO") { $style .= " background-image:URL('$imagesdir/note_small.gif'); background-repeat:no-repeat;"; $class = "note"; $pvm_text = "$pvm"; } } else { if ($n_type eq "BD") { $class = "birthday"; $pvm_text = "$pvm"; } elsif ($n_type eq "HO") { $class = "note"; $pvm_text = "$pvm"; } elsif ($n_type eq "NO") { $class = "note"; $pvm_text = "$pvm"; } } &get_event; goto DATECHECK; } elsif (($mdayA == $pvm) && (($monA+1) == $displaymonth) && (($yearA-100) == $displayyear)) { $class = "today"; $pvm_text = "".$pvm_text.""; } $pvm_text = (($red_sundays == 1) && ($weekdaycounter == 0)) ? " ".$pvm_text." " : " ".$pvm_text." "; $day_link = qq~$pvm_text~; $yymain .= " "; } elsif ($floating_calendar == 1) {$yymain .= " \n";} else {$yymain .= " \n";} $pvm++; } $yymain .= " \n"; } $yymain .= "
$monthyear
".substr(@days[$i],0,2)."
$day_link
\n"; } } sub days_in_month() { if ($mon == 0) {return 31;} if ($mon == 1) { if ($year%4 == 0) { if ($year%100 == 0) { if ($year%400 == 0) { return 29; } return 28; } return 29; } return 28; } if ($mon == 2) {return 31;} if ($mon == 3) {return 30;} if ($mon == 4) {return 31;} if ($mon == 5) {return 30;} if ($mon == 6) {return 31;} if ($mon == 7) {return 31;} if ($mon == 8) {return 30;} if ($mon == 9) {return 31;} if ($mon == 10) {return 30;} if ($mon == 11) {return 31;} } sub serial_number() { if ((($number > 3) && ($number < 21)) || (($number > 23) && ($number < 31))) { return $number.$caltxt{'15'}; } elsif (substr($number,-1) eq "1") { return $number.$caltxt{'12'}; } elsif (substr($number,-1) eq "2") { return $number.$caltxt{'13'}; } elsif (substr($number,-1) eq "3") { return $number.$caltxt{'14'}; } } sub cal_month { require "$sourcedir/Subs.pl"; &timeformat($date); ($month, $day, $year) = split(/\//, $date); ($year, $trash) = split(/ /, $year); &get_settings; $viewmonth = $INFO{'viewmonth'}; chomp $viewmonth; if (length($viewmonth) == 1) {$viewmonth="0$viewmonth";} $viewyear = $INFO{'viewyear'}; chomp $viewyear; if (length($viewyear) == 1) {$viewyear="0$viewyear";} ($secA,$minA,$hourA,$mdayA,$monA,$yearA,$wdayA,$ydayA,$isdstA) = localtime(time + (3600*($timeoffset+$settings[18]))); $yearA+=1900; $mon = $viewmonth-1; $year = $viewyear>50 ? "19".$viewyear : "20".$viewyear; $days_in_month = &days_in_month(); ($temp,$temp,$temp,$temp,$temp,$temp,$wday,$temp,$temp) = localtime(timegm(0,0,0,1,$mon,$year)); $pvm = 1-$wday; if ($dayoffset == 1) # Offset {$pvm--;} @months2 = ('January','February','March','April','May','Jun','July','August','September','October','November','December'); $monthyear = @months2[$mon]." ".$year; $monthyear1 = @months2[$mon]; $monthyear2 = ", ".$year; &make_note_array; &get_event; while (($nextnote) && (($n_year < $year) || (($n_year == $year) && ($n_month < $viewmonth)))) {&get_event;} $prev_month = $viewmonth==1 ? "12" : $viewmonth-1; $next_month = $viewmonth==12 ? "1" : $viewmonth+1; $prev_year = $viewmonth==1 ? substr(($year-1),2,2) : substr($year,2,2); $next_year = $viewmonth==12 ? substr(($year+1),2,2) : substr($year,2,2); $prevmonthlink = qq~<< ~; $nextmonthlink = qq~ >>~; $viewyearfuture = substr(($year+1),2,2); $viewyearpast = substr(($year-1),2,2); $pyear = $year-1; $fyear = $year+1; $prevyearlink = qq~<< ~; $nextyearlink = qq~ >>~; $yymain .= qq~
~; for ($i=0;$i<7;$i++) {$yymain .= " \n";} $yymain .= " \n"; $yymain .= qq~~; while ($pvm <= $days_in_month) { for ($weekday = 1; $weekday <= 7; $weekday++) { if ($pvm >= 1 && $pvm <= $days_in_month) { $class = "windowbg2"; $message = ""; $pvm_text = $pvm; $number = $pvm; $pvm_seq = &serial_number(); $displayday = $pvm < 10 ? "0".$pvm : $pvm; $paivays = $viewyear.$viewmonth.$displayday; $pvm_text = length($pvm)==1 ? " ".$pvm." " : "".$pvm.""; $pvm_text = (($red_sundays == 1) && ($weekday == 1)) ? "".$pvm_text."" : $pvm_text; $day_link = qq~ $pvm_text ~; $style = " "; DATECHECK2: if (($nextnote) && ($n_date eq $paivays)) { if ($SMI == 1) { if ($n_type eq "BD") { $class = "birthday"; ($BDName,$BDYear) = split(/::/, $n_data); $style .= "background-image:URL('$imagesdir/birthday_small.gif'); background-repeat:no-repeat;"; $message .= "".$BDName." ".($year-$BDYear)."... \n"; } elsif ($n_type eq "NO") { $class = "note"; $style .= " background-image:URL('$imagesdir/note_small.gif'); background-repeat:no-repeat;"; $i=1; (@events) = split(/::/, $n_data); foreach $event (@events) { if (length($event) > 0) { if ($i > 4) { $message .= "
...
\n"; last; } else { $message .= "".$i++.". ".substr($event,0,10)."... \n"; } } } } elsif ($n_type eq "HO") { $class = "note"; $style .= " background-image:URL('$imagesdir/holiday_small.gif'); background-repeat:no-repeat;"; $message .= "".substr($n_data,0,10)."... \n"; } } else { if ($n_type eq "BD") { $class = "birthday"; ($BDName,$BDYear) = split(/::/, $n_data); $message .= "".$BDName." ".($year-$BDYear)."... \n"; } elsif ($n_type eq "NO") { $class = "note"; $i=1; (@events) = split(/::/, $n_data); foreach $event (@events) { if (length($event) > 0) { if ($i > 4) { $message .= "
...
\n"; last; } else { $message .= "".$i++.". ".substr($event,0,10)."... \n"; } } } } elsif ($n_type eq "HO") { $class = "note"; $message .= "".substr($n_data,0,10)."... \n"; } } &get_event; goto DATECHECK2; } if ($hlightday == 1) { if (($mdayA == $pvm) && ($monA == $mon) && ($yearA == $year)) {$class = "windowbg";} } else { if (($day == $pvm) && ($viewmonth == $month) && ($viewyear == $year)) {$class = "today2";} } } else { $class = "windowbg2"; $style = " "; $day_link = " "; $message = " "; } if ($displayday == "") {$yymain .= qq~~;} else {$yymain .= qq~~;} $pvm++; } if ($pvm <= $days_in_month) { $yymain .= qq~~; } } $yymain .= qq~
~; if ($onemonth == 1) {$yymain .= qq~ ~; } else {$yymain .= qq~ ~;} if ($allowcaluser == "1"){ if ($username ne "Guest" && $settings[7] ne "Administrator"){ $yymain .= qq~ ~;}} $yymain .= qq~
calendar $prevyearlink $nextyearlink$prevmonthlink$monthyear$nextmonthlinkcalendar
".@days[$i]."
$day_link$message
~; if ($onemonth == 1) { $yymain .= qq~ ~; } else { $yymain .= qq~

$txt{'193'}

~;} if ($onemonth == 1) { $yytitle = "$caltxt{'1'} year, $year"; }else{ $yytitle = $caltxt{'1'}; } &template; exit; } sub cal_modify { &get_settings; $displayday = $passedday == 0 ? $INFO{'viewday'} : $passedday; $passedday=0; $yy=substr($displayday,2,2); $yyyy=substr($displayday,0,4); $mm=substr($displayday,4,2); $dd=substr($displayday,6,2); $pvm = substr($displayday,4,4); $mon=$mm-1; if ($dd == 1) { if ($mm == 1) { $prev_year = $yyyy-1; $prev_mon = "12"; $prev_day = "31"; } else { $prev_year = $yyyy; $prev_mon = $mm-1; $prev_mon = length($prev_mon) > 1 ? $prev_mon : "0".$prev_mon; $mon--; $prev_day = &days_in_month(); $mon++; $prev_day = length($prev_day) > 1 ? $prev_day : "0".$prev_day; } } else { $prev_year = $yyyy; $prev_mon = $mm; $prev_day = $dd-1; $prev_day = length($prev_day) > 1 ? $prev_day : "0".$prev_day; } $prev_date = $prev_year.$prev_mon.$prev_day; if (&days_in_month() == $dd) { if ($mm == 12) { $next_day = "01"; $next_mon = "01"; $next_year = $yyyy+1; } else { $next_year = $yyyy; $next_mon = $mm+1; $next_mon = length($next_mon) > 1 ? $next_mon : "0".$next_mon; $next_day .= "01"; } } else { $next_year = $yyyy; $next_mon = $mm; $next_day = $dd+1; $next_day = length($next_day) > 1 ? $next_day : "0".$next_day; } $next_date = $next_year.$next_mon.$next_day; $prev_day = $prev_day<10&&length($prev_day)>1?substr($prev_day,-1,1):$prev_day; # If previous date contains '0' as first char, remove it $number = $prev_day; $prev_day = serial_number(); # Add 'st', 'nd', 'rd' or 'th' at the end of previous date # $prev_mon = $prev_mon<10&&length($prev_mon)>1?substr($prev_mon,-1,1):$prev_mon; # If previous month contains '0' as first char, remove it $prev_mon = @months[($prev_mon-1)]; # Change previous month to text $next_day = $next_day<10&&length($next_day)>1?substr($next_day,-1,1):$next_day; # If next date contains '0' as first char, remove it $number = $next_day; $next_day = serial_number(); # Add 'st', 'nd', 'rd' or 'th' at the end of next date # $next_mon = $next_mon<10&&length($next_mon)>1?substr($next_mon,-1,1):$next_mon; # If next month contains '0' as first char, remove it $next_mon = @months[($next_mon-1)]; # Change next month to text $prev_date = "<<"; $next_date = ">>"; if ($dd == 1 || $dd == 21 || $dd == 31) {$datewords=$caltxt{'12'};} elsif ($dd == 2 || $dd == 22) {$datewords=$caltxt{'13'};} elsif ($dd == 3 || $dd == 23) {$datewords=$caltxt{'14'};} else {$datewords=$caltxt{'15'};} if($dd <= 9) {$dd=substr($dd,1,1);} $displaymonth=$mm; $monthname = @months[($mm-1)]; if ($displaymonth == 1) {$vm ="January";} if ($displaymonth == 2) {$vm ="February";} if ($displaymonth == 3) {$vm ="March";} if ($displaymonth == 4) {$vm ="April";} if ($displaymonth == 5) {$vm ="May";} if ($displaymonth == 6) {$vm ="June";} if ($displaymonth == 7) {$vm ="July";} if ($displaymonth == 8) {$vm ="August";} if ($displaymonth == 9) {$vm ="September";} if ($displaymonth == 10) {$vm ="October";} if ($displaymonth == 11) {$vm ="November";} if ($displaymonth == 12) {$vm ="December";} $monthlink=qq~$monthname~; my $dayhold="$dd$datewords"; if ($show_birthdays == 1) { fopen(FILE, "$memberdir/memberlist.txt") || die "cannot open list file"; @members = ; fclose(FILE); foreach $usernames (@members) { chomp $usernames; fopen(FILE, "$memberdir/$usernames.dat") || die "cannot open user file"; @userbd = ; fclose(FILE); chomp $userbd[1]; chomp $userbd[16]; if ($userbd[16]) { ($usermonth, $userday, $useryear) = split(/\//, $userbd[16]); if ($usermonth.$userday == $pvm) { $age = $yyyy-$useryear; $string = qq~ $txt{'563'} $userbd[1] $caltxt{'17'} $age $caltxt{'18'} $txt{'2'} ~; push (@events, $string); } } } } if (fopen(HOLIDAYS, "$vardir/Calendar/holidays.txt")) { @holidays = ; fclose(HOLIDAYS); foreach $holiday (@holidays) { chomp $holiday; ($holi_date, $holi_day) = split(/\|/, $holiday); if ((length($holi_date) == 8) && ($yyyy == substr($holi_date,0,4))) {$holi_date = substr($holi_date,-4);} if ($holi_date eq $pvm) { $string = qq~ $caltxt{'39'} $holi_day $txt{'2'} ~; push (@events, $string); } } } if (fopen(TIEDOSTO, "$vardir/Calendar/$displayday.evt")) { $i=0; while () { chomp; $event_type = ""; ($message,$composer,$private,$nosmileys) = split(/\|/); if (($allowprivate==0) || (($allowprivate==1) && (($private == 0) || ($composer eq $username) || ($settings[7] eq "Administrator")))) { $i++; $preubbcmessage = $message; if($enable_ubbc && ($nosmileys != 1)) { if(!$yyYaBBCloaded) { require "$sourcedir/YaBBC.pl"; } &DoUBBC; } $composer_link = ($composer ne "Guest") ? "$composer" : $composer; if (($allowprivate == 1) && ($private == 1)) {$event_type = "".$caltxt{'40'}."";} if (($username eq $composer) || ($settings[7] eq "Administrator")) { $composer = qq~
$composer_link
~; } if ($i == 1) {$nootti = "\"$i$caltxt{'12'}";} elsif ($i == 2) {$nootti = "\"$i$caltxt{'13'}";} elsif ($i == 3) {$nootti = "\"$i$caltxt{'14'}";} else {$nootti = "\"$i$caltxt{'15'}";} $string = qq~ $nootti $message $event_type$composer ~; push (@events, $string); } } fclose(TIEDOSTO); } if ($events[0]) { $yymain .= qq~ ~; foreach (@events) {$yymain .= $_ if (length($_) > 10);} } else { $yymain .= qq~
$caltxt{'1'} $prev_date $monthlink $dayhold, $yyyy $next_date $txt{'279'}:
~; } if ((($username ne "Guest") || ($calguest == 1)) && (($settings[7] eq "Administrator") || ($admincalendar == 0))) { $yymain .= qq~
$caltxt{'1'} $prev_date $monthlink $dayhold, $yyyy $next_date
$caltxt{'3'}
~; } $yymain .= qq~
$caltxt{'9'}
~; if ($allowprivate == 1) {$yymain .= "$caltxt{'40'}? \n";} $yymain .= qq~
$txt{'276'}: $txt{'277'}

$txt{'193'}

~; $yytitle = "$caltxt{'1'} - $monthname $dayhold, $yyyy"; &template; exit; } sub cal_modify2 { &get_settings; if (($settings[7] ne "Administrator") && ($admincalendar == 1)) { $yymain .= "Only Admins are allowed to add Calendar notes!"; $displayday = $FORM{'datetopost'}; } elsif (($username eq "Guest") && ($calguest == 0)) { $yymain .= "Only Registered Members are allowed to add Calendar notes!"; $displayday = $FORM{'datetopost'}; } else { $displayday = $FORM{'datetopost'}; $message = $FORM{'postmessage'}; $nosmileys = $FORM{'nosmileys'}; $calprivate = $FORM{'private'}; $message =~ s/\|/-/g; $message =~ s/\n//g; $message =~ s/\r//g; if (length($message) == 0) {&calendarposterror;} else { $filename=$displayday.".evt"; fopen(FILE, "$vardir/Calendar/$filename"); @inputfile = ; fclose(FILE); $zzcount=0; foreach $totalmessage (@inputfile) { ($totalmessage,$trash) = split( /\|/, $totalmessage); if ($totalmessage eq $message) { $zzcount++; } } if ($calprivate eq "X") {$calprivate=1;} else {$calprivate=0} if ($zzcount == 0) { fopen(FILE, ">>$vardir/Calendar/$filename",1); print FILE $message."|".$username."|".$calprivate."|".$nosmileys."\n"; fclose(FILE); $filename="calendar.txt"; fopen (FILE,"$vardir/Calendar/$filename"); @events = ; fclose(FILE); $xxcount = 0; foreach $event (@events) { if ($event == $displayday) {$xxcount++;} } if ($xxcount == 0) { fopen(FILE, ">>$vardir/Calendar/$filename",1); print FILE $displayday."\n"; fclose(FILE); } } } } $passedday=$displayday; &cal_modify; exit; } sub calendarposterror { $yymain .= qq~
$caltxt{'19'}
$caltxt{'11'}

$txt{'193'}

~; $yytitle="$caltxt{'19'}"; &template; exit; } sub cal_delete_message { $messageno=$INFO{'message'}; $messageno="message".$messageno; $deletemessage=$FORM{$messageno}; $displayday=$INFO{'viewday'}; chomp $deletemessage; $filename=$displayday.".evt"; fopen(FILE, "$vardir/Calendar/$filename"); @inputfile = ; fclose(FILE); $goodmessagecount=0; foreach $inputentry (@inputfile) { ($messagex,$postuser) = split( /\|/, $inputentry); if ($messagex ne $deletemessage) { $goodmessagecount++; push(@outputfile,$inputentry); } } if ($goodmessagecount >= 1) { fopen(FILE,">$vardir/Calendar/$filename",1); print FILE @outputfile; fclose(FILE); } else { unlink ("$vardir/Calendar/$filename"); fopen(FILE,"$vardir/Calendar/calendar.txt"); @inputfile = ; fclose(FILE); foreach $inputentry (@inputfile) { if ($inputentry != $displayday) {push (@caloutputfile,$inputentry);} } fopen(FILE,">$vardir/Calendar/calendar.txt",1); print FILE @caloutputfile; fclose(FILE); } $viewday=$displayday; &cal_modify; } sub caladmin { &is_admin; &get_settings; $calguest_c = $calguest == 1 ? " CHECKED" : ""; $calindex_c = $calindex == 1 ? " CHECKED" : ""; $caltop_c = $caltop == 1 ? " CHECKED" : ""; $onemonth_c = $onemonth == 1 ? " CHECKED" : ""; $hlightday_c = $hlightday == 1 ? " CHECKED" : ""; $allowprivate_c = $allowprivate == 1 ? " CHECKED" : ""; $admincalendar_c = $admincalendar == 1 ? " CHECKED" : ""; $dayoffset_c = $dayoffset == 1 ? " CHECKED" : ""; $red_sundays_c = $red_sundays == 1 ? " CHECKED" : ""; $floating_calendar_c = $floating_calendar == 1 ? " CHECKED" : ""; $show_birthdays_c = $show_birthdays == 1 ? " CHECKED" : ""; $minical_c = $minical == 1 ? " CHECKED" : ""; $SMI_c = $SMI == 1 ? " CHECKED" : ""; $allowcaluser_c = $allowcaluser == 1 ? " CHECKED" : ""; $yymain .= qq~
$caltxt{'20'}
$caltxt{'49'}
$caltxt{'50'}
$caltxt{'28'} $caltxt{'26'}
$caltxt{'43'} $caltxt{'46'}
$caltxt{'31'} $caltxt{'47'}
$caltxt{'29'}
$caltxt{'30'}
$caltxt{'51'}
$caltxt{'25'} $caltxt{'44'}
$caltxt{'27'} $caltxt{'23'}
$caltxt{'32'} $caltxt{'21'}
$caltxt{'52'} $caltxt{'22'}
$caltxt{'61'} $caltxt{'48'}
$caltxt{'60'}
$caltxt{'37'}
$caltxt{'24'}

$txt{'193'}

~; $yytitle = $caltxt{'20'}; &template; exit; } sub cal_delete_messages { &is_admin; if($settings[7] ne "Administrator") { &fatal_error("$txt{'1'}"); } &timeformat($date); ($curm, $curd, $cury) = split(/\//, $date); ($cury, $trash) = split(/ /, $cury); $daysdelete=$FORM{'caldeletedays'}; $curdateno = ($cury*365)+($curm*30)+$curd; $deletedateno = $curdateno-$daysdelete; fopen (FILE,"$vardir/Calendar/calendar.txt"); @calendar=; fclose(FILE); $delcount=0; foreach $calentry (@calendar) { $yy=substr($calentry,2,2); $mm=substr($calentry,4,2); $dd=substr($calentry,6,2); $caldateno = ($yy*365)+($mm*30)+$dd; if ($caldateno >= $deletedateno) {push (@donotdelete,$calentry);} else { $filename=substr($calentry,0,8).".evt"; unlink("$vardir/Calendar/$filename"); $delcount++; } } if ($delcount != 0) { unlink ("$vardir/Calendar/calendar.txt"); fopen (FILE,">$vardir/Calendar/calendar.txt",1); print FILE @donotdelete; fclose(FILE); } $yymain .= qq~
$delcount $caltxt{'38'}.

$txt{'193'}

~; $yytitle=$caltxt{'1'}; &template; exit; } sub make_note_array { fopen(FILE, "$vardir/Calendar/calendar.txt"); @calendar = ; fclose(FILE); fopen(FILE, "$memberdir/memberlist.txt") || die "cannot open list file"; @members = ; fclose(FILE); foreach $calentry (@calendar) { chomp $calentry; $datas = 0; $data = ""; fopen(CALFILE, "$vardir/Calendar/$calentry.evt") || die "Cannot open file $filename"; while () { chomp; if ($datas > 0) {$data .= "::";} ($message,$composer,$private) = split(/\|/); if (($allowprivate==0) || (($allowprivate==1) && (($private == 0) || ($composer eq $username) || ($settings[7] eq "Administrator")))) { $data .= $message; $datas++; } } fclose(CALFILE); if (length($data)>0) {push(@all_events, $calentry."NO".$data);} } if ($yearstart) { $first_noted_year = $yearstart; $last_noted_year = $yearstart+(int($displaymonths/12)+1); } elsif ($year) {$first_noted_year = $last_noted_year = $year;} if ($show_birthdays == 1) { @all_events = sort @all_events; foreach $usernames (@members) { chomp $usernames; fopen(FILE, "$memberdir/$usernames.dat") || die "cannot open user file"; @userbd = ; fclose(FILE); chomp $userbd[1]; chomp $userbd[16]; if ($userbd[16]) { ($usermonth, $userday, $useryear) = split(/\//, $userbd[16]); $string = (length($usermonth) == 1) ? "0$usermonth" : $usermonth; $string .= (length($userday) == 1) ? "0$userday" : $userday; $string .= "BD$userbd[1]::$useryear"; for ($ayear = $first_noted_year ; $ayear <= $last_noted_year ; $ayear++) { push (@all_events, $ayear.$string); } } } } if (fopen(HOLIDAYS, "$vardir/Calendar/holidays.txt")) { @holidays = ; fclose(HOLIDAYS); foreach $holiday (@holidays) { chomp $holiday; ($holi_date, $holi_day) = split(/\|/, $holiday); if (length($holi_date) == 8) { push (@all_events, $holi_date."HO".$holi_day); } else { for ($ayear = $first_noted_year ; $ayear <= $last_noted_year ; $ayear++) {push (@all_events, $ayear.$holi_date."HO".$holi_day);} } } } @all_events = sort @all_events; } sub get_event { $nextnote = shift(@all_events); if ($nextnote) { $n_year = substr($nextnote,0,4); $n_month = substr($nextnote,4,2); $n_day = substr($nextnote,6,2); $n_date = substr($nextnote,2,6); $n_type = substr($nextnote,8,2); $n_data = substr($nextnote,10); } else {$nextnote = 0;} } sub calendar_index { # "Open" the table $yymain .= qq~ $caltxt{'1'} ~; if ($displayevents > 0) {$yymain .= qq~ $caltxt{'45a'}$displayevents $caltxt{'45b'}~;} $yymain .= qq~ ~; if ($minical == 1) { $yymain .= qq~~; } $yymain .= qq~
~; ($secx,$minx,$hourx,$ddx,$mmx,$yyx,$tmpx,$tmpx,$tmpx) = localtime(time + (86400*$displayevents)); $mmx = $mmx + 1; $yyx = ($yyx % 100); $yyx = ($yyx < 10) ? "0".$yyx : $yyx; $date2 = $mmx."/".$ddx."/".$yyx." at 00:00:00"; $date2 = stringtotime($date2); # Get Calendar Notes fopen(FILE, "$vardir/Calendar/calendar.txt") || die "$txt{'23'} - $vardir/Calendar/calendar.txt"; @calendar=; fclose(FILE); require "$sourcedir/Subs.pl"; &timeformat($date); ($curmon, $curday, $curyear) = split(/\//, $date); ($curyear, $trash) = split(/ /, $curyear); $calcount=0; if ($displayevents == 0) { # Display the amount of Calendar notes if ($calcount == 0) { $yymain .= qq~$caltxt{'3'}~; } elsif ($calcount == 1) { $yymain .= qq~$calcount $caltxt{'4'}. ~; } elsif ($calcount >= 2) { $yymain .= qq~$calcount $caltxt{'5'}. ~; } } foreach $calentry (sort @calendar) { $yy=substr($calentry,2,2); $mm=substr($calentry,4,2); $dd=substr($calentry,6,2); $date1=$mm."/".$dd."/".$yy." at 00:00:00"; $date1 = stringtotime($date1); $result = ($date2 - $date1) / 86400; if ((($displayevents == 0) && (($dd == $curday) && ($mm == $curmon) && ($yy == $curyear))) || (($displayevents > 0) && (($result >= 0) && ($result <= $displayevents)))) { $filename="20".$yy.$mm.$dd.".evt"; fopen (FILE,"$vardir/Calendar/$filename"); @daysevents=; fclose(FILE); foreach $event (sort @daysevents) { if ($displayevents > 0) { ($message,$postuser,$calprivate) = split( /\|/, $event); $preubbcmessage=$message; if($enable_ubbc) { if(!$yyYaBBCloaded) { require "$sourcedir/YaBBC.pl"; } &DoUBBC; } $message =~ s~(\S{80})(?=\S)~$1\n~g; if($calprivate eq 0) { if($calcount >= 1) { $yymain .= qq~
~; } $yymain .= qq~$mm/$dd/20$yy : $message - ~; if(!$yyUDLoaded{$postuser}) { &LoadUser($postuser); } if(exists $userprofile{$postuser}) { $yymain .= qq~ $userprofile{$postuser}->[1]~; } else { $yymain .= qq~ $postuser ~; } } } $calcount++; } } } if ($show_birthdays == 1) { # Get Birthdays fopen(FILE, "$memberdir/memberlist.txt") || die "$txt{'23'} - $memberdir/memberlist.txt"; @members = ; fclose(FILE); foreach $usernames (@members) { chomp $usernames; $mem = $members; fopen(FILE, "$memberdir/$usernames.dat") || die "$txt{'23'} - $memberdir/$usernames.dat"; @userbd = ; fclose(FILE); chomp $userbd[16]; ($matchmon, $matchday, $matchyear) = split(/\//, $userbd[16]); if ($matchday >= 1) { if (($matchmon < $curmon) || (($matchmon == $curmon) && ($matchday < $curday))) { $newy = $curyear + 1; } else { $newy = $curyear; } $date1=$matchmon."/".$matchday."/".$newy." at 00:00:00"; $date1 = stringtotime($date1); $result = ($date2 - $date1) / 86400; if ((($displayevents == 0) && (($matchmon == $curmon) && ($matchday == $curday))) || (($displayevents > 0) && (($result >= 0) && ($result <= $displayevents)))) { if($calcount >= 1) { $yymain .= qq~
~; } ($matchyear, $trash) = split(/ /, $matchyear); $age = 2000 + $newy - $matchyear; &datestyle; $yymain .= qq~$datestyle : $userbd[1] $caltxt{'17'} $age $caltxt{'18'}~; } $calcount++; } } } $show_holidays = 1; if ($show_holidays == 1) { fopen(HOLIDAYS, "$vardir/Calendar/holidays.txt") || die "$txt{'23'} - $vardir/Calendar/holidays.txt"; @holidays = ; fclose(HOLIDAYS); foreach $holiday (sort @holidays) { ($holi_date, $holi_day) = split(/\|/, $holiday); if (length($holi_date) == 8) { $matchyear=substr($holi_date,2,2); $matchmon=substr($holi_date,4,2); $matchday=substr($holi_date,6,2); } elsif (length($holi_date) == 4) { $matchmon=substr($holi_date,0,2); $matchday=substr($holi_date,2,2); $matchyear=$curyear; } if (($matchmon < $curmon) || (($matchmon == $curmon) && ($matchday < $curday))) { $newy = $curyear + 1; } else { $newy = $curyear; } $date1=$matchmon."/".$matchday."/".$matchyear." at 00:00:00"; $date1 = stringtotime($date1); $result = ($date2 - $date1) / 86400; if ((($displayevents == 0) && (($matchday == $curday) && ($matchmon == $curmon) && ($matchyear == $curyear))) || (($displayevents > 0) && (($result >= 0) && ($result <= $displayevents)))) { if ($displayevents > 0) { if($calcount >= 1) {$yymain .= qq~
~;} &datestyle; $yymain .= qq~$datestyle : $holi_day ~; } $calcount++; } } } if($calcount >= 1) {$yymain .= qq~
~;} $yymain .= qq~ $txt{'791'} $caltxt{'1'}
~;&minical;$yymain .= qq~
~; } sub minical { use Time::Local; $calpast = 0; $calfuture = 1; ($secA,$minA,$hourA,$mdayA,$monA,$yearA,$wdayA,$ydayA,$isdstA) = localtime(time + (3600*($timeoffset+$settings[18]))); $yearstart = $yearA+1900; $displaymonths=$calpast+$calfuture; $monthstart=1+$monA-$calpast; $monthend=1+$monA+$calfuture; while ($monthstart <= 0) { $monthstart+=12; $yearstart-=1; } &make_note_array; &get_event; while (($nextnote) && (($n_year < $yearstart) || (($n_year == $yearstart) && ($n_month < $monthstart)))) {&get_event;} $yymain .= "\n\n\n \n \n \n
"; for ($z=0; $z<$displaymonths; $z++) { $displayyear=$yearstart; $displaymonth=$monthstart+$z; while ($displaymonth >= 13) { $displaymonth-=12; $displayyear++; } if (length($displayyear)== 1) {$displayyear="0$displayyear";} if (length($displaymonth)== 1) {$displaymonth="0$displaymonth";} if (($z+1)%$calwidth == 1 && $z >= 1) {$yymain .= "
";} elsif ($z > 0) {$yymain .= "";} &minidraw; } $yymain .= "
"; } sub minidraw { $yytitle = "$txt{'18'}"; $mon = $displaymonth-1; $year = $displayyear; $days_in_month = &days_in_month(); ($temp,$temp,$temp,$temp,$temp,$temp,$wday,$temp,$temp) = localtime(timegm(0,0,0,1,$mon,$year)); $pvm = 1-$wday; if ($dayoffset == 1) # Offset {$pvm--;} @months2 = ('January','February','March','April','May','Jun','July','August','September','October','November','December'); $displayyear=substr($displayyear,-2); # $monthyear = @months2[$mon]." ".$year; $monthyear1 = @months2[$mon]; $monthyear2 = " ".$year; $yymain .= qq~ ~; for ($i=0;$i<7;$i++) {$yymain .= "\n";} $yymain .= " \n"; while ($pvm <= $days_in_month) { $yymain .= " \n"; for ($weekdaycounter=0;$weekdaycounter<7;$weekdaycounter++) { if ($pvm >= 1 && $pvm <= $days_in_month) { $displayday = $pvm < 10 ? "0".$pvm : $pvm; $paivays = $displayyear.$displaymonth.$displayday; $class = "normal"; $pvm_text = $pvm; $number = $pvm; $pvm_seq = &serial_number(); $style = ""; DATECHECK3: if (($nextnote) && ($n_date eq $paivays)) { if ($SMI == 1) { if ($n_type eq "BD") { $style .= " background-image:URL('$imagesdir/birthday_small.gif'); background-repeat:no-repeat;"; $class = "birthday"; $pvm_text = "$pvm"; } elsif ($n_type eq "HO") { $style .= " background-image:URL('$imagesdir/holiday_small.gif'); background-repeat:no-repeat;"; $class = "note"; $pvm_text = "$pvm"; } elsif ($n_type eq "NO") { $style .= " background-image:URL('$imagesdir/note_small.gif'); background-repeat:no-repeat;"; $class = "note"; $pvm_text = "$pvm"; } } else { if ($n_type eq "BD") { $class = "birthday"; $pvm_text = "$pvm"; } elsif ($n_type eq "HO") { $class = "note"; $pvm_text = "$pvm"; } elsif ($n_type eq "NO") { $class = "note"; $pvm_text = "$pvm"; } } &get_event; goto DATECHECK3; } elsif (($mdayA == $pvm) && (($monA+1) == $displaymonth) && (($yearA-100) == $displayyear)) { $class = "today"; $pvm_text = "".$pvm_text.""; } $pvm_text = (($red_sundays == 1) && ($weekdaycounter == 0)) ? " ".$pvm_text." " : " ".$pvm_text." "; $day_link = qq~$pvm_text~; $yymain .= " "; } elsif ($floating_calendar == 1) {$yymain .= " \n";} else {$yymain .= " \n";} $pvm++; } $yymain .= " \n"; } $yymain .= "
$monthyear1$monthyear2
".substr(@days[$i],0,2)."
$day_link
"; } sub calhol { &is_admin; $yytitle = "holidays"; $database="$vardir/Calendar/holidays.txt"; if ($input{'database'} eq ''){ $db=$database; }else{ $db=$input{'database'}; } fopen (ORGDB,"<$database"); @ODB=; fclose (ORGDB); $yymain .= qq~

$caltxt{'53'}

~; foreach $rec (@ODB){ chomp($rec); ($date,$day)=split(/\|/,$rec); if (length($date) == 8){ $yy=substr($date,0,4); $mm=substr($date,4,2); $dd=substr($date,6,2); $event="$yy/$mm/$dd"; } elsif (length($date) == 4){ $mm=substr($date,0,2); $dd=substr($date,2,2); $yy=""; $event="$mm/$dd"; } $yymain .= qq~ ~; } $yymain .= qq~
Actions $txt{'317'} $caltxt{'55'} $caltxt{'39'}
$event$day
$txt{'317'}/ /$caltxt{'55'}
$caltxt{'59'}
~; &template; exit; } sub calholdeladd { &is_admin; $database="$vardir/Calendar/holidays.txt"; fopen (ORGDB,"<$database"); @ODB=; fclose (ORGDB); fopen (DATABASE,">$database"); @DB=; foreach $rec (@ODB){ chomp($rec); ($date,$day)=split(/\|/,$rec); if ($date eq $FORM{'date'} && $day eq $FORM{'day'}){ print DATABASE "$FORM{'ndate'}|$FORM{'nday'}\n"; }else{ print DATABASE "$date|$day\n"; } } fclose (DATABASE); if ($FORM{'calhol'} eq 'add'){ if ($FORM{'nyear'} eq ''){ fopen (DATABASE1,">>$database"); print DATABASE1 "$FORM{'nmonth'}$FORM{'ndate'}|$FORM{'nday'}\n"; fclose (DATABASE1); }else { fopen (DATABASE1,">>$database"); print DATABASE1 "$FORM{'nyear'}$FORM{'nmonth'}$FORM{'ndate'}|$FORM{'nday'}\n"; fclose (DATABASE1); } } if ($FORM{'calhol'} eq 'delete'){ fopen (DATABASE,">$database"); @DB=; foreach $rec (@ODB){ chomp($rec); ($date,$day)=split(/\|/,$rec); if ($date eq $FORM{'date'} && $day eq $FORM{'day'}){ print DATABASE ""; }else{ print DATABASE "$date|$day\n"; } } fclose (DATABASE); } $yySetLocation = qq~$cgi;action=calhol~; &redirectexit; &template; exit; } sub calholedit { &is_admin; $yymain .= qq~
$txt{'317'}
$caltxt{'59'}
~; &template; exit; } sub caluser { if ($username eq 'Guest'){ &is_admin; } else { &get_settings; $calindex_c = $calindex == 1 ? " CHECKED" : ""; $caltop_c = $caltop == 1 ? " CHECKED" : ""; $onemonth_c = $onemonth == 1 ? " CHECKED" : ""; $hlightday_c = $hlightday == 1 ? " CHECKED" : ""; $red_sundays_c = $red_sundays == 1 ? " CHECKED" : ""; $floating_calendar_c = $floating_calendar == 1 ? " CHECKED" : ""; $show_birthdays_c = $show_birthdays == 1 ? " CHECKED" : ""; $minical_c = $minical == 1 ? " CHECKED" : ""; $SMI_c = $SMI == 1 ? " CHECKED" : ""; $yymain .= qq~
$caltxt{'20'}
$caltxt{'49'}
$caltxt{'50'}
$caltxt{'21'} $caltxt{'26'}
$caltxt{'22'} $caltxt{'46'}
$caltxt{'23'} $caltxt{'47'}
$caltxt{'31'}
$caltxt{'29'}
$caltxt{'51'}
$caltxt{'30'} $caltxt{'44'}
$caltxt{'52'} $caltxt{'48'}

$txt{'193'}

~; $yytitle = $caltxt{'20'}; &template; exit; } } sub get_settings { fopen(FILE,"$vardir/Calendar/calsettings.txt"); @calsettings=; fclose(FILE); $dayoffset=(@calsettings[4])?@calsettings[4]:0; $caltop=(@calsettings[5])?@calsettings[5]:1; $calguest=(@calsettings[12])?@calsettings[12]:0; $allowprivate=(@calsettings[13])?@calsettings[13]:1; $admincalendar=(@calsettings[14])?@calsettings[14]:0; $allowcaluser=(@calsettings[17])?@calsettings[17]:0; if ($username ne "Guest" && $settings[7] ne "Administrator"){ fopen(FILE,"$memberdir/$username.cal"); @calsettings=; fclose(FILE); $calpast=(@calsettings[0])?@calsettings[0]:4; $calfuture=(@calsettings[1])?@calsettings[1]:8; $calwidth=(@calsettings[2])?@calsettings[2]:3; $displayevents=(@calsettings[3])?@calsettings[3]:0; $calindex=(@calsettings[4])?@calsettings[4]:1; $onemonth=(@calsettings[5])?@calsettings[5]:0; $hlightday=(@calsettings[6])?@calsettings[6]:1; $red_sundays=(@calsettings[7])?@calsettings[7]:1; $floating_calendar=(@calsettings[8])?@calsettings[8]:0; $show_birthdays=(@calsettings[9])?@calsettings[9]:1; $minical=(@calsettings[10])?@calsettings[10]:0; $SMI=(@calsettings[11])?@calsettings[11]:0; } else { fopen(FILE,"$vardir/Calendar/calsettings.txt"); @calsettings=; fclose(FILE); $calpast=(@calsettings[0])?@calsettings[0]:4; $calfuture=(@calsettings[1])?@calsettings[1]:8; $calwidth=(@calsettings[2])?@calsettings[2]:3; $displayevents=(@calsettings[3])?@calsettings[3]:0; $calindex=(@calsettings[6])?@calsettings[6]:1; $onemonth=(@calsettings[7])?@calsettings[7]:0; $hlightday=(@calsettings[8])?@calsettings[8]:1; $red_sundays=(@calsettings[9])?@calsettings[9]:1; $floating_calendar=(@calsettings[10])?@calsettings[10]:0; $show_birthdays=(@calsettings[11])?@calsettings[11]:1; $minical=(@calsettings[15])?@calsettings[15]:0; $SMI=(@calsettings[16])?@calsettings[16]:0; } } sub cal_save_settings { &is_admin; $calpast=$FORM{'monthspast'}; $calfuture=$FORM{'monthsfuture'}; $calwidth=$FORM{'modwidth'}; $displayevents=$FORM{'displayevents'}; $guestallow=$FORM{'enableguest'}; $calindex=$FORM{'calindex'}; $caltop=$FORM{'caltop'}; $onemonth=$FORM{'onemonth'}; $hlightday=$FORM{'hlightday'}; $allowprivate=$FORM{'allowprivate'}; $dayoffset=$FORM{'dayoffset'}; $red_sundays=$FORM{'red_sundays'}; $floating_calendar=$FORM{'floating_calendar'}; $show_birthdays=$FORM{'show_birthdays'}; $admincalendar=$FORM{'admincalendar'}; $minical=$FORM{'minical'}; $SMI=$FORM{'SMI'}; $allowcaluser=$FORM{'allowcaluser'}; if ($calpast < 0) { $calpast = 0; push(@information,$caltxt{'33'}); } if ($calfuture <= 0 ) { $calfuture = 1; push (@information,$caltxt{'34'}); } if ($calwidth <= 0) { $calwidth=1; push (@information,$caltxt{'35'}); } if ($displayevents < 0 ) { $displayevents = 0; } $calguest = $guestallow eq "x" ? 1 : 0; $calindex = $calindex eq "x" ? 1 : 0; $allowprivate = $allowprivate eq "x" ? 1 : 0; $caltop = $caltop eq "x" ? 1 : 0; $onemonth = $onemonth eq "x" ? 1 : 0; $hlightday = $hlightday eq "x" ? 1 : 0; $admincalendar = $admincalendar eq "x" ? 1 : 0; $dayoffset = $dayoffset eq "x" ? 1 : 0; $red_sundays = $red_sundays eq "x" ? 1 : 0; $floating_calendar = $floating_calendar eq "x" ? 1 : 0; $show_birthdays = $show_birthdays eq "x" ? 1 : 0; $minical = $minical eq "x" ? 1 : 0; $SMI = $SMI eq "x" ? 1 : 0; $allowcaluser = $allowcaluser eq "x" ? 1 : 0; unlink("$vardir/Calendar/calsettings.txt"); fopen(FILE,">$vardir/Calendar/calsettings.txt",1); if ($onemonth == 1) { print FILE "0\n"; }else { print FILE $calpast."\n"; } print FILE $calfuture."\n"; print FILE $calwidth."\n"; print FILE $displayevents."\n"; print FILE $dayoffset."\n"; print FILE $caltop."\n"; print FILE $calindex."\n"; print FILE $onemonth."\n"; print FILE $hlightday."\n"; print FILE $red_sundays."\n"; print FILE $floating_calendar."\n"; print FILE $show_birthdays."\n"; print FILE $calguest."\n"; print FILE $allowprivate."\n"; print FILE $admincalendar."\n"; print FILE $minical."\n"; print FILE $SMI."\n"; print FILE $allowcaluser."\n"; fclose(FILE); foreach $information (@information) {$yymain .= "$information ";} $yymain .= qq~ $caltxt{'36'}

$txt{'193'}

~; $yytitle = $caltxt{'1'}; &template; exit; } sub caluser_save_settings { if ($username eq 'Guest'){ &is_admin; } else { $calpast=$FORM{'monthspast'}; $calfuture=$FORM{'monthsfuture'}; $calwidth=$FORM{'modwidth'}; $displayevents=$FORM{'displayevents'}; $calindex=$FORM{'calindex'}; $onemonth=$FORM{'onemonth'}; $hlightday=$FORM{'hlightday'}; $red_sundays=$FORM{'red_sundays'}; $floating_calendar=$FORM{'floating_calendar'}; $show_birthdays=$FORM{'show_birthdays'}; $minical=$FORM{'minical'}; $SMI=$FORM{'SMI'}; if ($calpast < 0) { $calpast = 0; push(@information,$caltxt{'33'}); } if ($calfuture <= 0 ) { $calfuture = 1; push (@information,$caltxt{'34'}); } if ($calwidth <= 0) { $calwidth=1; push (@information,$caltxt{'35'}); } if ($displayevents < 0 ) { $displayevents = 0; } $calindex = $calindex eq "x" ? 1 : 0; $onemonth = $onemonth eq "x" ? 1 : 0; $hlightday = $hlightday eq "x" ? 1 : 0; $red_sundays = $red_sundays eq "x" ? 1 : 0; $floating_calendar = $floating_calendar eq "x" ? 1 : 0; $show_birthdays = $show_birthdays eq "x" ? 1 : 0; $minical = $minical eq "x" ? 1 : 0; $SMI = $SMI eq "x" ? 1 : 0; unlink("$memberdir/$username.cal"); fopen(FILE,">$memberdir/$username.cal",1); if ($onemonth == 1) { print FILE "0\n"; }else { print FILE $calpast."\n"; } print FILE $calfuture."\n"; print FILE $calwidth."\n"; print FILE $displayevents."\n"; print FILE $calindex."\n"; print FILE $onemonth."\n"; print FILE $hlightday."\n"; print FILE $red_sundays."\n"; print FILE $floating_calendar."\n"; print FILE $show_birthdays."\n"; print FILE $minical."\n"; print FILE $SMI."\n"; fclose(FILE); foreach $information (@information) {$yymain .= "$information ";} $yymain .= qq~ $caltxt{'36'}

$txt{'193'}

~; $yytitle = $caltxt{'1'}; &template; exit; } } sub datestyle{ if ($settings[17] > 0) { $mytimeselected = $settings[17]; } else { $mytimeselected = $timeselected; } if ($mytimeselected == 1) { $datestyle = qq~$matchmon/$matchday/$newy~; } elsif ($mytimeselected == 2) { $datestyle = qq~$matchday/$matchmon/$newy~; } elsif ($mytimeselected == 3) { $datestyle = qq~$$matchday.$matchmon.20$newy~; } elsif ($mytimeselected == 4) { $month2 = $months[$matchmon]; if( $matchday > 10 && $matchday < 20 ) { $newday2 = 'th'; } elsif( $matchday % 10 == 1 ) { $newday2 = 'st'; } elsif( $matchday% 10 == 2 ) { $newday2 = 'nd'; } elsif( $matchday % 10 == 3 ) { $newday2 = 'rd'; } else{ $newday2 = 'th'; } $datestyle = qq~$month2 $matchday$newday2 20$newy~; } elsif ($mytimeselected == 5) { $datestyle = qq~$matchmon/$matchdag/$newy~; } elsif ($mytimeselected == 6) { $datestyle = qq~$matchday/$matchmon/20$newy~; } else { $datestyle = qq~$matchmon/$matchday/20$newy~; } } 1;