version 1.332, 2006/04/13 19:01:25
|
version 1.336, 2006/04/14 20:12:35
|
Line 61 use POSIX qw(strftime mktime);
|
Line 61 use POSIX qw(strftime mktime);
|
use Apache::lonmenu(); |
use Apache::lonmenu(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
use HTML::Entities; |
use HTML::Entities; |
|
use Apache::lonhtmlcommon(); |
|
use Apache::loncoursedata(); |
|
|
my $readit; |
my $readit; |
|
|
Line 2823 END
|
Line 2825 END
|
} elsif ($env{'browser.interface'} eq 'textual') { |
} elsif ($env{'browser.interface'} eq 'textual') { |
# Accessibility |
# Accessibility |
|
|
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', |
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,$forcereg). |
$forcereg). |
|
'<h1>LON-CAPA: '.$title.'</h1>'; |
'<h1>LON-CAPA: '.$title.'</h1>'; |
} elsif ($env{'environment.remote'} eq 'off') { |
} elsif ($env{'environment.remote'} eq 'off') { |
# No Remote |
# No Remote |
Line 2882 ENDROLE
|
Line 2883 ENDROLE
|
if ($notopbar) { |
if ($notopbar) { |
$bodytag .= $titletable; |
$bodytag .= $titletable; |
} else { |
} else { |
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,'web',$forcereg,$titletable); |
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,$titletable); |
} |
} |
} else { |
} else { |
if ($notopbar) { |
if ($notopbar) { |
$bodytag .= $titletable; |
$bodytag .= $titletable; |
} else { |
} else { |
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,'web',$forcereg). |
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg). |
$titletable; |
$titletable; |
} |
} |
} |
} |
Line 3184 sub end_page {
|
Line 3185 sub end_page {
|
#&Apache::lonnet::logthis("end_page ".join(':',caller(0))); |
#&Apache::lonnet::logthis("end_page ".join(':',caller(0))); |
$env{'internal.end_page'}++; |
$env{'internal.end_page'}++; |
my $result; |
my $result; |
|
if ($args->{'discussion'}) { |
|
my ($target,$parser); |
|
if (ref($args->{'discussion'})) { |
|
($target,$parser) =($args->{'discussion'}{'target'}, |
|
$args->{'discussion'}{'parser'}); |
|
} |
|
$result .= &Apache::lonxml::xmlend($target,$parser); |
|
} |
|
|
if ($args->{'frameset'}) { |
if ($args->{'frameset'}) { |
$result .= '</frameset>'; |
$result .= '</frameset>'; |
} else { |
} else { |
Line 3194 sub end_page {
|
Line 3204 sub end_page {
|
if ($args->{'js_ready'}) { |
if ($args->{'js_ready'}) { |
$result = &js_ready($result); |
$result = &js_ready($result); |
} |
} |
|
|
if ($args->{'html_encode'}) { |
if ($args->{'html_encode'}) { |
$result = &html_encode($result); |
$result = &html_encode($result); |
} |
} |
|
|
return $result; |
return $result; |
} |
} |
|
|
Line 3673 sub get_user_info {
|
Line 3685 sub get_user_info {
|
return; |
return; |
} |
} |
|
|
############################################### |
|
|
|
sub get_posted_cgi { |
|
my $r=shift; |
|
|
|
my $buffer; |
|
if ($r->header_in('Content-length')) { |
|
$r->read($buffer,$r->header_in('Content-length'),0); |
|
} |
|
unless ($buffer=~/^(\-+\w+)\s+Content\-Disposition\:\s*form\-data/si) { |
|
my @pairs=split(/&/,$buffer); |
|
my $pair; |
|
foreach $pair (@pairs) { |
|
my ($name,$value) = split(/=/,$pair); |
|
$value =~ tr/+/ /; |
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
$name =~ tr/+/ /; |
|
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
&add_to_env("form.$name",$value); |
|
} |
|
} else { |
|
my $contentsep=$1; |
|
my @lines = split (/\n/,$buffer); |
|
my $name=''; |
|
my $value=''; |
|
my $fname=''; |
|
my $fmime=''; |
|
my $i; |
|
for ($i=0;$i<=$#lines;$i++) { |
|
if ($lines[$i]=~/^$contentsep/) { |
|
if ($name) { |
|
chomp($value); |
|
if ($fname) { |
|
$env{"form.$name.filename"}=$fname; |
|
$env{"form.$name.mimetype"}=$fmime; |
|
} else { |
|
$value=~s/\s+$//s; |
|
} |
|
&add_to_env("form.$name",$value); |
|
} |
|
if ($i<$#lines) { |
|
$i++; |
|
$lines[$i]=~ |
|
/Content\-Disposition\:\s*form\-data\;\s*name\=\"([^\"]+)\"/i; |
|
$name=$1; |
|
$value=''; |
|
if ($lines[$i]=~/filename\=\"([^\"]+)\"/i) { |
|
$fname=$1; |
|
if |
|
($lines[$i+1]=~/Content\-Type\:\s*([\w\-\/]+)/i) { |
|
$fmime=$1; |
|
$i++; |
|
} else { |
|
$fmime=''; |
|
} |
|
} else { |
|
$fname=''; |
|
$fmime=''; |
|
} |
|
$i++; |
|
} |
|
} else { |
|
$value.=$lines[$i]."\n"; |
|
} |
|
} |
|
} |
|
# |
|
# Digested POSTed values |
|
# |
|
# Remember the way this was originally done (GET or POST) |
|
# |
|
$env{'request.method'}=$ENV{'REQUEST_METHOD'}; |
|
# |
|
# There may also be stuff in the query string |
|
# Tell subsequent handlers that this was GET, not POST, so they can access query string. |
|
# Also, unset POSTed content length to cover all tracks. |
|
# |
|
|
|
# This does not work, because M_GET is not defined (if it's defined, it is just 0). |
|
# Commenting out for now ... not sure if harm is done. |
|
# $r->method_number(M_GET); |
|
|
|
$r->method('GET'); |
|
$r->headers_in->unset('Content-length'); |
|
} |
|
|
|
=pod |
=pod |
|
|
=item * get_unprocessed_cgi($query,$possible_names) |
=item * get_unprocessed_cgi($query,$possible_names) |