--- loncom/interface/lonmeta.pm 2005/12/19 20:08:40 1.142
+++ loncom/interface/lonmeta.pm 2005/12/19 21:13:45 1.143
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.142 2005/12/19 20:08:40 albertel Exp $
+# $Id: lonmeta.pm,v 1.143 2005/12/19 21:13:45 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1142,7 +1142,7 @@ ENDEDIT
} else {
$r->print("This resource is not associated with a course.
");
}
- foreach my $field_name(@fields) {
+ foreach my $field_name (@fields) {
if (defined($env{'form.new_'.$field_name})) {
$Apache::lonpublisher::metadatafields{$field_name}=
@@ -1152,12 +1152,12 @@ ENDEDIT
# handle restrictions here
if (($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/active/) ||
($field_name eq 'courserestricted')){
- $output.=('
'.$lt{$field_name}.': '. + $output.=("\n".'
'.$lt{$field_name}.': '. &prettyinput($field_name, $Apache::lonpublisher::metadatafields{$field_name}, 'new_'.$field_name,'defaultmeta', undef,undef,undef,undef, - $Apache::lonpublisher::metadatafields{'courserestricted'}).'
'); + $Apache::lonpublisher::metadatafields{'courserestricted'}).''."\n"); } } else { @@ -1168,75 +1168,74 @@ ENDEDIT } } - - $r->print($output.''. - &mt('Could not write metadata').', '. - &mt('FAIL').'
'); - } else { - $r->print(''.&mt('Wrote Metadata'). - ' '.&Apache::lonlocal::locallocaltime(time). - '
'); + + foreach (sort keys %Apache::lonpublisher::metadatafields) { + next if ($_ =~ /\./); + my $unikey=$_; + $unikey=~/^([A-Za-z]+)/; + my $tag=$1; + $tag=~tr/A-Z/a-z/; + $file_content.= "\n\<$tag"; + foreach (split(/\,/, + $Apache::lonpublisher::metadatakeys{$unikey}) + ) { + my $value= + $Apache::lonpublisher::metadatafields{$unikey.'.'.$_}; + $value=~s/\"/\'\'/g; + $file_content.=' '.$_.'="'.$value.'"' ; + # print $mfh ' '.$_.'="'.$value.'"'; + } + $file_content.= '>'. + &HTML::Entities::encode + ($Apache::lonpublisher::metadatafields{$unikey}, + '<>&"'). + ''.$tag.'>'; } - } else { - if (! ($mfh=Apache::File->new('>'.$fn))) { - $r->print(''. - &mt('Could not write metadata').', '. - &mt('FAIL').'
'); + &Apache::lonnet::logthis(" file ".$file_content); + if ($fn =~ m|/portfolio/|) { + my ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|); + $env{'form.'.$formname}=$file_content."\n"; + $env{'form.'.$formname.'.filename'}=$new_fn; + my $result =&Apache::lonnet::userfileupload($formname,'', + $path); + + if ($result =~ /(error|notfound)/) { + $r->print(''. + &mt('Could not write metadata').', '. + &mt('FAIL').'
'); + } else { + $r->print(''.&mt('Wrote Metadata'). + ' '.&Apache::lonlocal::locallocaltime(time). + '
'); + } } else { - print $mfh $file_content; - $r->print(''.&mt('Wrote Metadata'). - ' '.&Apache::lonlocal::locallocaltime(time). - '
'); + if (! ($mfh=Apache::File->new('>'.$fn))) { + $r->print(''. + &mt('Could not write metadata').', '. + &mt('FAIL').'
'); + } else { + print $mfh $file_content; + $r->print(''.&mt('Wrote Metadata'). + ' '.&Apache::lonlocal::locallocaltime(time). + '
'); + } } } + + $r->print($output.'