version 1.27, 2005/07/20 05:13:46
|
version 1.28, 2005/10/12 22:54:20
|
Line 1827 sub parse_bb5_assessment {
|
Line 1827 sub parse_bb5_assessment {
|
} |
} |
|
|
sub parse_bb6_assessment { |
sub parse_bb6_assessment { |
my ($res,$docroot,$container,$settings,$allanswers,$allchoices,$allids) = @_; |
my ($res,$docroot,$container,$settings,$allanswers,$allchoices,$allids) = @_; |
return; |
my $xmlfile = $docroot.'/'.$res.".dat"; |
|
my @state = (); |
|
my $id; # the current question ID |
|
my $list; # the current list ID for multiple choice questions |
|
my $currtexttype; |
|
my $curr_outer_block; |
|
my $curr_inner_block; |
|
my $curr_shuffle; |
|
my $curr_class; |
|
my $curr_feedback_type; |
|
my $p = HTML::Parser->new |
|
( |
|
xml_mode => 1, |
|
start_h => |
|
[sub { |
|
my ($tagname, $attr) = @_; |
|
push @state, $tagname; |
|
if ("@state" eq "questestinterop assessment") { |
|
$$settings{title} = $attr->{title}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow") { |
|
$curr_outer_block = $attr->{class}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow") { |
|
$curr_inner_block = $attr->{class}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow material mat_extension mat_formatted_text") { |
|
$$settings{$id}{texttype} = $attr->{texttype}; |
|
$currtexttype = $attr->{texttype}; |
|
$curr_inner_block = $attr->{class}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow material matapplication") { |
|
$$settings{$id}{image} = $attr->{uri}; |
|
$$settings{$id}{style} = $attr->{embedded}; |
|
$$settings{$id}{label} = $attr->{label}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow material mattext") { |
|
$$settings{$id}{link} = $attr->{uri}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow response_lid render_choice") { |
|
$curr_shuffle = $attr->{shuffle}; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow response_lid render_choice flow response_label") { |
|
if ($$settings{$id}{class} eq 'Multiple Choice') { |
|
$curr_class = 'Multiple Choice'; |
|
$list = $attr->{ident}; |
|
push(@{$$settings{$id}{lists}},$list); |
|
$$settings{$id}{$list}{randomize} = $curr_shuffle; |
|
%{$$settings{$id}{$list}} = (); |
|
@{$$allanswers{$id}{$list}} = (); |
|
@{$$settings{$id}{$list}{correctanswer}} = (); |
|
} |
|
} |
|
if ("@state" eq "questestinterop section item itemfeedback") { |
|
$curr_feedback_type = $attr->{ident}; |
|
} |
|
if ("@state" eq "questestinterop section item itemfeedback flow_mat flow_mat material matapplication") { |
|
$$settings{$id}{$curr_feedback_type.'feedback'}{filetype} = $attr->{'embedded'}; |
|
$$settings{$id}{$curr_feedback_type.'feedback'}{label} = $attr->{label}; |
|
$$settings{$id}{$curr_feedback_type.'feedback'}{uri} = $attr->{uri}; |
|
} |
|
if ("@state" eq "questestinterop section item itemfeedback flow_mat flow_mat material mattext") { |
|
$$settings{$id}{$curr_feedback_type.'feedback'}{link} = $attr->{uri}; |
|
} |
|
}, "tagname, attr"], |
|
text_h => |
|
[sub { |
|
my ($text) = @_; |
|
$text =~ s/^\s+//g; |
|
$text =~ s/\s+$//g; |
|
if ("@state" eq "questestinterop assessment rubric flow_mat material mat_extension mat_formattedtext") { |
|
$$settings{description} = $text; |
|
} elsif ("@state" eq "questestinterop assessment presentation_material flow_mat material mat_extension mat_formattedtext") { |
|
$$settings{instructions}{text} = $text; |
|
} |
|
if ("@state" eq "questestinterop assessment section item itemmetadata bbmd_asi_object_id") { |
|
$id = $text; |
|
push @{$allids}, $id; |
|
%{$$settings{$id}} = (); |
|
@{$$settings{$id}{lists}} = (); |
|
%{$$settings{$id}{correctfeedback}} = (); |
|
%{$$settings{$id}{incorrectfeedback}} = (); |
|
} |
|
if ("@state" eq "questestinterop assessment section item itemmetadata bbmd_questiontype") { |
|
$$settings{$id}{class} = $text; |
|
} |
|
if ("@state" eq "questestinterop assessment section item presentation flow flow flow material mat_extension mat_formatted_text") { |
|
$$settings{$id}{text} = $text; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow material mattext") { |
|
$$settings{$id}{linktext} = $text; |
|
} |
|
if ("@state" eq "questestinterop section item presentation flow flow flow response_lid render_choice flow response_label flow_mat material mat_extension mat_formatted_text") { |
|
$$settings{$id}{$list}{text} = $text; |
|
} |
|
if ("@state" eq "questestinterop section item resprocessing respcondition conditionvar varequal") { |
|
if ($curr_class eq 'Multiple Choice') { |
|
$$settings{$id}{$list}{correctanswer} = $text; |
|
} |
|
} |
|
if ("@state" eq "questestinterop section item itemfeedback flow_mat flow_mat material mat_extension mat_formattedtext") { |
|
$$settings{$id}{$curr_feedback_type.'feedback'}{text} = $text; |
|
} |
|
if ("@state" eq "questestinterop section item itemfeedback flow_mat flow_mat material mattext") { |
|
$$settings{$id}{$curr_feedback_type.'feedback'}{linkname} = $text; |
|
} |
|
}, "dtext"], |
|
end_h => |
|
[sub { |
|
my ($tagname) = @_; |
|
pop @state; |
|
}, "tagname"], |
|
); |
|
$p->unbroken_text(1); |
|
$p->marked_sections(1); |
|
$p->parse_file($xmlfile); |
|
$p->eof; |
|
return; |
} |
} |
|
|
sub parse_webct4_assessment { |
sub parse_webct4_assessment { |