--- loncom/publisher/lonpublisher.pm 2003/12/26 21:17:37 1.153
+++ loncom/publisher/lonpublisher.pm 2003/12/28 20:12:59 1.156
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Publication Handler
#
-# $Id: lonpublisher.pm,v 1.153 2003/12/26 21:17:37 www Exp $
+# $Id: lonpublisher.pm,v 1.156 2003/12/28 20:12:59 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -126,6 +126,7 @@ use Apache::loncommon();
use Apache::lonmysql;
use Apache::lonlocal;
use Apache::loncfile;
+use Apache::lonmeta;
use vars qw(%metadatafields %metadatakeys);
my %addid;
@@ -791,11 +792,37 @@ sub store_metadata {
('metadata','url',$metadata{'url'});
} else {
# store new data
+# adjust some values to metadatadatabase (e.g., "usage" is a reserved word)
$metadata{'creationdate'}=
&Apache::lonmysql::sqltime($metadata{'creationdate'});
$metadata{'lastrevisiondate'}=
- &Apache::lonmysql::sqltime($metadata{'lastrevisiondate'});
- $status = &Apache::lonmysql::store_row('metadata',\%metadata);
+ &Apache::lonmysql::sqltime($metadata{'lastrevisiondate'});
+ $metadata{'sequsage'}=$metadata{'usage'};
+ $metadata{'sequsage_list'}=$metadata{'usage_list'};
+ my %newmetadata=();
+# see if we have old entries
+ my @oldmeta=&Apache::lonmysql::get_rows('metadata',
+ "url LIKE BINARY '".
+ $metadata{'url'}."'");
+ if ($#oldmeta==0) {
+# yes, there is one old entry, transfer to newmetadata
+ %newmetadata=&Apache::lonmeta::metadata_col_to_hash(@{$oldmeta[0]});
+# remove old entry
+ $status=&Apache::lonmysql::remove_from_table
+ ('metadata','url',$metadata{'url'});
+ } elsif ($#oldmeta>0) {
+# more than one entry fit - how did that happen?
+ $error='Error occured retrieving old values in '.
+ 'metadata table in LON-CAPA database: '.$#oldmeta.
+ ' matches';
+ &Apache::lonnet::logthis($error);
+ return ($error,undef);
+ }
+# store new data on top of it
+ foreach (keys %metadata) {
+ $newmetadata{$_}=$metadata{$_};
+ }
+ $status = &Apache::lonmysql::store_row('metadata',\%newmetadata);
}
if (! defined($status)) {
$error='Error occured storing new values in '.
@@ -960,9 +987,6 @@ sub publish {
$metadatafields{'author'}=~s/\s+/ /g;
$metadatafields{'author'}=~s/\s+$//;
$metadatafields{'owner'}=$cuname.'@'.$cudom;
- $metadatafields{'modifyinguser'}=$ENV{'user.name'}.'@'.
- $ENV{'user.domain'};
- $metadatafields{'authorspace'}=$cuname.'@'.$cudom;
# ------------------------------------------------ Check out directory hierachy
@@ -1345,6 +1369,9 @@ sub phasetwo {
$metadatafields{'obsoletereplacement'}=
$ENV{'form.obsoletereplacement'};
$metadatafields{'dependencies'}=$ENV{'form.dependencies'};
+ $metadatafields{'modifyinguser'}=$ENV{'user.name'}.'@'.
+ $ENV{'user.domain'};
+ $metadatafields{'authorspace'}=$cuname.'@'.$cudom;
my $allkeywords=$ENV{'form.addkey'};
if (exists($ENV{'form.keywords'})) {
@@ -1622,8 +1649,8 @@ sub publishdirectory {
my $resdir=
$Apache::lonnet::perlvar{'lonDocRoot'}.'/res/'.$cudom.'/'.$cuname.'/'.
$thisdisfn;
- $r->print('Directory '.$thisdisfn.'
'.
- 'Target: '.$resdir.'
');
+ $r->print(''.&mt('Directory').' '.$thisdisfn.'
'.
+ &mt('Target').': '.$resdir.'
');
my $dirptr=16384; # Mask indicating a directory in stat.cmode.
@@ -1661,7 +1688,7 @@ sub publishdirectory {
if ($publishthis) {
&batchpublish($r,$fn.'/'.$filename,$resdir.'/'.$filename);
} else {
- $r->print('
Skipping '.$filename.'
');
+ $r->print('
'.&mt('Skipping').' '.$filename.'
');
}
$r->rflush();
}