--- loncom/interface/lonnavmaps.pm 2003/02/04 16:14:27 1.134 +++ loncom/interface/lonnavmaps.pm 2008/12/21 16:27:26 1.415.2.3 @@ -1,8 +1,7 @@ - # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.134 2003/02/04 16:14:27 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.415.2.3 2008/12/21 16:27:26 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,28 +25,20 @@ # # http://www.lon-capa.org/ # -# (Page Handler -# -# (TeX Content Handler -# -# 05/29/00,05/30 Gerd Kortemeyer) -# 08/30,08/31,09/06,09/14,09/15,09/16,09/19,09/20,09/21,09/23, -# 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16 Gerd Kortemeyer) -# -# 3/1/1,6/1,17/1,29/1,30/1,2/8,9/21,9/24,9/25 Gerd Kortemeyer -# YEAR=2002 -# 1/1 Gerd Kortemeyer -# Oct-Nov Jeremy Bowers +### package Apache::lonnavmaps; use strict; -use Apache::Constants qw(:common :http); +use GDBM_File; use Apache::loncommon(); +use Apache::lonenc(); +use Apache::lonlocal; +use Apache::lonnet; use POSIX qw (floor strftime); - -my %navmaphash; -my %parmhash; +use Time::HiRes qw( gettimeofday tv_interval ); +use LONCAPA; +use DateTime(); # symbolic constants sub SYMB { return 1; } @@ -56,670 +47,73 @@ sub NOTHING { return 3; } # Some data +my $resObj = "Apache::lonnavmaps::resource"; -sub cleanup { - if (tied(%navmaphash)){ - &Apache::lonnet::logthis('Cleanup navmaps: navmaphash'); - unless (untie(%navmaphash)) { - &Apache::lonnet::logthis('Failed cleanup navmaps: navmaphash'); - } - } - if (tied(%parmhash)){ - &Apache::lonnet::logthis('Cleanup navmaps: parmhash'); - unless (untie(%parmhash)) { - &Apache::lonnet::logthis('Failed cleanup navmaps: parmhash'); - } - } -} - -sub handler { - my $r = shift; - real_handler($r); -} - -sub real_handler { - my $r = shift; - - &Apache::loncommon::get_unprocessed_cgi($ENV{QUERY_STRING}); - - # Handle header-only request - if ($r->header_only) { - if ($ENV{'browser.mathml'}) { - $r->content_type('text/xml'); - } else { - $r->content_type('text/html'); - } - $r->send_http_header; - return OK; - } - - # Send header, don't cache this page - if ($ENV{'browser.mathml'}) { - $r->content_type('text/xml'); - } else { - $r->content_type('text/html'); - } - &Apache::loncommon::no_cache($r); - $r->send_http_header; - - # Create the nav map - my $navmap = Apache::lonnavmaps::navmap->new( - $ENV{"request.course.fn"}.".db", - $ENV{"request.course.fn"}."_parms.db", 1, 1); - - - if (!defined($navmap)) { - my $requrl = $r->uri; - $ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; - return HTTP_NOT_ACCEPTABLE; - } - - $r->print("
\n"); - $r->print("Key: | '); - - # Print discussions and feedback header - if ($navmap->{LAST_CHECK}) { - $r->print(''. - ' New discussion since '. - strftime("%A, %b %e at %I:%M %P", localtime($navmap->{LAST_CHECK})). - ' | '.
- ' New message (click to open) '. - ' | ');
- } else {
- $r->print(''. - ' Discussions | '. - ' New message (click to open)'. - ' | '); - } - $r->print('