Diff for /loncom/interface/loncommon.pm between versions 1.317 and 1.324

version 1.317, 2006/03/21 20:36:15 version 1.324, 2006/03/29 19:39:55
Line 2801  form, .inline { display: inline; } Line 2801  form, .inline { display: inline; }
 style="margin-top: 0px;$addstyle" $addentries>  style="margin-top: 0px;$addstyle" $addentries>
 END  END
     &Apache::lontexconvert::jsMath_reset();      &Apache::lontexconvert::jsMath_reset();
     if ($env{'environment.texengine'} eq 'jsMath') {      if ($env{'environment.texengine'} eq 'jsMath' ||
    $env{'form.texengine'}        eq 'jsMath' ) {
  $bodytag.=&Apache::lontexconvert::jsMath_header();   $bodytag.=&Apache::lontexconvert::jsMath_header();
     }      }
   
Line 2976  Returns a uniform footer for LON-CAPA we Line 2977  Returns a uniform footer for LON-CAPA we
 Inputs: $title - optional title for the head  Inputs: $title - optional title for the head
         $head_extra - optional extra HTML to put inside the <head>          $head_extra - optional extra HTML to put inside the <head>
         $args - optional arguments          $args - optional arguments
               force_register - if is true call registerurl so the remote is 
                                informed
                                
             redirect - array ref of seconds before redirect occurs              redirect - array ref of seconds before redirect occurs
                                     url to redirect to                                      url to redirect to
                            (side effect of setting                              (side effect of setting 
Line 2992  sub headtag { Line 2996  sub headtag {
  '<head>'.   '<head>'.
  &Apache::lonxml::fontsettings().   &Apache::lonxml::fontsettings().
  &Apache::lonhtmlcommon::htmlareaheaders();   &Apache::lonhtmlcommon::htmlareaheaders();
       
       if ($args->{'force_register'}) {
    $result .= &Apache::lonmenu::registerurl(1);
       }
   
     if (ref($args->{'redirect'})) {      if (ref($args->{'redirect'})) {
  my ($time,$url) = @{$args->{'redirect'}};   my ($time,$url) = @{$args->{'redirect'}};
  $url = &Apache::lonenc::check_encrypt($url);   $url = &Apache::lonenc::check_encrypt($url);
  $env{'internal.head.redirect'} = $url;   $env{'internal.head.redirect'} = $url;
  $result.=<<ADDMETA   $result.=<<ADDMETA
 <meta http-equiv="pragma" content="no-cache" />  <meta http-equiv="pragma" content="no-cache" />
 <meta HTTP-EQUIV="Refresh" CONTENT="2; url=$url" />  <meta HTTP-EQUIV="Refresh" CONTENT="$time; url=$url" />
 ADDMETA  ADDMETA
     }      }
     if (!defined($title)) {      if (!defined($title)) {
Line 3007  ADDMETA Line 3015  ADDMETA
     }      }
           
     $result .= '<title> LON-CAPA '.&mt($title).'</title>'.$head_extra;      $result .= '<title> LON-CAPA '.&mt($title).'</title>'.$head_extra;
       
     return $result;      return $result;
 }  }
   
Line 3071  Inputs: $title - optional title for the Line 3078  Inputs: $title - optional title for the
                   bgcolor        -> override the default page bg color                    bgcolor        -> override the default page bg color
                   js_ready       -> return a string ready for being used in                     js_ready       -> return a string ready for being used in 
                                     a javascript writeln                                      a javascript writeln
                     html_encode    -> return a string ready for being used in 
                                       a html attribute
                   force_register -> if is true will turn on the &bodytag()                    force_register -> if is true will turn on the &bodytag()
                                     $forcereg arg                                      $forcereg arg
   
Line 3080  Inputs: $title - optional title for the Line 3089  Inputs: $title - optional title for the
   
 sub start_page {  sub start_page {
     my ($title,$head_extra,$args) = @_;      my ($title,$head_extra,$args) = @_;
       #&Apache::lonnet::logthis("start_page ".join(':',caller(0)));
     my %head_args;      my %head_args;
     if (defined($args->{'redirect'})) {      foreach my $arg ('redirect','force_register') {
  $head_args{'redirect'} = $args->{'redirect'};   if (defined($args->{$arg})) {
       $head_args{$arg} = $args->{$arg};
    }
     }      }
   
     $env{'internal.start_page'}++;      $env{'internal.start_page'}++;
     my $result =       my $result = 
  &Apache::lonxml::xmlbegin().   &Apache::lonxml::xmlbegin().
Line 3096  sub start_page { Line 3109  sub start_page {
     if ($args->{'js_ready'}) {      if ($args->{'js_ready'}) {
  $result = &js_ready($result);   $result = &js_ready($result);
     }      }
       if ($args->{'html_encode'}) {
    $result = &html_encode($result);
       }
     return $result;      return $result;
 }  }
   
Line 3110  Returns a complete </body></html> sectio Line 3126  Returns a complete </body></html> sectio
 Inputs:         $args - additional optional args supported are:  Inputs:         $args - additional optional args supported are:
                  js_ready     -> return a string ready for being used in                    js_ready     -> return a string ready for being used in 
                                  a javascript writeln                                   a javascript writeln
                    html_encode  -> return a string ready for being used in 
                                    a html attribute
 =back  =back
   
 =cut  =cut
   
 sub end_page {  sub end_page {
     my ($args) = @_;      my ($args) = @_;
       #&Apache::lonnet::logthis("end_page ".join(':',caller(0)));
     $env{'internal.end_page'}++;      $env{'internal.end_page'}++;
     my $result = &endbodytag()."\n</html>";      my $result = &endbodytag()."\n</html>";
     if ($args->{'js_ready'}) {      if ($args->{'js_ready'}) {
  $result = &js_ready($result);   $result = &js_ready($result);
     }      }
       if ($args->{'html_encode'}) {
    $result = &html_encode($result);
       }
     return $result;      return $result;
 }  }
   
 sub js_ready {  sub html_encode {
     my ($result) = @_;      my ($result) = @_;
   
     $result = &HTML::Entities::encode($result,'<>&"');      $result = &HTML::Entities::encode($result,'<>&"');
       
       return $result;
   }
   sub js_ready {
       my ($result) = @_;
   
     $result =~ s/[\n\r]/ /g;      $result =~ s/[\n\r]/ /xmsg;
     $result =~ s/'/\\'/g;      $result =~ s/\\/\\\\/xmsg;
       $result =~ s/'/\\'/xmsg;
       $result =~ s{</script>}{</scrip'+'t>}xmsg;
           
     return $result;      return $result;
 }  }
Line 3138  sub validate_page { Line 3168  sub validate_page {
     if (  exists($env{'internal.start_page'})      if (  exists($env{'internal.start_page'})
   &&     $env{'internal.start_page'} > 1) {    &&     $env{'internal.start_page'} > 1) {
  &Apache::lonnet::logthis('start_page called multiple times '.   &Apache::lonnet::logthis('start_page called multiple times '.
    $env{'internal.start_page'}.' '.
  $ENV{'request.filename'});   $ENV{'request.filename'});
     }      }
     if (  exists($env{'internal.end_page'})      if (  exists($env{'internal.end_page'})
   &&     $env{'internal.end_page'} > 1) {    &&     $env{'internal.end_page'} > 1) {
  &Apache::lonnet::logthis('end_page called multiple times '.   &Apache::lonnet::logthis('end_page called multiple times '.
    $env{'internal.end_page'}.' '.
  $env{'request.filename'});   $env{'request.filename'});
     }      }
     if (     exists($env{'internal.start_page'})      if (     exists($env{'internal.start_page'})
Line 3157  sub validate_page { Line 3189  sub validate_page {
     }      }
 }  }
   
   sub simple_error_page {
       my ($r,$title,$msg) = @_;
       my $page =
    &Apache::loncommon::start_page($title).
    &mt($msg).
    &Apache::loncommon::end_page();
       if (ref($r)) {
    $r->print($page);
    return OK;
       }
       return $page;
   }
 ###############################################  ###############################################
   
 =pod  =pod

Removed from v.1.317  
changed lines
  Added in v.1.324


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