--- loncom/homework/default_homework.lcpm 2010/10/18 19:47:31 1.150 +++ loncom/homework/default_homework.lcpm 2011/05/21 14:50:36 1.154 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # used by lonxml::xmlparse() as input variable $safeinit to Apache::run::run() # -# $Id: default_homework.lcpm,v 1.150 2010/10/18 19:47:31 raeburn Exp $ +# $Id: default_homework.lcpm,v 1.154 2011/05/21 14:50:36 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -359,11 +359,17 @@ sub caparesponse_check_list { my $allow_control_char = 0; my $control_chars_removed = 0; + my $ansstring; if ($type eq 'cs' || $type eq 'ci') { if (ref($LONCAPA::CAPAresponse_answer->{'answers'}) eq 'ARRAY') { foreach my $strans (@{$LONCAPA::CAPAresponse_answer->{'answers'}}) { - if ($strans =~ /[\000-\037]/) { - $allow_control_char = 1; + if (ref($strans) eq 'ARRAY') { + $ansstring = join("\0",@{$strans}); + foreach my $item (@{$strans}) { + if ($item =~ /[\000-\037]/) { + $allow_control_char = 1; + } + } } } } @@ -476,7 +482,7 @@ sub caparesponse_check_list { &LONCAPA_INTERNAL_DEBUG(" all final_awards ".join(':',@final_awards)); my ($final_award,$final_msg) = &LONCAPA_INTERNAL_FINALIZEAWARDS(\@final_awards,\@final_msg,undef,1); - return ($final_award,$final_msg,$error,$control_chars_removed); + return ($final_award,$final_msg,$error,$control_chars_removed,$ansstring); } sub verify_stringresponse { @@ -1119,11 +1125,24 @@ sub class { return $course; } +sub classid { + my $courseid = &EXT('request.course.id'); + $courseid = '' if $courseid eq ""; + return $courseid; +} + sub firstname { my $firstname = &EXT('environment.firstname'); $firstname = '' if $firstname eq ""; return $firstname; } + +sub middlename { + my $middlename = &EXT('environment.middlename'); + $middlename = '' if $middlename eq ""; + return $middlename; +} + sub lastname { my $lastname = &EXT('environment.lastname'); @@ -1190,6 +1209,18 @@ sub answer_date_epoch { return &EXT('resource.'.$partid.'.answerdate'); } +sub parameter_setting { + my ($which,$partid)=@_; + unless ($partid) { $partid=0; } + return &EXT('resource.'.$partid.'.'.$which); +} + +sub stored_data { + my ($which,$partid)=@_; + unless ($partid) { $partid=0; } + return &EXT('user.resource.resource.'.$partid.'.'.$which); +} + sub array_moments { my @input=@_; my (@output,$N);