--- loncom/interface/loncommon.pm 2006/03/21 21:49:30 1.319 +++ loncom/interface/loncommon.pm 2006/04/04 15:11:26 1.325 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.319 2006/03/21 21:49:30 albertel Exp $ +# $Id: loncommon.pm,v 1.325 2006/04/04 15:11:26 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2801,7 +2801,8 @@ form, .inline { display: inline; } style="margin-top: 0px;$addstyle" $addentries> END &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(); } @@ -3006,7 +3007,7 @@ sub headtag { $env{'internal.head.redirect'} = $url; $result.=< - + ADDMETA } if (!defined($title)) { @@ -3014,7 +3015,6 @@ ADDMETA } $result .= ' LON-CAPA '.&mt($title).''.$head_extra; - return $result; } @@ -3051,8 +3051,8 @@ Inputs: $title - optional title for the =cut sub head { - my ($title,$head_extra) = @_; - return &headtag($title,$head_extra).&endheadtag(); + my ($title,$head_extra,$args) = @_; + return &headtag($title,$head_extra,$args).&endheadtag(); } =pod @@ -3078,6 +3078,8 @@ Inputs: $title - optional title for the bgcolor -> override the default page bg color js_ready -> return a string ready for being used in 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() $forcereg arg @@ -3091,7 +3093,7 @@ sub start_page { my %head_args; foreach my $arg ('redirect','force_register') { if (defined($args->{$arg})) { - $head_args{$arg} = $args->{$args}; + $head_args{$arg} = $args->{$arg}; } } @@ -3107,6 +3109,9 @@ sub start_page { if ($args->{'js_ready'}) { $result = &js_ready($result); } + if ($args->{'html_encode'}) { + $result = &html_encode($result); + } return $result; } @@ -3121,6 +3126,8 @@ Returns a complete sectio Inputs: $args - additional optional args supported are: js_ready -> return a string ready for being used in a javascript writeln + html_encode -> return a string ready for being used in + a html attribute =back =cut @@ -3133,15 +3140,26 @@ sub end_page { if ($args->{'js_ready'}) { $result = &js_ready($result); } + if ($args->{'html_encode'}) { + $result = &html_encode($result); + } return $result; } -sub js_ready { +sub html_encode { my ($result) = @_; + $result = &HTML::Entities::encode($result,'<>&"'); + + return $result; +} +sub js_ready { + my ($result) = @_; - $result =~ s/[\n\r]/ /g; - $result =~ s/'/\\'/g; + $result =~ s/[\n\r]/ /xmsg; + $result =~ s/\\/\\\\/xmsg; + $result =~ s/'/\\'/xmsg; + $result =~ s{}{}xmsg; return $result; }