version 1.192, 2005/04/07 06:56:27
|
version 1.193, 2005/05/17 00:46:36
|
Line 353 sub hiddenfield {
|
Line 353 sub hiddenfield {
|
return "\n".'<input type="hidden" name="'.$name.'" value="'.$value.'" />'; |
return "\n".'<input type="hidden" name="'.$name.'" value="'.$value.'" />'; |
} |
} |
|
|
|
sub checkbox { |
|
my ($name,$text)=@_; |
|
return "\n<br /><input type='checkbox' name='$name' /> $text"; |
|
} |
|
|
sub selectbox { |
sub selectbox { |
my ($title,$name,$value,$functionref,@idlist)=@_; |
my ($title,$name,$value,$functionref,@idlist)=@_; |
$title=&mt($title); |
$title=&mt($title); |
Line 1703 sub publishdirectory {
|
Line 1708 sub publishdirectory {
|
&mt('Target').': <tt>'.$resdir.'</tt><br />'); |
&mt('Target').': <tt>'.$resdir.'</tt><br />'); |
|
|
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
|
unless ($env{'form.phase'} eq 'two') { |
opendir(DIR,$fn); |
# ask user what they want |
my @files=sort(readdir(DIR)); |
$r->print('<form name="pubdirpref" method="post">'. |
foreach my $filename (@files) { |
&hiddenfield('phase','two'). |
my ($cdev,$cino,$cmode,$cnlink, |
&hiddenfield('filename',$env{'form.filename'}). |
$cuid,$cgid,$crdev,$csize, |
&checkbox('pubrec','include subdirectories'). |
$catime,$cmtime,$cctime, |
&checkbox('forcerepub','force republication of previously published files')); |
$cblksize,$cblocks)=stat($fn.'/'.$filename); |
$r->print('<input type="submit" value="'.&mt('Publish Directory').'" /></form>'); |
|
} else { |
my $extension=''; |
# actually publish things |
if ($filename=~/\.(\w+)$/) { $extension=$1; } |
opendir(DIR,$fn); |
if ($cmode&$dirptr) { |
my @files=sort(readdir(DIR)); |
if (($filename!~/^\./) && ($env{'form.pubrec'})) { |
foreach my $filename (@files) { |
&publishdirectory($r,$fn.'/'.$filename,$thisdisfn.'/'.$filename); |
my ($cdev,$cino,$cmode,$cnlink, |
} |
$cuid,$cgid,$crdev,$csize, |
} elsif ((&Apache::loncommon::fileembstyle($extension) ne 'hdn') && |
$catime,$cmtime,$cctime, |
($filename!~/^[\#\.]/) && ($filename!~/\~$/)) { |
$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 |
# find out publication status and/or exiting metadata |
my $publishthis=0; |
my $publishthis=0; |
if (-e $resdir.'/'.$filename) { |
if (-e $resdir.'/'.$filename) { |
my ($rdev,$rino,$rmode,$rnlink, |
my ($rdev,$rino,$rmode,$rnlink, |
$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'} eq 'ON')) { |
if (($rmtime<$cmtime) || ($env{'form.forcerepub'})) { |
# previously published, modified now |
# previously published, modified now |
$publishthis=1; |
$publishthis=1; |
} |
} |
} else { |
} else { |
# never published |
# never published |
$publishthis=1; |
$publishthis=1; |
} |
} |
if ($publishthis) { |
if ($publishthis) { |
&batchpublish($r,$fn.'/'.$filename,$resdir.'/'.$filename); |
&batchpublish($r,$fn.'/'.$filename,$resdir.'/'.$filename); |
} else { |
} else { |
$r->print('<br />'.&mt('Skipping').' '.$filename.'<br />'); |
$r->print('<br />'.&mt('Skipping').' '.$filename.'<br />'); |
|
} |
|
$r->rflush(); |
} |
} |
$r->rflush(); |
|
} |
} |
|
closedir(DIR); |
} |
} |
closedir(DIR); |
|
} |
} |
|
|
######################################### |
######################################### |
Line 1976 sub handler {
|
Line 1991 sub handler {
|
if ($fn=~/\/$/) { |
if ($fn=~/\/$/) { |
# -------------------------------------------------------- This is a directory |
# -------------------------------------------------------- This is a directory |
&publishdirectory($r,$fn,$thisdisfn); |
&publishdirectory($r,$fn,$thisdisfn); |
$r->print('<hr><font size="+2">'.&mt('Done').'</font><br><a href="/priv/' |
$r->print('<hr /><a href="/priv/' |
.$cuname.'/'.$thisdisfn |
.$cuname.'/'.$thisdisfn |
.'">'.&mt('Return to Directory').'</a>'); |
.'">'.&mt('Return to Directory').'</a>'); |
|
|