[LON-CAPA-cvs] cvs: loncom /interface lonmeta.pm
banghart
lon-capa-cvs@mail.lon-capa.org
Sat, 27 Aug 2005 23:25:20 -0000
banghart Sat Aug 27 19:25:20 2005 EDT
Modified files:
/loncom/interface lonmeta.pm
Log:
Changing student interface to read recently modified instructor metadata
fields, and allow entry. Not done, does not work yet. (in store
portion of present_editable_metadata)
Index: loncom/interface/lonmeta.pm
diff -u loncom/interface/lonmeta.pm:1.107 loncom/interface/lonmeta.pm:1.108
--- loncom/interface/lonmeta.pm:1.107 Thu Aug 25 16:46:32 2005
+++ loncom/interface/lonmeta.pm Sat Aug 27 19:25:18 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.107 2005/08/25 20:46:32 banghart Exp $
+# $Id: lonmeta.pm,v 1.108 2005/08/27 23:25:18 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1021,20 +1021,32 @@
$Apache::lonpublisher::metadatafields{$_},
'new_'.$_,'defaultmeta').'</p>');
if ($env{'form.metacourse'}) {
-
- $r->print('This is the instructor metadata area<br />');
- my @keywords = sort(split /, /,$env{$env{'form.metacourse'}.'.metadata.keywords'});
- $r->print($env{'form.metacourse'}.'<br />');
- $r->print('<form method="post" action="" size="3" >');
- foreach my $word (@keywords) {
- my $checked;
- if ($Apache::lonpublisher::metadatafields{'coursekeyword'}=~ m/$word/) {
- $checked = 1;
- } else {
- undef($checked);
+ $r->print('This is the instructor metadata area<br />');
+ # have to find all the metadata items, so we'll loop through and find them
+ $r->print('<form method="post" action="" size="3" >');
+ $r->print('The course is: '.$env{'form.metacourse'}.'<br>');
+ foreach my $key (sort keys %env) {
+ if ($key=~m/^($env{'form.metacourse'}\.metadata\.)(\d+)\.title/) {
+ my $key_base = $1;
+ my $item_num = $2;
+ # found one, so let's display it
+ my $title = $env{$key_base.$item_num.'.title'};
+ my $type = $env{$key_base.$item_num.'.type'};
+ my @choices = sort(split /, /,$env{$key_base.$item_num.'.values'});
+ $r->print($title.'<br />');
+ $r->print($type.'<br />');
+
+ foreach my $word (@choices) {
+ my $checked;
+ if ($Apache::lonpublisher::metadatafields{'coursekeyword'}=~ m/$word/) {
+ $checked = 1;
+ } else {
+ undef($checked);
+ }
+ $r->print(&Apache::lonhtmlcommon::checkbox('instmeta_'.$env{'form.metacourse'}.'_'.$item_num,$checked,$word).$word.'<br />');
+ }
}
- $r->print(&Apache::lonhtmlcommon::checkbox('keywords',$checked,$word).$word.'<br />');
- }
+ }
$r->print('<br /><input type="submit" name="store" value="Assign Meta-data" />');
$r->print('</form>');
return 'ok';
@@ -1044,9 +1056,14 @@
my $mfh;
my $formname='store';
my $file_content;
- if (&Apache::loncommon::get_env_multiple('form.keywords')) {
- $Apache::lonpublisher::metadatafields{'coursekeyword'} =
+ foreach my $meta_field (keys %env) {
+ if ($meta_field=~m/^form.instmeta_(.+)_(\d+)$/) {
+ $r->print('Found a field<br>');
+ }
+ if (&Apache::loncommon::get_env_multiple('form.keywords')) {
+ $Apache::lonpublisher::metadatafields{'coursekeyword'} =
join (', ', &Apache::loncommon::get_env_multiple('form.keywords'));
+ }
}
foreach (sort keys %Apache::lonpublisher::metadatafields) {
next if ($_ =~ /\./);