--- rat/lonpage.pm 2006/01/11 09:13:15 1.73 +++ rat/lonpage.pm 2007/06/25 23:27:10 1.83 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.73 2006/01/11 09:13:15 albertel Exp $ +# $Id: lonpage.pm,v 1.83 2007/06/25 23:27:10 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,6 +39,9 @@ use Apache::lonmenu; use HTML::TokeParser; use GDBM_File; use Apache::lonsequence; +use lib '/home/httpd/lib/perl/'; +use LONCAPA; + # -------------------------------------------------------------- Module Globals my %hash; @@ -203,8 +206,6 @@ sub handler { my %ssivlink=(); my %ssialink=(); - my %metalink=(); - my %cellemb=(); my $allscript=''; @@ -227,7 +228,6 @@ sub handler { if ($hash{'encrypted_'.$_}) { $src=&Apache::lonenc::encrypted($src); } - $metalink{$_}=$src.'.meta'; $cellemb{$_}= &Apache::loncommon::fileembstyle($extension); if ($cellemb{$_} eq 'ssi') { @@ -267,7 +267,7 @@ sub handler { } } my $output=Apache::lonnet::ssi($src,%posthash); - $output=~s|//(\s*)?\s||gs; + $output=~s|//(\s*)?\s||gs; if ($target eq 'tex') { $output =~ s/^([^&]+)\\begin{document}//; $output =~ s/\\end{document}//; @@ -335,7 +335,7 @@ sub handler { $output=~s/\]*\>//gsi; $output=~s/\<\/form[^\>]*\>//gsi; $output=~ - s/\<((?:input|select|button|textarea)[^\>]+)name\s*\=\s*[\'\"]*([\w\.\:]+)[\'\"]*([^\>]*)\>/\<$1 name="$prefix$2" $3\>/gsi; + s/\<((?:input|select|button|textarea)[^\>]+)name\s*\=\s*[\'\"]*([^\'\"]+)[\'\"]*([^\>]*)\>/\<$1 name="$prefix$2" $3\>/gsi; } $thisdir=~s/\/[^\/]*$//; foreach (@rlinks) { @@ -360,17 +360,11 @@ sub handler { unless ($contents) { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - $r->print(''."\n". - ''."\n". - &Apache::lonmenu::registerurl(1,undef)."\n". - ''."\n". - ''. - &Apache::lonmenu::menubuttons(undef,$target,1) - ); + $r->print(&Apache::loncommon::start_page(undef,undef, + {'force_register' => 1,})); $r->print(&mt('This page is either empty or it only contains resources that are currently hidden').'. '); - $r->print('

'.&mt('Please use the LON-CAPA navigation arrows to move to another item in the course').'.'); + $r->print('

