version 1.94, 2002/09/10 14:52:35
|
version 1.96, 2002/09/17 15:01:36
|
Line 1164 the server's attempts at publication.
|
Line 1164 the server's attempts at publication.
|
######################################### |
######################################### |
sub phasetwo { |
sub phasetwo { |
|
|
my ($source,$target,$style,$distarget)=@_; |
my ($source,$target,$style,$distarget,$batch)=@_; |
my $logfile; |
my $logfile; |
my $scrout=''; |
my $scrout=''; |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
unless ($logfile=Apache::File->new('>>'.$source.'.log')) { |
Line 1368 if (-e $target) {
|
Line 1368 if (-e $target) {
|
} |
} |
|
|
# ------------------------------------------------ Provide link to new resource |
# ------------------------------------------------ Provide link to new resource |
|
unless ($batch) { |
my $thisdistarget=$target; |
my $thisdistarget=$target; |
$thisdistarget=~s/^$docroot//; |
$thisdistarget=~s/^$docroot//; |
|
|
Line 1385 if (-e $target) {
|
Line 1385 if (-e $target) {
|
'<p><a href="'.$thissrc.'"><font size=+2>Back to Source</font></a>'. |
'<p><a href="'.$thissrc.'"><font size=+2>Back to Source</font></a>'. |
'<p><a href="'.$thissrcdir. |
'<p><a href="'.$thissrcdir. |
'"><font size="+2">Back to Source Directory</font></a>'; |
'"><font size="+2">Back to Source Directory</font></a>'; |
|
} |
} |
} |
|
|
|
######################################### |
|
|
|
sub batchpublish { |
|
my ($r,$srcfile)=@_; |
|
my $thisdisfn=$srcfile; |
|
$thisdisfn=~s/\/home\/korte\/public_html\///; |
|
$srcfile=~s/\/+/\//g; |
|
|
|
|
|
undef %metadatafields; |
|
undef %metadatakeys; |
|
%metadatafields=(); |
|
%metadatakeys=(); |
|
|
|
$r->print('<h2>Publishing <tt>'.$thisdisfn.'</tt></h2>'); |
|
# phase two takes |
|
# my ($source,$target,$style,$distarget,batch)=@_; |
|
# $ENV{'form.allmeta'} |
|
|
|
} |
|
|
######################################### |
######################################### |
|
|
|
sub publishdirectory { |
|
my ($r,$fn,$thisdisfn)=@_; |
|
my $resdir= |
|
$Apache::lonnet::perlvar{'lonDocRoot'}.'/res/'.$cudom.'/'.$cuname. |
|
$thisdisfn; |
|
$r->print('<h1>Directory <tt>'.$thisdisfn.'/</tt></h1>'. |
|
'Target: <tt>'.$resdir.'</tt><br />'); |
|
|
|
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
|
|
|
opendir(DIR,$fn); |
|
my @files=sort(readdir(DIR)); |
|
foreach my $filename (@files) { |
|
my ($cdev,$cino,$cmode,$cnlink, |
|
$cuid,$cgid,$crdev,$csize, |
|
$catime,$cmtime,$cctime, |
|
$cblksize,$cblocks)=stat($fn.'/'.$filename); |
|
|
|
my $extension=''; |
|
if ($filename=~/\.(\w+)$/) { $extension=$1; } |
|
if ($cmode&$dirptr) { |
|
if (($filename!~/^\./) && ($ENV{'form.pubrec'})) { |
|
&publishdirectory($r,$fn.'/'.$filename,$thisdisfn.'/'.$filename); |
|
} |
|
} elsif ((&Apache::loncommon::fileembstyle($extension) ne 'hdn') && |
|
($filename!~/^[\#\.]/) && ($filename!~/\~$/)) { |
|
# find out publication status and/or exiting metadata |
|
my $publishthis=0; |
|
if (-e $resdir.'/'.$filename) { |
|
my ($rdev,$rino,$rmode,$rnlink, |
|
$ruid,$rgid,$rrdev,$rsize, |
|
$ratime,$rmtime,$rctime, |
|
$rblksize,$rblocks)=stat($resdir.'/'.$filename); |
|
if ($rmtime<$cmtime) { |
|
# previously published, modified now |
|
$publishthis=1; |
|
} |
|
} else { |
|
# never published |
|
$publishthis=1; |
|
} |
|
if ($publishthis) { |
|
&batchpublish($r,$fn.'/'.$filename); |
|
} else { |
|
$r->print('<br />Skipping '.$filename.'<br />'); |
|
} |
|
$r->rflush(); |
|
} |
|
} |
|
closedir(DIR); |
|
} |
######################################### |
######################################### |
|
|
=pod |
=pod |
Line 1531 unless ($ENV{'form.phase'} eq 'two') {
|
Line 1603 unless ($ENV{'form.phase'} eq 'two') {
|
$r->send_http_header; |
$r->send_http_header; |
|
|
$r->print('<html><head><title>LON-CAPA Publishing</title></head>'); |
$r->print('<html><head><title>LON-CAPA Publishing</title></head>'); |
$r->print( |
$r->print(&Apache::loncommon::bodytag('Resource Publication')); |
'<body bgcolor="#FFFFFF"><img align="right" '. |
|
'src="/adm/lonIcons/lonlogos.gif" />'); |
|
my $thisfn=$fn; |
my $thisfn=$fn; |
|
|
# ---------------------- Evaluate individual file, and then output information. |
|
{ |
|
$thisfn=~/\.(\w+)$/; |
|
my $thistype=$1; |
|
my $thisembstyle=&Apache::loncommon::fileembstyle($thistype); |
|
|
|
my $thistarget=$thisfn; |
my $thistarget=$thisfn; |
|
|
$thistarget=~s/^\/home/$targetdir/; |
$thistarget=~s/^\/home/$targetdir/; |
$thistarget=~s/\/public\_html//; |
$thistarget=~s/\/public\_html//; |
|
|
my $thisdistarget=$thistarget; |
my $thisdistarget=$thistarget; |
$thisdistarget=~s/^$docroot//; |
$thisdistarget=~s/^$docroot//; |
|
|
my $thisdisfn=$thisfn; |
my $thisdisfn=$thisfn; |
$thisdisfn=~s/^\/home\/$cuname\/public_html\///; |
$thisdisfn=~s/^\/home\/$cuname\/public_html\///; |
|
|
|
if ($fn=~/\/$/) { |
|
# -------------------------------------------------------- This is a directory |
|
&publishdirectory($r,$fn,$thisdisfn); |
|
|
|
} else { |
|
# ---------------------- Evaluate individual file, and then output information. |
|
$thisfn=~/\.(\w+)$/; |
|
my $thistype=$1; |
|
my $thisembstyle=&Apache::loncommon::fileembstyle($thistype); |
|
|
$r->print('<h2>Publishing '. |
$r->print('<h2>Publishing '. |
&Apache::loncommon::filedescription($thistype).' <tt>'. |
&Apache::loncommon::filedescription($thistype).' <tt>'. |
$thisdisfn.'</tt></h2><b>Target:</b> <tt>'.$thisdistarget.'</tt><p>'); |
'<a href="/~'.$cuname.'/'.$thisdisfn.'" target="cat">'.$thisdisfn. |
|
'</a></tt></h2><b>Target:</b> <tt>'.$thisdistarget.'</tt><p>'); |
|
|
if (($cuname ne $ENV{'user.name'}) || ($cudom ne $ENV{'user.domain'})) { |
if (($cuname ne $ENV{'user.name'}) || ($cudom ne $ENV{'user.domain'})) { |
$r->print('<h3><font color="red">Co-Author: '.$cuname.' at '.$cudom. |
$r->print('<h3><font color="red">Co-Author: '.$cuname.' at '.$cudom. |