--- loncom/publisher/lonpublisher.pm 2000/12/23 15:53:26 1.15 +++ loncom/publisher/lonpublisher.pm 2001/03/29 21:45:06 1.21 @@ -6,6 +6,8 @@ # 05/29/00,05/30,10/11 Gerd Kortemeyer) # # 11/28,11/29,11/30,12/01,12/02,12/04,12/23 Gerd Kortemeyer +# 03/23 Guy Albertelli +# 03/24,03/29 Gerd Kortemeyer package Apache::lonpublisher; @@ -15,9 +17,7 @@ use File::Copy; use Apache::Constants qw(:common :http :methods); use HTML::TokeParser; use Apache::lonxml; -use Apache::structuretags; -use Apache::inputtags; -use Apache::response; +use Apache::lonhomework; my %addid; my %nokey; @@ -598,6 +598,34 @@ if (-e $target) { } +# ---------------------------------------- Send update notifications, meta only + +{ + + my $filename; + + $target=~/(.*)\/([^\/]+)$/; + my $srcf=$2.'.meta'; + opendir(DIR,$1); + while ($filename=readdir(DIR)) { + if ($filename=~/$srcf\.(\w+)$/) { + my $subhost=$1; + if ($subhost ne 'meta') { + $scrout.= + '

Notifying host for metadata only '.$subhost.':'; + print $logfile + "\nNotifying host for metadata only '.$subhost.':'"; + my $reply=&Apache::lonnet::critical( + 'update:'.$target.'.meta',$subhost); + $scrout.=$reply; + print $logfile $reply; + } + } + } + closedir(DIR); + +} + # ------------------------------------------------ Provide link to new resource my $thisdistarget=$target; @@ -618,7 +646,6 @@ sub handler { return OK; } -unless ($ENV{'form.pubdir'}) { # -------------------------------------------------------------- Check filename my $fn=$ENV{'form.filename'}; @@ -747,56 +774,7 @@ unless ($ENV{'form.phase'} eq 'two') { } $r->print(''); -} else { - - my $fn=$ENV{'form.filename'}; - - $fn=~s/\/[^\/]+$//; - my $thisprefix=$fn; - $thisprefix=~s/\/\~/\/priv\//; - $fn=~s/^http\:\/\/[^\/]+\/\~(\w+)/\/home\/$1\/public_html/; - - unless ($fn) { - $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. - ' trying to publish empty directory', $r->filename); - return HTTP_NOT_FOUND; - } - -# ----------------------------------------------------------- Start page output - - $r->content_type('text/html'); - $r->send_http_header; - - $r->print('LON-CAPA Publishing Directory'); - $r->print( - ''); - - my $thisdisfn=$fn; - $thisdisfn=~s/^\/home\/$ENV{'user.name'}\/public_html\///; - - $r->print('

Publishing directory '.$thisdisfn.'

'); - my $i=0; - $r->print(''); - - $r->print(''); - -} return OK; }