version 1.39, 2001/08/17 16:27:08
|
version 1.46, 2001/10/03 11:04:57
|
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,8/13,8/17 Gerd Kortemeyer |
# 06/23,08/07,08/11,8/13,8/17,8/18,8/24,9/26 Gerd Kortemeyer |
|
|
package Apache::lonpublisher; |
package Apache::lonpublisher; |
|
|
Line 71 sub metaeval {
|
Line 71 sub metaeval {
|
} @{$token->[3]}; |
} @{$token->[3]}; |
if ($metadatafields{$unikey}) { |
if ($metadatafields{$unikey}) { |
my $newentry=$parser->get_text('/'.$entry); |
my $newentry=$parser->get_text('/'.$entry); |
unless ($metadatafields{$unikey}=~/$newentry/) { |
unless (($metadatafields{$unikey}=~/$newentry/) || |
|
($newentry eq '')) { |
$metadatafields{$unikey}.=', '.$newentry; |
$metadatafields{$unikey}.=', '.$newentry; |
} |
} |
} else { |
} else { |
Line 143 sub urlfixup {
|
Line 144 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 152 sub urlfixup {
|
Line 154 sub urlfixup {
|
} |
} |
|
|
sub publish { |
sub publish { |
|
|
my ($source,$target,$style)=@_; |
my ($source,$target,$style)=@_; |
my $logfile; |
my $logfile; |
my $scrout=''; |
my $scrout=''; |
Line 257 sub publish {
|
Line 258 sub publish {
|
} |
} |
$allow{$newurl}=1; |
$allow{$newurl}=1; |
} |
} |
} ('src','href'); |
} ('src','href','background'); |
|
|
if ($tag eq 'applet') { |
if ($tag eq 'applet') { |
my $codebase=''; |
my $codebase=''; |
Line 307 sub publish {
|
Line 308 sub publish {
|
} |
} |
} elsif ($token->[0] eq 'E') { |
} elsif ($token->[0] eq 'E') { |
unless ($token->[1] eq 'allow') { |
unless ($token->[1] eq 'allow') { |
$outstring.=$token->[2]; |
$outstring.='</'.$token->[1].'>'; |
} |
} |
} else { |
} else { |
$outstring.=$token->[1]; |
$outstring.=$token->[1]; |
Line 315 sub publish {
|
Line 316 sub publish {
|
} |
} |
# ------------------------------------------------------------ Construct Allows |
# ------------------------------------------------------------ Construct Allows |
unless ($style eq 'rat') { |
unless ($style eq 'rat') { |
|
$scrout.='<h3>Dependencies</h3>'; |
my $allowstr="\n"; |
my $allowstr="\n"; |
map { |
map { |
$allowstr.='<allow src="'.$_.'" />'."\n"; |
$allowstr.='<allow src="'.$_.'" />'."\n"; |
|
$scrout.='<br>'; |
|
unless ($_=~/\*/) { |
|
$scrout.='<a href="'.$_.'">'; |
|
} |
|
$scrout.='<tt>'.$_.'</tt>'; |
|
unless ($_=~/\*/) { |
|
$scrout.='</a>'; |
|
} |
} keys %allow; |
} keys %allow; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
} |
} |
Line 350 sub publish {
|
Line 360 sub publish {
|
%metadatakeys=(); |
%metadatakeys=(); |
|
|
my %oldparmstores=(); |
my %oldparmstores=(); |
|
|
|
$scrout.='<h3>Metadata Information</h3>'; |
|
|
# ------------------------------------------------ First, check out environment |
# ------------------------------------------------ First, check out environment |
unless (-e $source.'.meta') { |
unless (-e $source.'.meta') { |
Line 400 sub publish {
|
Line 412 sub publish {
|
|
|
# -------------------------------------------------- Parse content for metadata |
# -------------------------------------------------- Parse content for metadata |
if ($style eq 'ssi') { |
if ($style eq 'ssi') { |
|
my $oldenv=$ENV{'request.uri'}; |
|
|
|
$ENV{'request.uri'}=$target; |
$allmeta=Apache::lonxml::xmlparse('meta',$content); |
$allmeta=Apache::lonxml::xmlparse('meta',$content); |
|
$ENV{'request.uri'}=$oldenv; |
|
|
&metaeval($allmeta); |
&metaeval($allmeta); |
} |
} |
Line 463 sub publish {
|
Line 479 sub publish {
|
$textonly=~s/[^a-z\s]//g; |
$textonly=~s/[^a-z\s]//g; |
|
|
my %keywords=(); |
my %keywords=(); |
map { |
my $j=0; |
unless ($nokey{$_}) { |
my $word; |
$keywords{$_}=1; |
for (my $i=0; $i<length($textonly); $i++) { |
} |
my $ch.=substr($textonly,$i,1); |
} ($textonly=~m/(\w+)/g); |
if ($ch=~/\s/) { |
|
if (length($word)) { |
|
unless ($nokey{$word}) { |
|
$keywords{$word}=1; |
|
} |
|
} |
|
$word=''; |
|
} |
|
else { |
|
$word.=$ch; |
|
} |
|
# map { |
|
# unless ($nokey{$_}) { |
|
# $keywords{$_}=1; |
|
# } |
|
# } ($textonly=~m/(\w+)/g); |
|
} |
|
|
|
my $sizkeys=scalar(keys %keywords); # use this value at some point |
map { |
map { |
$keywords{$_}=1; |
$keywords{$_}=1; |
} split(/\W+/,$metadatafields{'keywords'}); |
} split(/\W+/,$metadatafields{'keywords'}); |
Line 488 sub publish {
|
Line 521 sub publish {
|
$keywordout.='</tr></table>'; |
$keywordout.='</tr></table>'; |
|
|
} |
} |
|
|
$scrout.=$keywordout; |
$scrout.=$keywordout; |
|
|
$scrout.=&textfield('Additional Keywords','addkey',''); |
$scrout.=&textfield('Additional Keywords','addkey',''); |
Line 516 sub publish {
|
Line 548 sub publish {
|
|
|
$scrout.=&textfield('Publisher/Owner','owner', |
$scrout.=&textfield('Publisher/Owner','owner', |
$metadatafields{'owner'}); |
$metadatafields{'owner'}); |
|
# --------------------------------------------------- Correct copyright for rat |
|
if ($style eq 'rat') { |
|
if ($metadatafields{'copyright'} eq 'public') { |
|
delete $metadatafields{'copyright'}; |
|
} |
|
delete $cprtag{'public'}; |
|
} |
|
|
$scrout.=&selectbox('Copyright/Distribution','copyright', |
$scrout.=&selectbox('Copyright/Distribution','copyright', |
$metadatafields{'copyright'},%cprtag); |
$metadatafields{'copyright'},%cprtag); |
Line 831 sub handler {
|
Line 870 sub handler {
|
return OK; |
return OK; |
} |
} |
|
|
|
# Get query string for limited number of parameters |
|
|
|
map { |
|
my ($name, $value) = split(/=/,$_); |
|
$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; |
|
} |
|
} |
|
} (split(/&/,$ENV{'QUERY_STRING'})); |
|
|
|
|
# -------------------------------------------------------------- Check filename |
# -------------------------------------------------------------- Check filename |
|
|
my $fn=$ENV{'form.filename'}; |
my $fn=$ENV{'form.filename'}; |
Line 862 sub handler {
|
Line 915 sub handler {
|
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
|
|
$fn=~s/^http\:\/\/[^\/]+\/\~(\w+)/\/home\/$1\/public_html/; |
$fn=~s/^http\:\/\/[^\/]+//; |
|
$fn=~s/^\/\~(\w+)/\/home\/$1\/public_html/; |
|
|
my $targetdir=''; |
my $targetdir=''; |
$docroot=$r->dir_config('lonDocRoot'); |
$docroot=$r->dir_config('lonDocRoot'); |