version 1.20, 2006/03/15 21:55:58
|
version 1.21, 2006/03/15 23:41:49
|
Line 148 sub handler {
|
Line 148 sub handler {
|
my $docroot = $r->dir_config('lonDocRoot'); |
my $docroot = $r->dir_config('lonDocRoot'); |
my $serverroot = $ENV{'HTTP_HOST'}; |
my $serverroot = $ENV{'HTTP_HOST'}; |
|
|
my $filenames = &Apache::lonnet::unescape(substr ($ENV{'REQUEST_URI'} , |
&Apache::lonlocal::get_language_handle($r); |
|
my $text=''; |
|
if ($env{'form.searchterm'}=~/\w/) { |
|
} else { |
|
my $filenames = &Apache::lonnet::unescape(substr ($ENV{'REQUEST_URI'} , |
rindex($ENV{'REQUEST_URI'}, '/') + 1, -4)); |
rindex($ENV{'REQUEST_URI'}, '/') + 1, -4)); |
|
|
# Security check on the file; the whole filename must consist |
# Security check on the file; the whole filename must consist |
# of nothing but alphanums, ' ,, or ., or the file |
# of nothing but alphanums, ' ,, or ., or the file |
# will be "not found", no matter what. |
# will be "not found", no matter what. |
|
|
return HTTP_NOT_FOUND if ($filenames !~ /\A[-0-9a-zA-z_'',:.]+\Z/); |
return HTTP_NOT_FOUND if ($filenames !~ /\A[-0-9a-zA-z_'',:.]+\Z/); |
|
|
&Apache::lonlocal::get_language_handle($r); |
|
|
|
# Join together the tex files, return HTTP_NOT_FOUND if any of |
# Join together the tex files, return HTTP_NOT_FOUND if any of |
# them are not found |
# them are not found |
my $tex = ''; |
my $tex = ''; |
# Since in insertlist.tab I want to specify multiple files, |
# Since in insertlist.tab I want to specify multiple files, |
# and insertlist.tab also uses commas, I need something else |
# and insertlist.tab also uses commas, I need something else |
# so replace : with , |
# so replace : with , |
$filenames =~ s/:/,/g; |
$filenames =~ s/:/,/g; |
my @files = split(/,/, $filenames); |
my @files = split(/,/, $filenames); |
|
|
for my $filename (@files) { |
for my $filename (@files) { |
if (-e $docroot.'/adm/help/tex/'. |
if (-e $docroot.'/adm/help/tex/'. |
&Apache::lonlocal::current_language().'/'. |
&Apache::lonlocal::current_language().'/'. |
$filename.'.tex') { |
$filename.'.tex') { |
$filename=&Apache::lonlocal::current_language().'/'.$filename; |
$filename=&Apache::lonlocal::current_language().'/'.$filename; |
} |
} |
(my $file = Apache::File->new($docroot |
(my $file = Apache::File->new($docroot |
. '/adm/help/tex/'.$filename.'.tex')) |
. '/adm/help/tex/'.$filename.'.tex')) |
or return HTTP_NOT_FOUND; |
or return HTTP_NOT_FOUND; |
$tex .= join('', <$file>); |
$tex .= join('', <$file>); |
} |
} |
|
|
if ($env{'browser.mathml'}) { |
if ($env{'browser.mathml'}) { |
&Apache::loncommon::content_type($r,'text/xml'); |
&Apache::loncommon::content_type($r,'text/xml'); |
&tth::ttminit(); |
&tth::ttminit(); |
if ($env{'browser.unicode'}) { |
if ($env{'browser.unicode'}) { |
&tth::ttmoptions('-L -u1'); |
&tth::ttmoptions('-L -u1'); |
} else { |
} else { |
&tth::ttmoptions('-L -u0'); |
&tth::ttmoptions('-L -u0'); |
} |
} |
} else { |
} else { |
&Apache::loncommon::content_type($r,"text/html"); |
&Apache::loncommon::content_type($r,"text/html"); |
&tth::tthinit(); |
&tth::tthinit(); |
if ($env{'browser.unicode'}) { |
if ($env{'browser.unicode'}) { |
&tth::tthoptions('-L -u1'); |
&tth::tthoptions('-L -u1'); |
} else { |
} else { |
&tth::tthoptions('-L -u0'); |
&tth::tthoptions('-L -u0'); |
} |
} |
|
} |
|
$text = &render($tex, $docroot, $serverroot); |
} |
} |
|
|
$r->send_http_header; |
$r->send_http_header; |
my $text = &render($tex, $docroot, $serverroot); |
|
&servetext($r,$text); |
&servetext($r,$text); |
return OK; |
return OK; |
} |
} |