--- loncom/publisher/lonpublisher.pm 2003/10/21 19:50:15 1.139 +++ loncom/publisher/lonpublisher.pm 2003/10/21 20:18:45 1.140 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Publication Handler # -# $Id: lonpublisher.pm,v 1.139 2003/10/21 19:50:15 albertel Exp $ +# $Id: lonpublisher.pm,v 1.140 2003/10/21 20:18:45 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -181,7 +181,7 @@ nothing ######################################### ######################################### sub metaeval { - my $metastring=shift; + my ($metastring,$prefix)=@_; my $parser=HTML::LCParser->new(\$metastring); my $token; @@ -209,14 +209,18 @@ sub metaeval { $metadatakeys{$unikey}=$_; } } + my $newentry=$parser->get_text('/'.$entry); + if ($entry eq 'customdistributionfile') { + $newentry=~s/^\s*//; + if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; } + } if ($metadatafields{$unikey}) { - my $newentry=$parser->get_text('/'.$entry); unless (($metadatafields{$unikey}=~/\Q$newentry\E/) || ($newentry eq '')) { $metadatafields{$unikey}.=', '.$newentry; } } else { - $metadatafields{$unikey}=$parser->get_text('/'.$entry); + $metadatafields{$unikey}=$newentry; } } } @@ -260,7 +264,7 @@ XHTML text that indicates successful rea ######################################### ######################################### sub metaread { - my ($logfile,$fn)=@_; + my ($logfile,$fn,$prefix)=@_; unless (-e $fn) { print($logfile 'No file '.$fn."\n"); return '
No file: '.$fn.''; @@ -268,10 +272,10 @@ sub metaread { print($logfile 'Processing '.$fn."\n"); my $metastring; { - my $metafh=Apache::File->new($fn); - $metastring=join('',<$metafh>); + my $metafh=Apache::File->new($fn); + $metastring=join('',<$metafh>); } - &metaeval($metastring); + &metaeval($metastring,$prefix); return '
Processed file: '.$fn.''; } @@ -955,9 +959,11 @@ sub publish { my $currentpath='/home/'.$cuname.'/'; + my $prefix='../'x($#urlparts); foreach (@urlparts) { $currentpath.=$_.'/'; - $scrout.=&metaread($logfile,$currentpath.'default.meta'); + $scrout.=&metaread($logfile,$currentpath.'default.meta',$prefix); + $prefix=~s|^\.\./||; } # ------------------- Clear out parameters and stores (there should not be any)