'.&mt('Please use the LON-CAPA navigation arrows to move to another item in the course'). + &Apache::loncommon::end_page()); } else { # ------------------------------------------------------------------ Build page @@ -378,31 +372,20 @@ sub handler { unless ($target eq 'tex') { if ($isxml) { &Apache::loncommon::content_type($r,'text/xml'); - $r->send_http_header; - $r->print($xmlheader); } else { &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - $r->print(''); } + $r->send_http_header; # ------------------------------------------------------------------------ Head - $r->print("\n\n".$allmeta); if ($allscript) { - $r->print("\n\n"); + $allscript .= + "\n\n"; } - $r->print(&Apache::lonmenu::registerurl(1,undef)); - $r->print("\n\n"); # ------------------------------------------------------------------ Start body - if ($isxml) { - $r->print($xmlbody); - } else { - $r->print( - ''. - &Apache::lonmenu::menubuttons(undef,$target,1) - ); - } + $r->print(&Apache::loncommon::start_page(undef,undef, + {'force_register' => 1, + 'bgcolor' => '#ffffff',})); # ------------------------------------------------------------------ Start form if ($nforms) { $r->print('
'); } +# generate rows for ($i=0;$i<=$#rows;$i++) { if ($rows[$i]) { unless ($target eq 'tex') { @@ -434,52 +418,8 @@ sub handler { my $avespan=$lcm/($#colcont+1); for ($j=0;$j<=$#colcont;$j++) { my $rid=$colcont[$j]; - my $metainfo = ''; - my $esrc=&Apache::lonnet::declutter($hash{'src_'.$rid}); - my ($mapid,$resid)=split(/\./,$rid); - my $symb=&Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$hash{'src_'.$rid}); - if ($hash{'encrypted_'.$rid}) { - $symb=&Apache::lonenc::encrypted($symb); - $esrc=&Apache::lonenc::encrypted($esrc); - } - unless ($hash{'src_'.$rid} =~ m-^/uploaded/-) { - $metainfo =''. - ''. - ''. - ''; - } - $metainfo .= ''. - ''. - ''; - if ( - ($hash{'src_'.$rid}=~/\.(problem|exam|quiz|assess|survey|form)$/) && - (&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) && - ($hash{'src_'.$rid} !~ m-^/uploaded/-)) { - my ($mapid,$resid)=split(/\./,$rid); - my $symb= - &Apache::lonnet::declutter($hash{'map_id_'.$mapid}). - '___'.$resid.'___'. - &Apache::lonnet::declutter($hash{'src_'.$rid}); - $metainfo.= - ''. - '&command=submission">'. - ''. - ''. - ''. - '&command=gradingmenu">'. - ''. - ''. - ''. - '" >'. - ''. - ''; - } - $metainfo.='

'; + + my $metainfo =&get_buttons(\%hash,$rid).'
'; unless ($target eq 'tex') { $r->print('print('
'); - } else { - $r->print('\hline'); - } + } } } elsif ($cellemb{$rid} eq 'img') { $r->print('>'.$metainfo.''); + $hash{'src_'.$rid}.'" />'); } elsif ($cellemb{$rid} eq 'emb') { $r->print('>'.$metainfo.''); @@ -556,7 +494,8 @@ sub handler { (($nforms>1)?'submit':'hidden').'">
'); } unless ($target eq 'tex') { - $r->print(''.&Apache::lonxml::xmlend()); + $r->print(&Apache::loncommon::end_page({'discussion' + => 1,})); } else { $r->print('\end{document}'.$number_of_columns); } @@ -588,6 +527,65 @@ sub handler { return OK; } +sub get_buttons { + my ($hash,$rid) = @_; + + # which icons do we use? + my $extension='png'; + if ($env{'environment.icons'} eq 'classic') { $extension='gif'; } + + my $metainfo = ''; + my $esrc=&Apache::lonnet::declutter($hash->{'src_'.$rid}); + my ($mapid,$resid)=split(/\./,$rid); + my $symb=&Apache::lonnet::encode_symb($hash->{'map_id_'.$mapid}, + $resid, + $hash->{'src_'.$rid}); + if ($hash->{'encrypted_'.$rid}) { + $symb=&Apache::lonenc::encrypted($symb); + $esrc=&Apache::lonenc::encrypted($esrc); + } + if ($hash->{'src_'.$rid} !~ m-^/uploaded/- + && !$env{'request.enc'} + && ($env{'request.role.adv'} + || !$hash->{'encrypted_'.$rid})) { + $metainfo .=''. + ''. + ''. + ''; + } + $metainfo .= ''. + ''. + ''; + if (($hash->{'src_'.$rid}=~/\.(problem|exam|quiz|assess|survey|form)$/) && + ($hash->{'src_'.$rid} !~ m-^/uploaded/-)) { + + if (&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) { + $metainfo.= + ''. + '&command=submission">'. + ''. + ''. + ''. + '&command=gradingmenu">'. + ''. + ''; + } + if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { + $metainfo.= + ''. + '" >'. + ''. + ''; + } + } + return $metainfo; +} + 1; __END__