version 1.181, 2005/01/05 20:11:19
|
version 1.184, 2005/01/24 21:55:20
|
Line 138 my $docroot;
|
Line 138 my $docroot;
|
my $cuname; |
my $cuname; |
my $cudom; |
my $cudom; |
|
|
|
my $registered_cleanup; |
|
my $modified_urls; |
|
|
=pod |
=pod |
|
|
=item B<metaeval> |
=item B<metaeval> |
Line 1543 sub phasetwo {
|
Line 1546 sub phasetwo {
|
$r->rflush; |
$r->rflush; |
|
|
# ------------------------------------------------------------- Trigger updates |
# ------------------------------------------------------------- Trigger updates |
$ENV{'internal.publication.target'}=$target; |
push(@{$modified_urls},[$target,$source]); |
$ENV{'internal.publication.source'}=$source; |
unless ($registered_cleanup) { |
$r->register_cleanup(\¬ify); |
$r->register_cleanup(\¬ify); |
|
$registered_cleanup=1; |
|
} |
# ------------------------------------------------ Provide link to new resource |
# ------------------------------------------------ Provide link to new resource |
unless ($batch) { |
unless ($batch) { |
my $thisdistarget=$target; |
my $thisdistarget=$target; |
Line 1575 sub phasetwo {
|
Line 1579 sub phasetwo {
|
# =============================================================== Notifications |
# =============================================================== Notifications |
sub notify { |
sub notify { |
# --------------------------------------------------- Send update notifications |
# --------------------------------------------------- Send update notifications |
my $target=$ENV{'internal.publication.target'}; |
foreach my $targetsource (@{$modified_urls}){ |
my $source=$ENV{'internal.publication.source'}; |
my ($target,$source)=@{$targetsource}; |
my $logfile=Apache::File->new('>>'.$source.'.log'); |
my $logfile=Apache::File->new('>>'.$source.'.log'); |
print $logfile "\nCleanup phase: Notifications\n"; |
print $logfile "\nCleanup phase: Notifications\n"; |
my @subscribed=&get_subscribed_hosts($target); |
my @subscribed=&get_subscribed_hosts($target); |
foreach my $subhost (@subscribed) { |
foreach my $subhost (@subscribed) { |
print $logfile "\nNotifying host ".$subhost.':'; |
print $logfile "\nNotifying host ".$subhost.':'; |
my $reply=&Apache::lonnet::critical('update:'.$target,$subhost); |
my $reply=&Apache::lonnet::critical('update:'.$target,$subhost); |
print $logfile $reply; |
print $logfile $reply; |
} |
} |
# ---------------------------------------- Send update notifications, meta only |
# ---------------------------------------- Send update notifications, meta only |
my @subscribedmeta=&get_subscribed_hosts("$target.meta"); |
my @subscribedmeta=&get_subscribed_hosts("$target.meta"); |
foreach my $subhost (@subscribedmeta) { |
foreach my $subhost (@subscribedmeta) { |
print $logfile "\nNotifying host for metadata only ".$subhost.':'; |
print $logfile "\nNotifying host for metadata only ".$subhost.':'; |
my $reply=&Apache::lonnet::critical('update:'.$target.'.meta', |
my $reply=&Apache::lonnet::critical('update:'.$target.'.meta', |
$subhost); |
$subhost); |
print $logfile $reply; |
print $logfile $reply; |
} |
} |
# --------------------------------------------------- Notify subscribed courses |
# --------------------------------------------------- Notify subscribed courses |
my %courses=&coursedependencies($target); |
my %courses=&coursedependencies($target); |
my $now=time; |
my $now=time; |
foreach (keys %courses) { |
foreach (keys %courses) { |
print $logfile "\nNotifying course ".$_.':'; |
print $logfile "\nNotifying course ".$_.':'; |
my ($cdom,$cname)=split(/\_/,$_); |
my ($cdom,$cname)=split(/\_/,$_); |
my $reply=&Apache::lonnet::cput |
my $reply=&Apache::lonnet::cput |
('versionupdate',{$target => $now},$cdom,$cname); |
('versionupdate',{$target => $now},$cdom,$cname); |
print $logfile $reply; |
print $logfile $reply; |
|
} |
|
print $logfile "\n============ Done ============\n"; |
|
$logfile->close(); |
} |
} |
print $logfile "\n============ Done ============\n"; |
return OK; |
$logfile->close(); |
|
} |
} |
|
|
######################################### |
######################################### |
Line 1687 sub publishdirectory {
|
Line 1693 sub publishdirectory {
|
$ruid,$rgid,$rrdev,$rsize, |
$ruid,$rgid,$rrdev,$rsize, |
$ratime,$rmtime,$rctime, |
$ratime,$rmtime,$rctime, |
$rblksize,$rblocks)=stat($resdir.'/'.$filename); |
$rblksize,$rblocks)=stat($resdir.'/'.$filename); |
if (($rmtime<$cmtime) || ($ENV{'form.forcerepub'})) { |
if (($rmtime<$cmtime) || ($ENV{'form.forcerepub'} eq 'ON')) { |
# previously published, modified now |
# previously published, modified now |
$publishthis=1; |
$publishthis=1; |
} |
} |
Line 1816 sub handler {
|
Line 1822 sub handler {
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['filename']); |
['filename']); |
|
|
|
# -------------------------------------- Flag and buffer for registered cleanup |
|
$registered_cleanup=0; |
|
@{$modified_urls}=(); |
# -------------------------------------------------------------- Check filename |
# -------------------------------------------------------------- Check filename |
|
|
my $fn=&Apache::lonnet::unescape($ENV{'form.filename'}); |
my $fn=&Apache::lonnet::unescape($ENV{'form.filename'}); |