version 1.100, 2002/10/07 21:07:08
|
version 1.104, 2002/10/19 06:34:15
|
Line 139 my $docroot;
|
Line 139 my $docroot;
|
my $cuname; |
my $cuname; |
my $cudom; |
my $cudom; |
|
|
######################################### |
|
######################################### |
|
|
|
=pod |
=pod |
|
|
=item B<metaeval> |
=item B<metaeval> |
Line 265 sub metaread {
|
Line 262 sub metaread {
|
} |
} |
|
|
######################################### |
######################################### |
######################################### |
|
|
|
=pod |
|
|
|
=item B<sqltime> |
|
|
|
Convert 'time' format into a datetime sql format |
|
|
|
Parameters: |
|
|
|
=over 4 |
|
|
|
=item I<$timef> |
|
|
|
Seconds since 00:00:00 UTC, January 1, 1970. |
|
|
|
=back |
|
|
|
Returns: |
|
|
|
=over 4 |
|
|
|
=item Scalar string |
|
|
|
MySQL-compatible datetime string. |
|
|
|
=back |
|
|
|
=cut |
|
|
|
######################################### |
######################################### |
######################################### |
######################################### |
sub sqltime { |
|
my $timef=shift @_; |
|
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = |
|
localtime($timef); |
|
$mon++; $year+=1900; |
|
return "$year-$mon-$mday $hour:$min:$sec"; |
|
} |
|
|
|
|
|
|
sub coursedependencies { |
|
my $url=&Apache::lonnet::declutter(shift); |
|
$url=~s/\.meta$//; |
|
my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//); |
|
my $regexp=$url; |
|
$regexp=~s/(\W)/\\$1/g; |
|
$regexp='___'.$regexp.'___course'; |
|
my %evaldata=&Apache::lonnet::dump('nohist_resevaldata',$adomain, |
|
$aauthor,$regexp); |
|
my %courses=(); |
|
foreach (keys %evaldata) { |
|
if ($_=~/^([a-zA-Z0-9]+_[a-zA-Z0-9]+)___.+___course$/) { |
|
$courses{$1}=1; |
|
} |
|
} |
|
return %courses; |
|
} |
######################################### |
######################################### |
######################################### |
######################################### |
|
|
|
|
=pod |
=pod |
|
|
=item Form-field-generating subroutines. |
=item Form-field-generating subroutines. |
Line 492 sub get_subscribed_hosts {
|
Line 470 sub get_subscribed_hosts {
|
} else { |
} else { |
&Apache::lonnet::logthis("Unable to open $target.subscription"); |
&Apache::lonnet::logthis("Unable to open $target.subscription"); |
} |
} |
&Apache::lonnet::logthis("Got list of ".join(':',@subscribed)); |
|
return @subscribed; |
return @subscribed; |
} |
} |
|
|
Line 1104 END
|
Line 1081 END
|
unless ($metadatafields{'creationdate'}) { |
unless ($metadatafields{'creationdate'}) { |
$metadatafields{'creationdate'}=time; |
$metadatafields{'creationdate'}=time; |
} |
} |
$scrout.=&hiddenfield('creationdate',$metadatafields{'creationdate'}); |
$scrout.=&hiddenfield('creationdate', |
|
&Apache::loncommon::unsqltime($metadatafields{'creationdate'})); |
|
|
$scrout.=&hiddenfield('lastrevisiondate',time); |
$scrout.=&hiddenfield('lastrevisiondate',time); |
|
|
Line 1206 the server's attempts at publication.
|
Line 1184 the server's attempts at publication.
|
sub phasetwo { |
sub phasetwo { |
|
|
my ($r,$source,$target,$style,$distarget,$batch)=@_; |
my ($r,$source,$target,$style,$distarget,$batch)=@_; |
|
$source=~s/\/+/\//g; |
|
$target=~s/\/+/\//g; |
|
$distarget=~s/\/+/\//g; |
my $logfile; |
my $logfile; |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
return |
return |
Line 1226 sub phasetwo {
|
Line 1207 sub phasetwo {
|
$metadatafields{'abstract'}=$ENV{'form.abstract'}; |
$metadatafields{'abstract'}=$ENV{'form.abstract'}; |
$metadatafields{'mime'}=$ENV{'form.mime'}; |
$metadatafields{'mime'}=$ENV{'form.mime'}; |
$metadatafields{'language'}=$ENV{'form.language'}; |
$metadatafields{'language'}=$ENV{'form.language'}; |
$metadatafields{'creationdate'}= |
$metadatafields{'creationdate'}=$ENV{'form.creationdate'}; |
&sqltime($ENV{'form.creationdate'}); |
$metadatafields{'lastrevisiondate'}=$ENV{'form.lastrevisiondate'}; |
$metadatafields{'lastrevisiondate'}= |
|
&sqltime($ENV{'form.lastrevisiondate'}); |
|
$metadatafields{'owner'}=$ENV{'form.owner'}; |
$metadatafields{'owner'}=$ENV{'form.owner'}; |
$metadatafields{'copyright'}=$ENV{'form.copyright'}; |
$metadatafields{'copyright'}=$ENV{'form.copyright'}; |
$metadatafields{'dependencies'}=$ENV{'form.dependencies'}; |
$metadatafields{'dependencies'}=$ENV{'form.dependencies'}; |
Line 1396 sub phasetwo {
|
Line 1375 sub phasetwo {
|
$r->print('<p>Notifying host '.$subhost.':');$r->rflush; |
$r->print('<p>Notifying host '.$subhost.':');$r->rflush; |
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); |
$r->print($reply);$r->rflush; |
$r->print($reply.'<br />');$r->rflush; |
print $logfile $reply; |
print $logfile $reply; |
} |
} |
|
|
Line 1408 sub phasetwo {
|
Line 1387 sub phasetwo {
|
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); |
$r->print($reply);$r->rflush; |
$r->print($reply.'<br />');$r->rflush; |
print $logfile $reply; |
print $logfile $reply; |
} |
} |
|
|
|
# --------------------------------------------------- Notify subscribed courses |
|
my %courses=&coursedependencies($target); |
|
my $now=time; |
|
foreach (keys %courses) { |
|
$r->print('<p>Notifying course '.$_.':');$r->rflush; |
|
print $logfile "\nNotifying host ".$_.':'; |
|
my ($cdom,$cname)=split(/\_/,$_); |
|
my $reply=&Apache::lonnet::cput |
|
('versionupdate',{$target => $now},$cdom,$cname); |
|
$r->print($reply.'<br />');$r->rflush; |
|
print $logfile $reply; |
|
} |
# ------------------------------------------------ Provide link to new resource |
# ------------------------------------------------ Provide link to new resource |
unless ($batch) { |
unless ($batch) { |
my $thisdistarget=$target; |
my $thisdistarget=$target; |
Line 1437 sub phasetwo {
|
Line 1428 sub phasetwo {
|
|
|
sub batchpublish { |
sub batchpublish { |
my ($r,$srcfile,$targetfile)=@_; |
my ($r,$srcfile,$targetfile)=@_; |
|
$srcfile=~s/\/+/\//g; |
|
$targetfile=~s/\/+/\//g; |
my $thisdisfn=$srcfile; |
my $thisdisfn=$srcfile; |
$thisdisfn=~s/\/home\/korte\/public_html\///; |
$thisdisfn=~s/\/home\/korte\/public_html\///; |
$srcfile=~s/\/+/\//g; |
$srcfile=~s/\/+/\//g; |
Line 1474 sub batchpublish {
|
Line 1467 sub batchpublish {
|
|
|
sub publishdirectory { |
sub publishdirectory { |
my ($r,$fn,$thisdisfn)=@_; |
my ($r,$fn,$thisdisfn)=@_; |
|
$fn=~s/\/+/\//g; |
|
$thisdisfn=~s/\/+/\//g; |
my $resdir= |
my $resdir= |
$Apache::lonnet::perlvar{'lonDocRoot'}.'/res/'.$cudom.'/'.$cuname.'/'. |
$Apache::lonnet::perlvar{'lonDocRoot'}.'/res/'.$cudom.'/'.$cuname.'/'. |
$thisdisfn; |
$thisdisfn; |
Line 1665 unless ($ENV{'form.phase'} eq 'two') {
|
Line 1660 unless ($ENV{'form.phase'} eq 'two') {
|
|
|
$r->print('<html><head><title>LON-CAPA Publishing</title></head>'); |
$r->print('<html><head><title>LON-CAPA Publishing</title></head>'); |
$r->print(&Apache::loncommon::bodytag('Resource Publication')); |
$r->print(&Apache::loncommon::bodytag('Resource Publication')); |
|
|
|
|
my $thisfn=$fn; |
my $thisfn=$fn; |
|
|
my $thistarget=$thisfn; |
my $thistarget=$thisfn; |
Line 1701 unless ($ENV{'form.phase'} eq 'two') {
|
Line 1698 unless ($ENV{'form.phase'} eq 'two') {
|
if (&Apache::loncommon::fileembstyle($thistype) eq 'ssi') { |
if (&Apache::loncommon::fileembstyle($thistype) eq 'ssi') { |
$r->print('<br /><a href="/adm/diff?filename=/~'.$cuname.'/'. |
$r->print('<br /><a href="/adm/diff?filename=/~'.$cuname.'/'. |
$thisdisfn. |
$thisdisfn. |
'&versionone=priv" target="cat">Diffs with Current Version</a><p>'); |
'&versiontwo=priv" target="cat">Diffs with Current Version</a><p>'); |
} |
} |
|
|
# ------------------ Publishing from $thisfn to $thistarget with $thisembstyle. |
# ------------------ Publishing from $thisfn to $thistarget with $thisembstyle. |