version 1.79, 2002/04/17 18:32:35
|
version 1.83, 2002/06/24 14:25:38
|
Line 217 sub absoluteurl {
|
Line 217 sub absoluteurl {
|
return $url; |
return $url; |
} |
} |
|
|
|
sub set_allow { |
|
my ($allow,$logfile,$target,$tag,$oldurl)=@_; |
|
my $newurl=&urlfixup($oldurl,$target); |
|
my $return_url=$oldurl; |
|
print $logfile 'GUYURL: '.$tag.':'.$oldurl.' - '.$newurl."\n"; |
|
if ($newurl ne $oldurl) { |
|
$return_url=$newurl; |
|
print $logfile 'URL: '.$tag.':'.$oldurl.' - '.$newurl."\n"; |
|
} |
|
if (($newurl !~ /^javascript:/i) && |
|
($newurl !~ /^mailto:/i) && |
|
($newurl !~ /^http:/i) && |
|
($newurl !~ /^\#/)) { |
|
$$allow{&absoluteurl($newurl,$target)}=1; |
|
} |
|
return $return_url |
|
} |
|
|
sub publish { |
sub publish { |
|
|
my ($source,$target,$style)=@_; |
my ($source,$target,$style)=@_; |
Line 318 sub publish {
|
Line 336 sub publish {
|
|
|
foreach my $type ('src','href','background','bgimg') { |
foreach my $type ('src','href','background','bgimg') { |
foreach my $key (keys(%parms)) { |
foreach my $key (keys(%parms)) { |
|
print $logfile "for $type, and $key\n"; |
if ($key =~ /^$type$/i) { |
if ($key =~ /^$type$/i) { |
my $oldurl=$parms{$key}; |
print $logfile "calling set_allow\n"; |
my $newurl=&urlfixup($oldurl,$target); |
$parms{$key}=&set_allow(\%allow,$logfile, |
if ($newurl ne $oldurl) { |
$target,$tag, |
$parms{$key}=$newurl; |
$parms{$key}); |
print $logfile 'URL: '.$tag.':'.$oldurl.' - '. |
|
$newurl."\n"; |
|
} |
|
if (($newurl !~ /^javascript:/i) && |
|
($newurl !~ /^mailto:/i) && |
|
($newurl !~ /^http:/i) && |
|
($newurl !~ /^\#/)) { |
|
$allow{&absoluteurl($newurl,$target)}=1; |
|
} |
|
} |
} |
last; |
|
} |
} |
} |
} |
|
# probably a <randomlabel> image type <label> |
|
if ($lctag eq 'label' && defined($parms{'description'})) { |
|
my $next_token=$parser->get_token(); |
|
if ($next_token->[0] eq 'T') { |
|
$next_token->[1]=&set_allow(\%allow,$logfile, |
|
$target,$tag, |
|
$next_token->[1]); |
|
} |
|
$parser->unget_token($next_token); |
|
} |
if ($lctag eq 'applet') { |
if ($lctag eq 'applet') { |
my $codebase=''; |
my $codebase=''; |
if (defined($parms{'codebase'})) { |
if (defined($parms{'codebase'})) { |
Line 426 sub publish {
|
Line 444 sub publish {
|
} |
} |
} |
} |
} |
} |
$allowstr=~s/\n+/\n/g; |
$outstring=~s/\n*(\<\/[^\>]+\>)\s*$/$allowstr\n$1\n/s; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
|
|
|
#Encode any High ASCII characters |
#Encode any High ASCII characters |
$outstring=&HTML::Entities::encode($outstring,"\200-\377"); |
$outstring=&HTML::Entities::encode($outstring,"\200-\377"); |
Line 515 sub publish {
|
Line 532 sub publish {
|
my $oldenv=$ENV{'request.uri'}; |
my $oldenv=$ENV{'request.uri'}; |
|
|
$ENV{'request.uri'}=$target; |
$ENV{'request.uri'}=$target; |
$allmeta=Apache::lonxml::xmlparse('meta',$content); |
$allmeta=Apache::lonxml::xmlparse(undef,'meta',$content); |
$ENV{'request.uri'}=$oldenv; |
$ENV{'request.uri'}=$oldenv; |
|
|
&metaeval($allmeta); |
&metaeval($allmeta); |
Line 990 sub handler {
|
Line 1007 sub handler {
|
|
|
# Get query string for limited number of parameters |
# Get query string for limited number of parameters |
|
|
foreach (split(/&/,$ENV{'QUERY_STRING'})) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
my ($name, $value) = split(/=/,$_); |
['filename']); |
$value =~ tr/+/ /; |
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
if ($name eq 'filename') { |
|
unless ($ENV{'form.'.$name}) { |
|
$ENV{'form.'.$name}=$value; |
|
} |
|
} |
|
} |
|
|
|
|
|
# -------------------------------------------------------------- Check filename |
# -------------------------------------------------------------- Check filename |
|
|