Diff for /rat/lonwrapper.pm between versions 1.48 and 1.49

version 1.48, 2014/06/17 23:01:21 version 1.49, 2014/06/17 23:22:21
Line 40  use Apache::lonextresedit(); Line 40  use Apache::lonextresedit();
   
 # ================================================================ Main Handler  # ================================================================ Main Handler
 sub wrapper {  sub wrapper {
     my ($url,$brcrum,$absolute,$is_ext,$is_pdf) = @_;      my ($url,$brcrum,$absolute,$is_ext,$is_pdf,$title) = @_;
   
     my $forcereg;      my $forcereg;
     unless ($env{'form.folderpath'}) {      unless ($env{'form.folderpath'}) {
Line 70  sub wrapper { Line 70  sub wrapper {
     if ($env{'browser.mobile'}) {      if ($env{'browser.mobile'}) {
         my $output = $startpage;          my $output = $startpage;
         if ($is_pdf) {          if ($is_pdf) {
             my $title = $env{'form.title'};  
             if ($title eq '') {              if ($title eq '') {
                 unless ($env{'request.enc'}) {                  $title = $env{'form.title'};
                     ($title) = ($url =~ m{/([^/]+)$});                  if ($title eq '') {
                     $title =~ s/(\?[^\?]+)$//;                      unless ($env{'request.enc'}) {
                           ($title) = ($url =~ m{/([^/]+)$});
                           $title =~ s/(\?[^\?]+)$//;
                       }
                 }                  }
             }              }
             unless ($title eq '') {              unless ($title eq '') {
Line 150  sub handler { Line 152  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 195  sub handler { Line 188  sub handler {
 # This is not homework  # This is not homework
 #  #
         if ($is_ext) {          if ($is_ext) {
               $absolute = $env{'request.use_absolute'};
             $ENV{'QUERY_STRING'} =~ s/(^|\&)symb=[^\&]*/$1/;              $ENV{'QUERY_STRING'} =~ s/(^|\&)symb=[^\&]*/$1/;
             $ENV{'QUERY_STRING'} =~ s/\&$//;              $ENV{'QUERY_STRING'} =~ s/\&$//;
         }          }
Line 233  described at http://www.lon-capa.org. Line 227  described at http://www.lon-capa.org.
   
 =over  =over
   
 =item wrapper($url,$brcrum,$absolute,$is_ext,$is_pdf))  =item wrapper($url,$brcrum,$absolute,$is_ext,$is_pdf,$title))
   
 =over  =over
   
Line 258  relative URLs. Line 252  relative URLs.
 That will be the case where an external resource has been   That will be the case where an external resource has been 
 served from port 80, when the server customarily serves  served from port 80, when the server customarily serves
 requests using Apache/SSL (i.e., port 443). mod_rewrite   requests using Apache/SSL (i.e., port 443). mod_rewrite 
 is used to switch requests for external resources   is used to switch requests for external resources and
   the syllabus: /public/<domain>/<courseid>/syllabus
   (which might also point at an external resource)
 from https:// to http:// where the the URL of the remote site   from https:// to http:// where the the URL of the remote site 
 specified in the resource itself is http://.  specified in the resource itself is http://.
   
Line 273  true if URL is for an external resource. Line 269  true if URL is for an external resource.
   
 true if URL is for a PDF (based on file extension).  true if URL is for a PDF (based on file extension).
   
   =item $title
   
   optional. If wrapped item is a PDF, and $env{'browser.mobile'} 
   is true, a link to a PDF is shown. The "title" will be displayed
   above the link, but if not provided as an arg, $env{'form.title'}
   will be used, otherwise, the filename will be displayed (unless
   hidden URL set for the resource).
   
 =back  =back
   
 Returns markup for the entire page.  Returns markup for the entire page.

Removed from v.1.48  
changed lines
  Added in v.1.49


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