version 1.36, 2001/08/11 19:06:54
|
version 1.40, 2001/08/17 16:49:04
|
Line 11
|
Line 11
|
# 04/16/2001 Scott Harrison |
# 04/16/2001 Scott Harrison |
# 05/03,05/05,05/07 Gerd Kortemeyer |
# 05/03,05/05,05/07 Gerd Kortemeyer |
# 05/28/2001 Scott Harrison |
# 05/28/2001 Scott Harrison |
# 06/23,08/07,08/11 Gerd Kortemeyer |
# 06/23,08/07,08/11,8/13,8/17 Gerd Kortemeyer |
|
|
package Apache::lonpublisher; |
package Apache::lonpublisher; |
|
|
Line 135 sub selectbox {
|
Line 135 sub selectbox {
|
|
|
sub urlfixup { |
sub urlfixup { |
my ($url,$target)=@_; |
my ($url,$target)=@_; |
|
unless ($url) { return ''; } |
my ($host)=($url=~/(?:http\:\/\/)*([^\/]+)/); |
my ($host)=($url=~/(?:http\:\/\/)*([^\/]+)/); |
map { |
map { |
if ($_ eq $host) { |
if ($_ eq $host) { |
Line 142 sub urlfixup {
|
Line 143 sub urlfixup {
|
$url=~s/^$host//; |
$url=~s/^$host//; |
} |
} |
} values %Apache::lonnet::hostname; |
} values %Apache::lonnet::hostname; |
|
if ($url=~/^http\:\/\//) { return $url; } |
$url=~s/\~$cuname/res\/$cudom\/$cuname/; |
$url=~s/\~$cuname/res\/$cudom\/$cuname/; |
if ($target) { |
if ($target) { |
$target=~s/\/[^\/]+$//; |
$target=~s/\/[^\/]+$//; |
Line 256 sub publish {
|
Line 258 sub publish {
|
} |
} |
$allow{$newurl}=1; |
$allow{$newurl}=1; |
} |
} |
} ('src','href','codebase'); |
} ('src','href'); |
|
|
|
if ($tag eq 'applet') { |
|
my $codebase=''; |
|
if (defined($parms{'codebase'})) { |
|
my $oldcodebase=$parms{'codebase'}; |
|
unless ($oldcodebase=~/\/$/) { |
|
$oldcodebase.='/'; |
|
} |
|
$codebase=&urlfixup($oldcodebase,$target); |
|
$codebase=~s/\/$//; |
|
if ($codebase ne $oldcodebase) { |
|
$parms{'codebase'}=$codebase; |
|
print $logfile 'URL codebase: '.$tag.':'. |
|
$oldcodebase.' - '. |
|
$codebase."\n"; |
|
} |
|
$allow{$codebase.'/*'}=1; |
|
} else { |
|
map { |
|
if (defined($parms{$_})) { |
|
my $oldurl=$parms{$_}; |
|
my $newurl=&urlfixup($oldurl,$target); |
|
$newurl=~s/\/[^\/]+$/\/\*/; |
|
print $logfile 'Allow: applet '.$_.':'. |
|
$oldurl.' allows '. |
|
$newurl."\n"; |
|
$allow{$newurl}=1; |
|
} |
|
} ('archive','code','object'); |
|
} |
|
} |
|
|
my $newparmstring=''; |
my $newparmstring=''; |
my $endtag=''; |
my $endtag=''; |
Line 282 sub publish {
|
Line 315 sub publish {
|
} |
} |
} |
} |
# ------------------------------------------------------------ Construct Allows |
# ------------------------------------------------------------ Construct Allows |
|
unless ($style eq 'rat') { |
my $allowstr="\n"; |
my $allowstr="\n"; |
map { |
map { |
$allowstr.='<allow src="'.$_.'" />'."\n"; |
$allowstr.='<allow src="'.$_.'" />'."\n"; |
} keys %allow; |
} keys %allow; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
|
} |
|
# ------------------------------------------------------------- Write modified |
|
|
{ |
{ |
my $org; |
my $org; |
unless ($org=Apache::File->new('>'.$source)) { |
unless ($org=Apache::File->new('>'.$source)) { |
Line 306 sub publish {
|
Line 342 sub publish {
|
} else { |
} else { |
print $logfile "Does not need ID and/or index fixup\n"; |
print $logfile "Does not need ID and/or index fixup\n"; |
} |
} |
|
} |
# --------------------------------------------- Initial step done, now metadata |
# --------------------------------------------- Initial step done, now metadata |
|
|
# ---------------------------------------- Storage for metadata keys and fields |
# ---------------------------------------- Storage for metadata keys and fields |
Line 364 sub publish {
|
Line 400 sub publish {
|
} |
} |
|
|
# -------------------------------------------------- Parse content for metadata |
# -------------------------------------------------- Parse content for metadata |
|
if ($style eq 'ssi') { |
$allmeta=Apache::lonxml::xmlparse('meta',$content); |
$allmeta=Apache::lonxml::xmlparse('meta',$content); |
|
|
&metaeval($allmeta); |
&metaeval($allmeta); |
|
} |
# ---------------- Find and document discrepancies in the parameters and stores |
# ---------------- Find and document discrepancies in the parameters and stores |
|
|
my $chparms=''; |
my $chparms=''; |
Line 401 sub publish {
|
Line 437 sub publish {
|
$scrout.='<p><b>Obsolete parameters or stored values:</b> '. |
$scrout.='<p><b>Obsolete parameters or stored values:</b> '. |
$chparms; |
$chparms; |
} |
} |
} |
|
# ------------------------------------------------------- Now have all metadata |
# ------------------------------------------------------- Now have all metadata |
|
|
$scrout.= |
$scrout.= |