--- loncom/publisher/lonpublisher.pm 2001/04/16 20:02:50 1.24 +++ loncom/publisher/lonpublisher.pm 2001/05/03 11:18:28 1.26 @@ -9,6 +9,7 @@ # 03/23 Guy Albertelli # 03/24,03/29,04/03 Gerd Kortemeyer # 04/16/2001 Scott Harrison +# 05/03 Gerd Kortemeyer package Apache::lonpublisher; @@ -86,6 +87,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 { @@ -485,6 +494,18 @@ sub phasetwo { } # -------------------------------- 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=) { + if ($configline =~ /PerlSetVar/) { + my ($dummy,$varname,$varvalue)=split(/\s+/,$configline); + chomp($varvalue); + $perlvar{$varname}=$varvalue; + } + } + close(CONFIG); + my $dbh; { unless ( @@ -496,7 +517,7 @@ sub phasetwo { my %sqldatafields; $sqldatafields{'url'}=$distarget; - $sth=$dbh->prepare("delete from metadata where url like binary \"". + my $sth=$dbh->prepare("delete from metadata where url like binary \"". $sqldatafields{'url'}."\""); $sth->execute(); map {my $field=$metadatafields{$_}; $field=~s/\"/\'\'/g; @@ -515,8 +536,8 @@ sub phasetwo { '"'.delete($sqldatafields{'abstract'}).'"'.','. '"'.delete($sqldatafields{'mime'}).'"'.','. '"'.delete($sqldatafields{'language'}).'"'.','. - '"'.delete($sqldatafields{'creationdate'}).'"'.','. - '"'.delete($sqldatafields{'lastrevisiondate'}).'"'.','. + '"'.sqltime(delete($sqldatafields{'creationdate'})).'"'.','. + '"'.sqltime(delete($sqldatafields{'lastrevisiondate'})).'"'.','. '"'.delete($sqldatafields{'owner'}).'"'.','. '"'.delete($sqldatafields{'copyright'}).'"'.')'); $sth->execute(); @@ -817,6 +838,11 @@ unless ($ENV{'form.phase'} eq 'two') { $r->print('

Publishing '. &Apache::lonnet::filedescription($thistype).' '. $thisdisfn.'

Target: '.$thisdistarget.'

'); + + if (&Apache::lonnet::fileembstyle($thistype) eq 'ssi') { + $r->print('
Diffs with Current Version

'); + } # ------------ We are publishing from $thisfn to $thistarget with $thisembstyle