version 1.66, 2001/12/17 01:50:54
|
version 1.73, 2002/02/14 22:01:39
|
Line 42
|
Line 42
|
# 12/05 Guy Albertelli |
# 12/05 Guy Albertelli |
# 12/06,12/07 Gerd Kortemeyer |
# 12/06,12/07 Gerd Kortemeyer |
# 12/15,12/16 Scott Harrison |
# 12/15,12/16 Scott Harrison |
|
# 12/25 Gerd Kortemeyer |
|
# YEAR=2002 |
|
# 1/16,1/17 Scott Harrison |
|
# 1/17 Gerd Kortemeyer |
# |
# |
### |
### |
|
|
Line 145 sub metaread {
|
Line 149 sub metaread {
|
|
|
# ---------------------------- convert 'time' format into a datetime sql format |
# ---------------------------- convert 'time' format into a datetime sql format |
sub sqltime { |
sub sqltime { |
|
my $timef=shift @_; |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
localtime(@_[0]); |
localtime($timef); |
$mon++; $year+=1900; |
$mon++; $year+=1900; |
return "$year-$mon-$mday $hour:$min:$sec"; |
return "$year-$mon-$mday $hour:$min:$sec"; |
} |
} |
Line 184 sub selectbox {
|
Line 189 sub selectbox {
|
sub urlfixup { |
sub urlfixup { |
my ($url,$target)=@_; |
my ($url,$target)=@_; |
unless ($url) { return ''; } |
unless ($url) { return ''; } |
|
#javascript code needs no fixing |
|
if ($url =~ /^javascript:/i) { return $url; } |
|
if ($url =~ /^mailto:/i) { return $url; } |
|
#internal document links need no fixing |
|
if ($url =~ /^\#/) { return $url; } |
my ($host)=($url=~/(?:http\:\/\/)*([^\/]+)/); |
my ($host)=($url=~/(?:http\:\/\/)*([^\/]+)/); |
foreach (values %Apache::lonnet::hostname) { |
foreach (values %Apache::lonnet::hostname) { |
if ($_ eq $host) { |
if ($_ eq $host) { |
Line 193 sub urlfixup {
|
Line 203 sub urlfixup {
|
} |
} |
if ($url=~/^http\:\/\//) { return $url; } |
if ($url=~/^http\:\/\//) { return $url; } |
$url=~s/\~$cuname/res\/$cudom\/$cuname/; |
$url=~s/\~$cuname/res\/$cudom\/$cuname/; |
|
return $url; |
|
} |
|
|
|
|
|
sub absoluteurl { |
|
my ($url,$target)=@_; |
|
unless ($url) { return ''; } |
if ($target) { |
if ($target) { |
$target=~s/\/[^\/]+$//; |
$target=~s/\/[^\/]+$//; |
$url=&Apache::lonnet::hreflocation($target,$url); |
$url=&Apache::lonnet::hreflocation($target,$url); |
Line 297 sub publish {
|
Line 314 sub publish {
|
print $logfile 'Index: '.$tag.':'.$maxindex."\n"; |
print $logfile 'Index: '.$tag.':'.$maxindex."\n"; |
} |
} |
} |
} |
} |
} |
|
|
foreach ('src','href','background') { |
foreach my $type ('src','href','background','bgimg') { |
if (defined($parms{$_})) { |
foreach my $key (keys(%parms)) { |
my $oldurl=$parms{$_}; |
if ($key =~ /^$type$/i) { |
my $newurl=&urlfixup($oldurl,$target); |
my $oldurl=$parms{$key}; |
if ($newurl ne $oldurl) { |
my $newurl=&urlfixup($oldurl,$target); |
$parms{$_}=$newurl; |
if ($newurl ne $oldurl) { |
print $logfile 'URL: '.$tag.':'.$oldurl.' - '. |
$parms{$key}=$newurl; |
$newurl."\n"; |
print $logfile 'URL: '.$tag.':'.$oldurl.' - '. |
|
$newurl."\n"; |
|
} |
|
$allow{&absoluteurl($newurl,$target)}=1; |
} |
} |
$allow{$newurl}=1; |
last; |
} |
} |
} |
} |
|
|
if ($lctag eq 'applet') { |
if ($lctag eq 'applet') { |
Line 327 sub publish {
|
Line 347 sub publish {
|
$oldcodebase.' - '. |
$oldcodebase.' - '. |
$codebase."\n"; |
$codebase."\n"; |
} |
} |
$allow{$codebase.'/*'}=1; |
$allow{&absoluteurl($codebase,$target).'/*'}=1; |
} else { |
} else { |
foreach ('archive','code','object') { |
foreach ('archive','code','object') { |
if (defined($parms{$_})) { |
if (defined($parms{$_})) { |
Line 337 sub publish {
|
Line 357 sub publish {
|
print $logfile 'Allow: applet '.$_.':'. |
print $logfile 'Allow: applet '.$_.':'. |
$oldurl.' allows '. |
$oldurl.' allows '. |
$newurl."\n"; |
$newurl."\n"; |
$allow{$newurl}=1; |
$allow{&absoluteurl($newurl,$target)}=1; |
} |
} |
} |
} |
} |
} |
Line 372 sub publish {
|
Line 392 sub publish {
|
|
|
$scrout.='<h3>Dependencies</h3>'; |
$scrout.='<h3>Dependencies</h3>'; |
my $allowstr=''; |
my $allowstr=''; |
foreach (keys %allow) { |
foreach (sort(keys(%allow))) { |
my $thisdep=$_; |
my $thisdep=$_; |
|
if ($thisdep !~ /[^\s]/) { next; } |
unless ($style eq 'rat') { |
unless ($style eq 'rat') { |
$allowstr.="\n".'<allow src="'.$thisdep.'" />'; |
$allowstr.="\n".'<allow src="'.$thisdep.'" />'; |
} |
} |
Line 400 sub publish {
|
Line 421 sub publish {
|
} |
} |
} |
} |
} |
} |
|
$allowstr=~s/\n+/\n/g; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
$outstring=~s/(\<\/[^\>]+\>\s*)$/$allowstr$1/s; |
|
|
# ------------------------------------------------------------- Write modified |
# ------------------------------------------------------------- Write modified |
Line 509 sub publish {
|
Line 531 sub publish {
|
$chparms; |
$chparms; |
} |
} |
|
|
my $chparms=''; |
$chparms=''; |
foreach (sort keys %oldparmstores) { |
foreach (sort keys %oldparmstores) { |
if (($_=~/^parameter/) || ($_=~/^stores/)) { |
if (($_=~/^parameter/) || ($_=~/^stores/)) { |
unless (($metadatafields{$_.'.name'}) || |
unless (($metadatafields{$_.'.name'}) || |
Line 541 sub publish {
|
Line 563 sub publish {
|
|
|
my $keywordout='<p><b>Keywords:</b><br><table border=2><tr>'; |
my $keywordout='<p><b>Keywords:</b><br><table border=2><tr>'; |
my $colcount=0; |
my $colcount=0; |
|
my %keywords=(); |
|
|
if (length($content)<500000) { |
if (length($content)<500000) { |
my $textonly=$content; |
my $textonly=$content; |
Line 551 sub publish {
|
Line 574 sub publish {
|
$textonly=~s/[\$\&][a-z]\w*//g; |
$textonly=~s/[\$\&][a-z]\w*//g; |
$textonly=~s/[^a-z\s]//g; |
$textonly=~s/[^a-z\s]//g; |
|
|
my %keywords=(); |
|
foreach ($textonly=~m/(\w+)/g) { |
foreach ($textonly=~m/(\w+)/g) { |
unless ($nokey{$_}) { |
unless ($nokey{$_}) { |
$keywords{$_}=1; |
$keywords{$_}=1; |
} |
} |
} |
} |
|
} |
|
|
|
|
foreach (split(/\W+/,$metadatafields{'keywords'})) { |
foreach (split(/\W+/,$metadatafields{'keywords'})) { |
$keywords{$_}=1; |
$keywords{$_}=1; |
} |
} |
|
|
foreach (sort keys %keywords) { |
foreach (sort keys %keywords) { |
$keywordout.='<td><input type=checkbox name="key.'.$_.'"'; |
$keywordout.='<td><input type=checkbox name="key.'.$_.'"'; |
if ($metadatafields{'keywords'}=~/$_/) { |
if ($metadatafields{'keywords'}) { |
$keywordout.=' checked'; |
if ($metadatafields{'keywords'}=~/$_/) { |
} |
$keywordout.=' checked'; |
|
} |
|
} elsif (&Apache::loncommon::keyword($_)) { |
|
$keywordout.=' checked'; |
|
} |
$keywordout.='>'.$_.'</td>'; |
$keywordout.='>'.$_.'</td>'; |
if ($colcount>10) { |
if ($colcount>10) { |
$keywordout.="</tr><tr>\n"; |
$keywordout.="</tr><tr>\n"; |
Line 574 sub publish {
|
Line 602 sub publish {
|
} |
} |
$colcount++; |
$colcount++; |
} |
} |
|
|
} else { |
|
$keywordout.='<td>File too long for keyword analysis</td>'; |
|
} |
|
|
|
$keywordout.='</tr></table>'; |
$keywordout.='</tr></table>'; |
|
|
Line 597 sub publish {
|
Line 621 sub publish {
|
|
|
$scrout.=&selectbox('Language','language', |
$scrout.=&selectbox('Language','language', |
$metadatafields{'language'}, |
$metadatafields{'language'}, |
\&{Apache::loncommon::languagedescription}, |
\&Apache::loncommon::languagedescription, |
(&Apache::loncommon::languageids), |
(&Apache::loncommon::languageids), |
); |
); |
|
|
Line 618 sub publish {
|
Line 642 sub publish {
|
} |
} |
$scrout.=&selectbox('Copyright/Distribution','copyright', |
$scrout.=&selectbox('Copyright/Distribution','copyright', |
$metadatafields{'copyright'}, |
$metadatafields{'copyright'}, |
\&{Apache::loncommon::copyrightdescription}, |
\&Apache::loncommon::copyrightdescription, |
(grep !/^public$/,(&Apache::loncommon::copyrightids))); |
(grep !/^public$/,(&Apache::loncommon::copyrightids))); |
} |
} |
else { |
else { |
$scrout.=&selectbox('Copyright/Distribution','copyright', |
$scrout.=&selectbox('Copyright/Distribution','copyright', |
$metadatafields{'copyright'}, |
$metadatafields{'copyright'}, |
\&{Apache::loncommon::copyrightdescription}, |
\&Apache::loncommon::copyrightdescription, |
(&Apache::loncommon::copyrightids)); |
(&Apache::loncommon::copyrightids)); |
} |
} |
return $scrout. |
return $scrout. |