--- loncom/publisher/lonpublisher.pm 2003/12/29 21:17:00 1.158 +++ loncom/publisher/lonpublisher.pm 2004/01/20 22:52:17 1.162 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Publication Handler # -# $Id: lonpublisher.pm,v 1.158 2003/12/29 21:17:00 www Exp $ +# $Id: lonpublisher.pm,v 1.162 2004/01/20 22:52:17 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -127,6 +127,7 @@ use Apache::lonmysql; use Apache::lonlocal; use Apache::loncfile; use Apache::lonmeta; +use Apache::lonmsg; use vars qw(%metadatafields %metadatakeys); my %addid; @@ -203,7 +204,11 @@ sub metaeval { if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; } } # actually store - $metadatafields{$unikey}=$newentry; + if ( $entry eq 'rule' && exists($metadatafields{$unikey})) { + $metadatafields{$unikey}.=','.$newentry; + } else { + $metadatafields{$unikey}=$newentry; + } } } } @@ -1029,6 +1034,7 @@ sub publish { # ------------------------------------------ See if anything new in file itself $allmeta=&parseformeta($source,$style); + } @@ -1434,7 +1440,10 @@ sub phasetwo { $r->print($error); print $logfile "\n".$error; } - +# --------------------------------------------- Delete author resource messages + my $delresult=&Apache::lonmsg::del_url_author_res_msg($target); + $r->print('
'.&mt('Removing error messages:').' '.$delresult.'
'); + print $logfile "\nRemoving error messages: $delresult"; # ----------------------------------------------------------- Copy old versions if (-e $target) { @@ -1693,6 +1702,63 @@ sub publishdirectory { } closedir(DIR); } + +######################################### +# publish a default.meta file + +sub defaultmetapublish { + my ($r,$fn,$cuname,$cudom)=@_; + $fn=~s/^\/\~$cuname\//\/home\/$cuname\/public_html\//; + unless (-e $fn) { + return HTTP_NOT_FOUND; + } + my $target=$fn; + $target=~s/^\/home\/$cuname\/public_html\//$Apache::lonnet::perlvar{'lonDocRoot'}\/res\/$cudom\/$cuname\//; + + + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + + $r->print(''.&mt('Created directory').' '.$parts[$count].'
'); + mkdir($path,0777); + } + } + + if (copy($fn,$copyfile)) { + $r->print(''.&mt('Copied source file').'
'); + } else { + return "". + &mt('Failed to copy source').", $!, ".&mt('FAIL').""; + } + +# --------------------------------------------------- Send update notifications + + my @subscribed=&get_subscribed_hosts($target); + foreach my $subhost (@subscribed) { + $r->print(''.&mt('Notifying host').' '.$subhost.':');$r->rflush; + my $reply=&Apache::lonnet::critical('update:'.$target,$subhost); + $r->print($reply.'