--- loncom/publisher/lonpublisher.pm 2001/03/24 21:51:58 1.20
+++ loncom/publisher/lonpublisher.pm 2001/04/16 20:47:27 1.25
@@ -7,7 +7,8 @@
#
# 11/28,11/29,11/30,12/01,12/02,12/04,12/23 Gerd Kortemeyer
# 03/23 Guy Albertelli
-# 03/24 Gerd Kortemeyer
+# 03/24,03/29,04/03 Gerd Kortemeyer
+# 04/16/2001 Scott Harrison
package Apache::lonpublisher;
@@ -18,6 +19,7 @@ use Apache::Constants qw(:common :http :
use HTML::TokeParser;
use Apache::lonxml;
use Apache::lonhomework;
+use DBI;
my %addid;
my %nokey;
@@ -84,6 +86,14 @@ sub metaread {
return '
Processed file: '.$fn.'';
}
+# ---------------------------- convert 'time' format into a datetime sql format
+sub sqltime {
+ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
+ localtime(@_[0]);
+ $mon++; $year+=1900;
+ return "$year-$mon-$mday $hour:$min:$sec";
+}
+
# --------------------------------------------------------- Various form fields
sub textfield {
@@ -115,6 +125,8 @@ sub publish {
my ($source,$target,$style)=@_;
my $logfile;
my $scrout='';
+ my $allmeta='';
+ my $content='';
unless ($logfile=Apache::File->new('>>'.$source.'.log')) {
return
@@ -138,7 +150,7 @@ sub publish {
my $maxindex=10;
my $maxid=10;
- my $content='';
+
my $needsfixup=0;
{
@@ -290,7 +302,7 @@ sub publish {
# -------------------------------------------------- Parse content for metadata
- my $allmeta=Apache::lonxml::xmlparse('meta',$content);
+ $allmeta=Apache::lonxml::xmlparse('meta',$content);
&metaeval($allmeta);
# ---------------- Find and document discrepancies in the parameters and stores
@@ -324,7 +336,7 @@ sub publish {
$scrout.='
Obsolete parameters or stored values: '. $chparms; } - + } # ------------------------------------------------------- Now have all metadata $scrout.= @@ -408,7 +420,6 @@ sub publish { $scrout.=&selectbox('Copyright/Distribution','copyright', $metadatafields{'copyright'},%cprtag); - } return $scrout. '
';
}
@@ -417,7 +428,7 @@ sub publish {
sub phasetwo {
- my ($source,$target,$style)=@_;
+ my ($source,$target,$style,$distarget)=@_;
my $logfile;
my $scrout='';
@@ -481,6 +492,58 @@ sub phasetwo {
print $logfile "\nWrote metadata";
}
+# -------------------------------- Synchronize entry with SQL metadata database
+ my %perlvar;
+ open (CONFIG,"/etc/httpd/conf/access.conf") || die "Can't read access.conf";
+ my $configline;
+ while ($configline= Synchronized SQL metadata database';
+ print $logfile "\nSynchronized SQL metadata database";
+
# ----------------------------------------------------------- Copy old versions
if (-e $target) {
@@ -631,8 +694,19 @@ if (-e $target) {
my $thisdistarget=$target;
$thisdistarget=~s/^$docroot//;
+ my $thissrc=$source;
+ $thissrc=~s/^\/home\/(\w+)\/public_html/\/priv\/$1/;
+
+ my $thissrcdir=$thissrc;
+ $thissrcdir=~s/\/[^\/]+$/\//;
+
+
return $scrout.
- ' View Target';
+ ' Back to Source'.
+ ' Back to Source Directory';
+
}
# ================================================================ Main Handler
@@ -646,7 +720,6 @@ sub handler {
return OK;
}
-unless ($ENV{'form.pubdir'}) {
# -------------------------------------------------------------- Check filename
my $fn=$ENV{'form.filename'};
@@ -770,60 +843,12 @@ unless ($ENV{'form.phase'} eq 'two') {
unless ($ENV{'form.phase'} eq 'two') {
$r->print('
View Target'.
+ '
'.&publish($thisfn,$thistarget,$thisembstyle));
} else {
- $r->print('
'.&phasetwo($thisfn,$thistarget,$thisembstyle));
+ $r->print('
'.&phasetwo($thisfn,$thistarget,$thisembstyle,$thisdistarget));
}
}
$r->print('