[LON-CAPA-cvs] cvs: loncom /interface lonmeta.pm
banghart
lon-capa-cvs@mail.lon-capa.org
Sat, 13 Aug 2005 19:32:31 -0000
banghart Sat Aug 13 15:32:31 2005 EDT
Modified files:
/loncom/interface lonmeta.pm
Log:
Saving instructor metadata associated with portfolio files.
sub save_instructor_metadata
still lots to do
Index: loncom/interface/lonmeta.pm
diff -u loncom/interface/lonmeta.pm:1.104 loncom/interface/lonmeta.pm:1.105
--- loncom/interface/lonmeta.pm:1.104 Mon Aug 8 20:24:55 2005
+++ loncom/interface/lonmeta.pm Sat Aug 13 15:32:28 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.104 2005/08/09 00:24:55 banghart Exp $
+# $Id: lonmeta.pm,v 1.105 2005/08/13 19:32:28 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -923,11 +923,61 @@
}
sub save_instructor_metadata {
my ($r) = @_;
- $r->print('This is the save instructor metadata area<br />');
+ my $uri=$r->uri;
+ my $fn=&Apache::lonnet::filelocation('',$uri);
my @words = &Apache::loncommon::get_env_multiple('form.keywords');
+ $r->print('This is the save instructor metadata area<br />');
+ my $mfh;
+ my $formname='store';
+ my $file_content;
+ 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.'>';
+ }
+
foreach my $word (@words) {
$r->print('You entered:'.$word.'<br />');
}
+ my $tag = 'keywords';
+ $file_content.= "\n\<$tag";
+ $file_content.= '>'.
+ &HTML::Entities::encode
+ (join(', ',@words),
+ '<>&"').
+ '</keywords>';
+ $fn =~ /\/portfolio\/(.*)$/;
+ my $new_fn = '/'.$1;
+ $env{'form.'.$formname}=$file_content;
+ $env{'form.'.$formname.'.filename'}=$new_fn;
+ &Apache::lonnet::userfileupload('uploaddoc','',
+ 'portfolio'.$env{'form.currentpath'});
+ my $status =&Apache::lonnet::userfileupload($formname,'','portfolio');
+ if (&Apache::lonnet::userfileupload($formname,'','portfolio') eq 'error: no uploaded file') {
+ $r->print('<p><font color="red">'.
+ &mt('Could not write metadata').', '.
+ &mt('FAIL').'</font></p>');
+ } else {
+ $r->print('<p><font color="blue">'.&mt('Wrote Metadata').
+ ' '.&Apache::lonlocal::locallocaltime(time).
+ '</font></p>');
+ }
return 'ok';
}
sub present_instructor_metadata {