--- trunk/httpd.pl 2004/05/07 20:52:34 19 +++ trunk/httpd.pl 2004/05/07 23:35:39 20 @@ -25,6 +25,7 @@ 'body5' => \&body5_filter, 'subject_search' => \&subject_search_filter, }, + EVAL_PERL => 1, }); print "Web server ready at: ", $d->url, "\n"; @@ -76,6 +77,23 @@ my $tpl_file = 'master.'; $tpl_file .= $param->{'format'} || 'html'; + # parse date from url + my ($yyyy,$mm,$dd) = $mws->yyyymmdd; + + my $yyyymm; + + my $date_limit; + + if ($url =~ m,^/(\d{4})[/-](\d+)[/-](\d+),) { + ($yyyy, $mm, $dd) = $mws->fmtdate($1,$2,$3); + $date_limit = "$yyyy-$mm-$dd"; + } elsif ($url =~ m,^/(\d{4})[/-](\d+),) { + ($yyyy,$mm) = $mws->fmtdate($1,$2); + $date_limit = "$yyyy-$mm"; + } elsif ($url =~ m,^/(\d{4}),) { + $date_limit = $mws->fmtdate($1); + } + # # implement functionality and generate HTML # @@ -88,9 +106,17 @@ } my $tpl_var = { - param => $param + param => $param, + yyyy => $yyyy, + mm => $mm, + dd => $dd, }; + if ($date_limit) { + $param->{'search'} .= "and " if ($param->{'search'}); + $param->{'search'} .= $date_limit; + } + # show search results # ?search=foo:bar if ($param->{'search'}) { @@ -100,7 +126,7 @@ my $results = $mws->search($param->{'search'}); my @res = $mws->fetch_all_results(); - $tpl_var->{results} = \@res; + $tpl_var->{results} = \@res if (@res); $tpl_var->{total_hits} = $mws->{total_hits}; @@ -125,6 +151,9 @@ $tpl_var->{counters}->{$f} = [ @a ] if (@a); } + # push calendar in template + $tpl_var->{calendar} = $mws->counter('calendar'); + $tt->process($tpl_file, $tpl_var, \$html) || die $tt->error(); #