diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-05-23 18:18:15 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-05-23 18:18:15 +0800 |
commit | 455ad22bfea540a4f7493c0126eb0d5032412050 (patch) | |
tree | 1d2e7a422fec93687d5b3745bb172a388b1e794f | |
parent | 10929e1b3d964c25d65f02bdcb77a2e02c2887dc (diff) | |
download | pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.tar pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.tar.gz pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.tar.bz2 pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.tar.lz pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.tar.xz pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.tar.zst pttbbs-455ad22bfea540a4f7493c0126eb0d5032412050.zip |
calendar support, XHTML valid
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@892 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rwxr-xr-x | blog/blog.pl | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/blog/blog.pl b/blog/blog.pl index 30577d14..f4875b57 100755 --- a/blog/blog.pl +++ b/blog/blog.pl @@ -6,6 +6,7 @@ use strict; use Data::Dumper; use Date::Calc qw(:all); use Template; +use HTML::Calendar::Simple; sub main { @@ -84,7 +85,57 @@ sub main } } - # output + # Calendar --------------------------------------------------------------- + if( $attr{"$fn.loadCalendar"} ){ + # 沒有合適的 module , 自己寫一個 |||b + my($c, $week, $day, $t, $link); + $c = ("<table border=\"0\" cellspacing=\"4\" cellpadding=\"0\">\n". + "<caption class=\"calendarhead\">$emonth[$m] $y</caption>\n". + "<tr>\n"); + $c .= ("<th abbr=\"$_->[0]\" align=\"center\">". + "<span class=\"calendar\">$_->[1]</span></th>\n") + foreach( ['Sunday', 'Sun'], ['Monday', 'Mon'], + ['Tuesday', 'Tue'], ['Wednesday', 'Wed'], + ['Thursday', 'Thu'], ['Friday', 'Fri'], + ['Saturday', 'Sat'] ); + + $week = Day_of_Week($y, $m, 1); + $c .= "</tr>\n<tr>\n"; + + if( $week == 7 ){ + $week = 0; + } + else{ + $c .= ("<th abbr=\"null\" align=\"center\"><span class=\"calendar\">". + " </span></th>\n") + foreach( 1..$week ); + } + foreach( 1..31 ){ + $c .= "<th abbr=\"$_\" align=\"center\"><span class=\"calendar\">"; + + $t = packdate($y, $m, $_); + if( !$article{"$t.title"} ){ + $c .= "$_"; + } + else{ + my $link = $attr{"$fn.loadCalendar"}; + $link =~ s/\[\% key \%\]/$t/g; + $c .= "<a href=\"$link\">$_</a>"; + } + + $c .= "</span></th>\n"; + if( ++$week == 7 ){ + $c .= "</tr>\n\n<tr>\n"; + $week = 0; + } + } + + $c .= "</tr>\n</table>\n"; + $th{calendar} = $c; + #my $cal = HTML::Calendar::Simple->new({month => $m, year => $y}); + #$th{calendar} = $cal->calendar_month; + } + $tmpl = Template->new({INCLUDE_PATH => '.', ABSOLUTE => 0, RELATIVE => 0, |