Diff for /rat/lonwrapper.pm between versions 1.42 and 1.44

version 1.42, 2012/11/27 23:45:15 version 1.44, 2013/09/07 19:58:08
Line 40  use Apache::lonextresedit(); Line 40  use Apache::lonextresedit();
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub wrapper {  sub wrapper {
     my ($url,$brcrum) = @_;      my ($url,$brcrum,$absolute) = @_;
   
     my $forcereg;      my $forcereg;
     unless ($env{'form.folderpath'}) {      unless ($env{'form.folderpath'}) {
Line 54  sub wrapper { Line 54  sub wrapper {
     if (ref($brcrum) eq 'ARRAY') {      if (ref($brcrum) eq 'ARRAY') {
          $args->{'bread_crumbs'} = $brcrum;           $args->{'bread_crumbs'} = $brcrum;
     }      }
       if ($absolute) {
           $args->{'use_absolute'} = $absolute; 
       }
   
     my $startpage =  Apache::loncommon::start_page('Menu',undef,$args);      my $startpage =  Apache::loncommon::start_page('Menu',undef,$args);
     my $endpage =  Apache::loncommon::end_page();      my $endpage =  Apache::loncommon::end_page();
Line 103  sub handler { Line 106  sub handler {
     return OK if $r->header_only;      return OK if $r->header_only;
   
     my $url = $r->uri;      my $url = $r->uri;
     my ($is_ext,$brcrum);      my ($is_ext,$brcrum,$absolute);
   
     for ($url){      for ($url){
         s|^/adm/wrapper||;          s|^/adm/wrapper||;
Line 113  sub handler { Line 116  sub handler {
     }      }
   
     if ($is_ext) {      if ($is_ext) {
           my $hostname = $r->hostname();
           my $lonhost = &Apache::lonnet::host_from_dns($hostname);
           if ($lonhost) {
               my $actual = &Apache::lonnet::absolute_url($hostname);
               my $expected = $Apache::lonnet::protocol{$lonhost}.'://'.$hostname; 
               unless ($actual eq $expected) {
                   $absolute = $expected;
               }
           }
         &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},          &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
             ['forceedit','register','folderpath','symb','idx','title']);              ['forceedit','register','folderpath','symb','idx','title']);
         if (($env{'form.forceedit'}) &&          if (($env{'form.forceedit'}) &&
Line 126  sub handler { Line 138  sub handler {
             return OK;              return OK;
         } elsif ($env{'form.folderpath'} =~ /^supplemental/) {          } elsif ($env{'form.folderpath'} =~ /^supplemental/) {
             my $crstype = &Apache::loncommon::course_type();              my $crstype = &Apache::loncommon::course_type();
             $brcrum =              my $title = $env{'form.title'};
                 &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$env{'form.title'},1);              if ($title eq '') {
             if (ref($brcrum) eq 'ARRAY') {                  $title = &mt('External Resource');
                 my $last = $env{'form.title'};  
                 if ($last eq '') {  
                     $last = &mt('External Resource');  
                 }  
                 push(@{$brcrum},  
                          {'title' => $last,  
                           'text' => $last,  
                           'no_mt' => 1,  
                          });  
   
             }              }
               $brcrum =
                   &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1);
         }          }
     }      }
   
Line 168  sub handler { Line 172  sub handler {
         # encrypt url if not external          # encrypt url if not external
         &Apache::lonenc::check_encrypt(\$url) if $url !~ /^https?\:/ ;          &Apache::lonenc::check_encrypt(\$url) if $url !~ /^https?\:/ ;
   
         $r->print( wrapper($url,$brcrum) );          $r->print( wrapper($url,$brcrum,$absolute) );
   
     } # not just the menu      } # not just the menu
           

Removed from v.1.42  
changed lines
  Added in v.1.44


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>