version 1.37, 2006/04/05 17:33:51
|
version 1.41, 2007/09/30 13:20:08
|
Line 2178 sub parse_webctvista4_assessment {
|
Line 2178 sub parse_webctvista4_assessment {
|
my ($tagname, $attr) = @_; |
my ($tagname, $attr) = @_; |
push @state, $tagname; |
push @state, $tagname; |
my @seq = (); |
my @seq = (); |
|
if ("@state" eq "questestinterop assessment") { |
|
$$qzparams{$res}{id} = $attr->{'ident'}; |
|
$$qzparams{$res}{title} = $attr->{'title'}; |
|
} |
if ("@state" eq "questestinterop assessment section itemref") { |
if ("@state" eq "questestinterop assessment section itemref") { |
$id = $attr->{linkrefid}; |
$id = $attr->{linkrefid}; |
push(@{$allids},$id); |
push(@{$allids},$id); |
Line 2186 sub parse_webctvista4_assessment {
|
Line 2190 sub parse_webctvista4_assessment {
|
if ("@state" eq "questestinterop assessment section selection_ordering order") { |
if ("@state" eq "questestinterop assessment section selection_ordering order") { |
$$qzparams{$res}{order_type} = $attr->{order_type}; |
$$qzparams{$res}{order_type} = $attr->{order_type}; |
} |
} |
|
|
}, "tagname, attr"], |
}, "tagname, attr"], |
text_h => |
text_h => |
[sub { |
[sub { |
Line 2366 sub parse_webctvista4_question {
|
Line 2369 sub parse_webctvista4_question {
|
if ("@state" eq "questestinterop item presentation flow response_lid render_choice") { |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice") { |
$$settings{$id}{$list}{randomize} = $attr->{shuffle}; |
$$settings{$id}{$list}{randomize} = $attr->{shuffle}; |
} |
} |
|
# Multiple Choice, True/False and Combination |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice flow_label response_label") { |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice flow_label response_label") { |
$answer_id = $attr->{ident}; |
$answer_id = $attr->{ident}; |
push(@{$$allanswers{$id}{$list}},$answer_id); |
push(@{$$allanswers{$id}{$list}},$answer_id); |
Line 2413 sub parse_webctvista4_question {
|
Line 2417 sub parse_webctvista4_question {
|
%{$$settings{$id}{$str_id}{$label}} = (); |
%{$$settings{$id}{$str_id}{$label}} = (); |
$$settings{$id}{$str_id}{$label}{fibtype} = $fibtype; |
$$settings{$id}{$str_id}{$label}{fibtype} = $fibtype; |
if ($$settings{$id}{class} eq 'string') { |
if ($$settings{$id}{class} eq 'string') { |
$$settings{$id}{text} .= '[blank]'; |
$$settings{$id}{text} .= '________'; |
} |
} |
} |
} |
if ("@state" eq "questestinterop item presentation flow response_str render_fib response_label material mattext") { # Paragraph |
if ("@state" eq "questestinterop item presentation flow response_str render_fib response_label material mattext") { # Paragraph |
Line 2424 sub parse_webctvista4_question {
|
Line 2428 sub parse_webctvista4_question {
|
$grp = $attr->{ident}; |
$grp = $attr->{ident}; |
push(@{$$settings{$id}{grps}},$grp); |
push(@{$$settings{$id}{grps}},$grp); |
%{$$settings{$id}{$grp}} = (); |
%{$$settings{$id}{$grp}} = (); |
|
@{$$allanswers{$id}{$grp}} = (); |
@{$$settings{$id}{$grp}{correctanswer}} = (); |
@{$$settings{$id}{$grp}{correctanswer}} = (); |
$$settings{$id}{$grp}{rcardinality} = $attr->{rcardinality}; |
$$settings{$id}{$grp}{rcardinality} = $attr->{rcardinality}; |
} |
} |
Line 2431 sub parse_webctvista4_question {
|
Line 2436 sub parse_webctvista4_question {
|
$currtexttype = lc($attr->{texttype}); |
$currtexttype = lc($attr->{texttype}); |
$$settings{$id}{$grp}{texttype} = $currtexttype; |
$$settings{$id}{$grp}{texttype} = $currtexttype; |
} |
} |
if ("@state" eq "questestinterop item presentation flow flow response_grp render_choice response_label") { |
if ("@state" eq "questestinterop item presentation flow flow response_grp render_choice flow_label response_label") { |
$answer_id = $attr->{ident}; |
$answer_id = $attr->{ident}; |
push(@{$$allanswers{$id}{$grp}},$answer_id); |
push(@{$$allanswers{$id}{$grp}},$answer_id); |
%{$$settings{$id}{$grp}{$answer_id}} = (); |
%{$$settings{$id}{$grp}{$answer_id}} = (); |
Line 2446 sub parse_webctvista4_question {
|
Line 2451 sub parse_webctvista4_question {
|
} elsif (($$settings{$id}{class} eq 'string') || |
} elsif (($$settings{$id}{class} eq 'string') || |
($$settings{$id}{class} eq 'shortanswer')) { |
($$settings{$id}{class} eq 'shortanswer')) { |
$label = $attr->{respident}; |
$label = $attr->{respident}; |
|
$$settings{$id}{$label}{case} = $attr->{'case'}; |
} elsif ($$settings{$id}{class} eq 'match') { |
} elsif ($$settings{$id}{class} eq 'match') { |
$grp = $attr->{respident}; |
$grp = $attr->{respident}; |
} |
} |
Line 2545 sub parse_webctvista4_question {
|
Line 2551 sub parse_webctvista4_question {
|
$$settings{$id}{$str_id}{$label}{$textlabel} = $text; |
$$settings{$id}{$str_id}{$label}{$textlabel} = $text; |
} |
} |
} |
} |
|
# Matching |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice flow_label response_label material mattext") { |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice flow_label response_label material mattext") { |
$$settings{$id}{$list}{$answer_id}{text} .= $text; |
$$settings{$id}{$list}{$answer_id}{text} .= $text; |
} |
} |
|
# Multiple choice, True/False, Combination |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice flow_label response_label material mat_extension webct:localizable_mattext") { |
if ("@state" eq "questestinterop item presentation flow response_lid render_choice flow_label response_label material mat_extension webct:localizable_mattext") { |
$$settings{$id}{$list}{$answer_id}{text} = $text; |
$$settings{$id}{$list}{$answer_id}{text} = $text; |
} |
} |
Line 2571 sub parse_webctvista4_question {
|
Line 2579 sub parse_webctvista4_question {
|
} |
} |
} |
} |
} |
} |
|
# Matching |
|
if ("@state" eq "questestinterop item presentation flow flow response_grp material mattext") { |
|
$$settings{$id}{$grp}{text} = $text; |
|
unless ($text eq '') { |
|
push(@{$$allchoices{$id}},$grp); |
|
} |
|
} |
|
if ("@state" eq "questestinterop item presentation flow flow response_grp render_choice flow_label response_label material mattext") { |
|
$$settings{$id}{$grp}{$answer_id}{text} = $text; |
|
} |
|
# Numerical |
if ("@state" eq "questestinterop item resprocessing itemproc_extension unit_eval conditionvar varequal") { |
if ("@state" eq "questestinterop item resprocessing itemproc_extension unit_eval conditionvar varequal") { |
$$settings{$id}{$numid}{$unitid}{text} = $text; |
$$settings{$id}{$numid}{$unitid}{text} = $text; |
} |
} |
Line 2815 sub parse_webct4_questionDB {
|
Line 2834 sub parse_webct4_questionDB {
|
$$settings{$id}{texttype} = $attr->{texttype}; |
$$settings{$id}{texttype} = $attr->{texttype}; |
$currtexttype = $attr->{texttype}; |
$currtexttype = $attr->{texttype}; |
} |
} |
|
if ("@state" eq "questestinterop section item presentation flow material matimage") { |
|
$$settings{$id}{imagtype} = $attr->{imagtype}; |
|
$currimagtype = $attr->{imagtype}; |
|
$$settings{$id}{uri} = $attr->{uri}; |
|
|
|
} |
if ("@state" eq "questestinterop section item presentation flow response_lid") { |
if ("@state" eq "questestinterop section item presentation flow response_lid") { |
$$settings{$id}{class} = 'multiplechoice'; |
$$settings{$id}{class} = 'multiplechoice'; |
$list = $attr->{ident}; |
$list = $attr->{ident}; |
Line 3034 sub parse_webct4_questionDB {
|
Line 3059 sub parse_webct4_questionDB {
|
} |
} |
} |
} |
if ("@state" eq "questestinterop section item resprocessing respcondition setvar") { |
if ("@state" eq "questestinterop section item resprocessing respcondition setvar") { |
if ($setvar{varname} eq "answerValue") { # Multiple Choice |
if ($setvar{varname} eq "answerValue") { # Multiple Choice WebCT4.0 |
if ($text =~ m/^\d+$/) { |
if ($text =~ m/^\d+$/) { |
if ($text > 0) { |
if ($text > 0) { |
push(@{$$settings{$id}{$list}{correctanswer}},$answer_id); |
push(@{$$settings{$id}{$list}{correctanswer}},$answer_id); |
} |
} |
} |
} |
|
} elsif ($setvar{varname} eq "que_score") { # Multiple Choice WebCT4.1 |
|
if ($text =~ m/^\d+$/) { |
|
if ($text > 0) { |
|
push(@{$$settings{$id}{$list}{correctanswer}},$answer_id); |
|
} |
|
} |
} |
} |
} |
} |
if ("@state" eq "questestinterop section item resprocessing itemproc_extension webct:x_webct_v01_autocalculate webct:x_webct_v01_anstolerance") { |
if ("@state" eq "questestinterop section item resprocessing itemproc_extension webct:x_webct_v01_autocalculate webct:x_webct_v01_anstolerance") { |
Line 3125 sub process_assessment {
|
Line 3156 sub process_assessment {
|
unless($$dbparse) { |
unless($$dbparse) { |
foreach my $res (sort keys %{$allquestions}) { |
foreach my $res (sort keys %{$allquestions}) { |
my $parent = $$allquestions{$res}; |
my $parent = $$allquestions{$res}; |
&parse_webctvista4_question($res,$docroot,$resources,$hrefs,$settings,\@allquestids,\%allanswers,\%allchoices,$parent,$catinfo); |
&parse_webctvista4_question($res,$docroot,$resources,$hrefs,$qzdbsettings,\@allquestids,\%allanswers,\%allchoices,$parent,$catinfo); |
} |
} |
&build_category_sequences($destdir,$catinfo,$sequencesfiles,$pagesfiles,$destresdir,$newdir,$cms,$total,$randompickflag,$context,$udom,$uname,$dirname,$cid,$cdom,$cnum,$qzdbsettings); |
&build_category_sequences($destdir,$catinfo,$sequencesfiles,$pagesfiles,$destresdir,$newdir,$cms,$total,$randompickflag,$context,$udom,$uname,$dirname,$cid,$cdom,$cnum,$qzdbsettings); |
$$dbparse = 1; |
$$dbparse = 1; |
} |
} |
&parse_webctvista4_assessment($res,$docroot,$hrefs,\@allids,\%qzparams); |
&parse_webctvista4_assessment($res,$docroot,$$resources{$res}{file},\@allids,\%qzparams); |
if ($qzparams{$res}{numpick} < @allids) { |
if ($qzparams{$res}{numpick} < @allids) { |
$$randompicks{$$resources{$res}{revitm}} = $qzparams{$res}{numpick}; |
$$randompicks{$$resources{$res}{revitm}} = $qzparams{$res}{numpick}; |
$randompickflag = 1; |
$randompickflag = 1; |
} |
} |
} |
} |
my $dirtitle; |
my $dirtitle; |
unless ($cms eq 'webctce4') { |
unless ($cms eq 'webctce4' || $cms eq 'webctvista4') { |
$dirtitle = $$settings{'title'}; |
$dirtitle = $$settings{'title'}; |
$dirtitle =~ s/\W//g; |
$dirtitle =~ s/\s+/_/g; |
|
$dirtitle =~ s/:/_/g; |
$dirtitle .= '_'.$res; |
$dirtitle .= '_'.$res; |
if (!-e "$destdir/problems") { |
if (!-e "$destdir/problems") { |
mkdir("$destdir/problems",0755); |
mkdir("$destdir/problems",0755); |
Line 3153 sub process_assessment {
|
Line 3185 sub process_assessment {
|
if ($cms eq 'webctce4') { |
if ($cms eq 'webctce4') { |
&build_problem_container($cms,$dirtitle,$destdir,$container,$res,$total,$sequencesfiles,$pagesfiles,$randompickflag,$context,\@allids,$udom,$uname,$dirname,\$containerdir,$cid,$cdom,$cnum,$catinfo,$qzdbsettings); |
&build_problem_container($cms,$dirtitle,$destdir,$container,$res,$total,$sequencesfiles,$pagesfiles,$randompickflag,$context,\@allids,$udom,$uname,$dirname,\$containerdir,$cid,$cdom,$cnum,$catinfo,$qzdbsettings); |
} else { |
} else { |
&build_problem_container($cms,$dirtitle,$destdir,$container,$res,$total,$sequencesfiles,$pagesfiles,$randompickflag,$context,\@allids,$udom,$uname,$dirname,\$containerdir,$cid,$cdom,$cnum,$catinfo,$settings); |
&build_problem_container($cms,$dirtitle,$destdir,$container,$res,$total,$sequencesfiles,$pagesfiles,$randompickflag,$context,\@allids,$udom,$uname,$dirname,\$containerdir,$cid,$cdom,$cnum,$catinfo,$qzdbsettings,\%qzparams); |
} |
} |
if ($cms eq 'bb5') { |
if ($cms eq 'bb5') { |
&write_bb5_questions(\@allids,$containerdir,$context,$settings,$dirname,$destdir,$res,\%allanswers,\%allchoices,$total,$newdir,$cid,$cdom,$cnum,$docroot); |
&write_bb5_questions(\@allids,$containerdir,$context,$settings,$dirname,$destdir,$res,\%allanswers,\%allchoices,$total,$newdir,$cid,$cdom,$cnum,$docroot); |
} elsif ($cms eq 'bb6') { |
} elsif ($cms eq 'bb6') { |
&write_bb6_questions(\@allids,$containerdir,$context,$settings,$dirname,$destdir,$res,$total,$newdir,$cid,$cdom,$cnum,$docroot); |
&write_bb6_questions(\@allids,$containerdir,$context,$settings,$dirname,$destdir,$res,$total,$newdir,$cid,$cdom,$cnum,$docroot); |
} elsif ($cms eq 'webctvista4') { |
} elsif ($cms eq 'webctvista4') { |
&write_webct4_questions($cms,\@allquestids,$context,$settings,$dirname,\%allanswers,\%allchoices,$total,$cid,$cdom,$cnum,$destdir,$catinfo); |
&write_webct4_questions($cms,\@allquestids,$context,$qzdbsettings,$dirname,\%allanswers,\%allchoices,$total,$cid,$cdom,$cnum,$destdir,$catinfo,$dirtitle); |
} |
} |
} |
} |
|
|
Line 3176 sub build_category_sequences {
|
Line 3208 sub build_category_sequences {
|
open($fh,">$destdir/sequences/question_database.sequence"); |
open($fh,">$destdir/sequences/question_database.sequence"); |
push @{$sequencesfiles},'question_database.sequence'; |
push @{$sequencesfiles},'question_database.sequence'; |
foreach my $category (sort keys %{$catinfo}) { |
foreach my $category (sort keys %{$catinfo}) { |
my $seqname = $$catinfo{$category}{title}.'_'.$category; |
my $seqname; |
$seqname =~ s/\s/_/g; |
if ($cms eq 'webctce4') { |
$seqname =~ s/\W//g; |
$seqname = $$catinfo{$category}{title}.'_'.$category; |
|
} else { |
|
$seqname = $$catinfo{$category}{title}; |
|
} |
|
$seqname =~ s/\s+/_/g; |
|
$seqname =~ s/:/_/g; |
push(@{$sequencesfiles},$seqname.'.sequence'); |
push(@{$sequencesfiles},$seqname.'.sequence'); |
my $catsrc = "$destresdir/sequences/$seqname.sequence"; |
my $catsrc = "$destresdir/sequences/$seqname.sequence"; |
if ($curr_id == 0) { |
if ($curr_id == 0) { |
Line 3216 sub build_category_sequences {
|
Line 3253 sub build_category_sequences {
|
} |
} |
|
|
sub build_problem_container { |
sub build_problem_container { |
my ($cms,$dirtitle,$destdir,$container,$res,$total,$sequencesfiles,$pagesfiles,$randompickflag,$context,$allids,$udom,$uname,$dirname,$containerdir,$cid,$cdom,$cnum,$catinfo,$settings) = @_; |
my ($cms,$dirtitle,$destdir,$container,$res,$total,$sequencesfiles,$pagesfiles,$randompickflag,$context,$allids,$udom,$uname,$dirname,$containerdir,$cid,$cdom,$cnum,$catinfo,$settings,$qzparams) = @_; |
my $seqdir = "$destdir/sequences"; |
my $seqdir = "$destdir/sequences"; |
my $pagedir = "$destdir/pages"; |
my $pagedir = "$destdir/pages"; |
my $curr_id = 0; |
my $curr_id = 0; |
my $next_id = 1; |
my $next_id = 1; |
my $fh; |
my $fh; |
|
my $mapname = $res; |
|
if ($cms eq 'webctvista4' && ref($$qzparams{$res}) eq 'HASH') { |
|
if ($$qzparams{$res}{title}) { |
|
$mapname = $$qzparams{$res}{title}; |
|
$mapname =~ s/\s+/_/g; |
|
} |
|
} |
if ($container eq 'pool' || $randompickflag || $container eq 'database') { |
if ($container eq 'pool' || $randompickflag || $container eq 'database') { |
$$containerdir = $seqdir.'/'.$res.'.sequence'; |
$$containerdir = $seqdir.'/'.$mapname.'.sequence'; |
if (!-e "$seqdir") { |
if (!-e "$seqdir") { |
mkdir("$seqdir",0770); |
mkdir("$seqdir",0770); |
} |
} |
open($fh,">$$containerdir"); |
open($fh,">$$containerdir"); |
$$total{seq} ++; |
$$total{seq} ++; |
push @{$sequencesfiles},$res.'.sequence'; |
push @{$sequencesfiles},$mapname.'.sequence'; |
} else { |
} else { |
$$containerdir = $pagedir.'/'.$res.'.page'; |
$$containerdir = $pagedir.'/'.$mapname.'.page'; |
if (!-e "$destdir/pages") { |
if (!-e "$destdir/pages") { |
mkdir("$destdir/pages",0770); |
mkdir("$destdir/pages",0770); |
} |
} |
open($fh,">$$containerdir"); |
open($fh,">$$containerdir"); |
$$total{page} ++; |
$$total{page} ++; |
push @{$pagesfiles},$res.'.page'; |
push @{$pagesfiles},$mapname.'.page'; |
} |
} |
print $fh qq|<map> |
print $fh qq|<map> |
|; |
|; |
Line 3250 sub build_problem_container {
|
Line 3294 sub build_problem_container {
|
} else { |
} else { |
$probtitle{$id} = $$settings{title}; |
$probtitle{$id} = $$settings{title}; |
} |
} |
$probtitle{$id} =~ s/\s/_/g; |
$probtitle{$id} =~ s/\s+/_/g; |
$probtitle{$id} =~ s/\W//g; |
$probtitle{$id} =~ s/:/_/g; |
$probtitle{$id} .= '_'.$id; |
$probtitle{$id} .= '_'.$id; |
} |
} |
if ($cms eq 'webctce4' && $container ne 'database') { |
if (($cms eq 'webctce4' && $container ne 'database') || |
|
($cms eq 'webctvista4')) { |
|
my $probdir; |
my $catid = $$settings{$$allids[0]}{category}; |
my $catid = $$settings{$$allids[0]}{category}; |
my $probdir = $$catinfo{$catid}{title}.'_'.$catid; |
if ($catid) { |
$probdir =~ s/\s/_/g; |
if ($cms eq 'webctce4') { |
$probdir =~ s/\W//g; |
$probdir = $$catinfo{$catid}{title}.'_'.$catid; |
$probsrc = "$dirname/problems/$probdir/$probtitle{$$allids[0]}.problem"; |
} else { |
|
$probdir = $$catinfo{$catid}{title}; |
|
} |
|
$probdir =~ s/\s+/_/g; |
|
$probdir =~ s/:/_/g; |
|
$probsrc = "$dirname/problems/$probdir/$probtitle{$$allids[0]}.problem"; |
|
} else { |
|
$probsrc="$dirname/problems/$dirtitle/$probtitle{$$allids[0]}.problem"; |
|
} |
} else { |
} else { |
$probsrc="$dirname/problems/$dirtitle/$probtitle{$$allids[0]}.problem"; |
$probsrc="$dirname/problems/$dirtitle/$probtitle{$$allids[0]}.problem"; |
} |
} |
Line 3278 sub build_problem_container {
|
Line 3332 sub build_problem_container {
|
$curr_id = $j; |
$curr_id = $j; |
$next_id = $curr_id + 1; |
$next_id = $curr_id + 1; |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
if ($cms eq 'webctce4' && $container ne 'database') { |
if (($cms eq 'webctce4' && $container ne 'database') || |
|
($cms eq 'webctvista4')) { |
|
my $probdir; |
my $catid = $$settings{$$allids[$j]}{category}; |
my $catid = $$settings{$$allids[$j]}{category}; |
my $probdir = $$catinfo{$catid}{title}.'_'.$catid; |
if ($catid) { |
$probdir =~ s/\s/_/g; |
if ($cms eq 'webctce4') { |
$probdir =~ s/\W//g; |
$probdir = $$catinfo{$catid}{title}.'_'.$catid; |
$probsrc = "$dirname/problems/$probdir/$probtitle{$$allids[$j]}.problem"; |
} else { |
|
$probdir = $$catinfo{$catid}{title}; |
|
} |
|
$probdir =~ s/\s/_/g; |
|
$probdir =~ s/:/_/g; |
|
$probsrc = "$dirname/problems/$probdir/$probtitle{$$allids[$j]}.problem"; |
|
} else { |
|
$probsrc = "$dirname/problems/$dirtitle/$probtitle{$$allids[$j]}.problem"; |
|
} |
} else { |
} else { |
$probsrc = "$dirname/problems/$dirtitle/$probtitle{$$allids[$j]}.problem"; |
$probsrc = "$dirname/problems/$dirtitle/$probtitle{$$allids[$j]}.problem"; |
} |
} |
Line 3669 sub write_bb5_questions {
|
Line 3733 sub write_bb5_questions {
|
$title =~ s/\s/_/g; |
$title =~ s/\s/_/g; |
$title =~ s/\W//g; |
$title =~ s/\W//g; |
$title .= '_'.$id; |
$title .= '_'.$id; |
open(PROB,">:utf8", "$newdir/$title.problem"); |
open(PROB,">$newdir/$title.problem"); |
print PROB $output; |
print PROB $output; |
close PROB; |
close PROB; |
} else { |
} else { |
Line 3681 sub write_bb5_questions {
|
Line 3745 sub write_bb5_questions {
|
} |
} |
|
|
sub write_webct4_questions { |
sub write_webct4_questions { |
my ($cms,$alldbquestids,$context,$settings,$dirname,$allanswers,$allchoices,$total,$cid,$cdom,$cnum,$destdir,$catinfo) = @_; |
my ($cms,$alldbquestids,$context,$settings,$dirname,$allanswers,$allchoices,$total,$cid,$cdom,$cnum,$destdir,$catinfo,$dirtitle) = @_; |
my $qnum = 0; |
my $qnum = 0; |
foreach my $id (@{$alldbquestids}) { |
foreach my $id (@{$alldbquestids}) { |
$qnum ++; |
$qnum ++; |
Line 3704 sub write_webct4_questions {
|
Line 3768 sub write_webct4_questions {
|
if ($$settings{$id}{class} eq 'numerical') { |
if ($$settings{$id}{class} eq 'numerical') { |
foreach my $numid (@{$$settings{$id}{numids}}) { |
foreach my $numid (@{$$settings{$id}{numids}}) { |
foreach my $var (keys %{$$settings{$id}{$numid}{vars}}) { |
foreach my $var (keys %{$$settings{$id}{$numid}{vars}}) { |
if ($cms eq 'webct4ce') { |
if ($cms eq 'webctce4') { |
$$settings{$id}{text} =~ s/{($var)}/\$$1 /g; |
$$settings{$id}{text} =~ s/{($var)}/\$$1 /g; |
} elsif ($cms eq 'webctvista4') { |
} elsif ($cms eq 'webctvista4') { |
$$settings{$id}{text} =~ s/\[($var)\]/\$$1 /g; |
$$settings{$id}{text} =~ s/\[($var)\]/\$$1 /g; |
Line 3730 sub write_webct4_questions {
|
Line 3794 sub write_webct4_questions {
|
} |
} |
} |
} |
$$total{prob} ++; |
$$total{prob} ++; |
|
|
if (exists($$settings{$id}{uri})) { |
if (exists($$settings{$id}{uri})) { |
if ($cms eq 'webct4ce') { |
if ($cms eq 'webctce4') { |
if ($$settings{$id}{imagtype} =~ /^image\//) { |
if ($$settings{$id}{imagtype} =~ /^image\//) { |
$questionimage = '<p><img src="../../resfiles/'.$$settings{$id}{uri}.'" /></p>'."\n"; |
$questionimage = '<p><img src="../../resfiles/'.$$settings{$id}{uri}.'" /></p>'."\n"; |
} else { |
} else { |
Line 3900 $$settings{$id}{$list}{jumbledtext}[$k]
|
Line 3965 $$settings{$id}{$list}{jumbledtext}[$k]
|
if ($$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{texttype} eq 'text/html') { |
if ($$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{texttype} eq 'text/html') { |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} = &HTML::Entities::decode($$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text}); |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} = &HTML::Entities::decode($$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text}); |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} = &Apache::loncleanup::htmlclean($$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text}); |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} = &Apache::loncleanup::htmlclean($$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text}); |
|
|
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} =~ s#(<img src=")([^>]+)>#$1../../resfiles/$2 />#gi; |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} =~ s#(<img src=")([^>]+)>#$1../../resfiles/$2 />#gi; |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} =~ s#</?p>##g; |
$$settings{$id}{$list}{$$allanswers{$id}{$list}[$k]}{text} =~ s#</?p>##g; |
} |
} |
Line 4041 $$settings{$id}{$list}{jumbledtext}[$k]
|
Line 4105 $$settings{$id}{$list}{jumbledtext}[$k]
|
($$settings{$id}{class} eq 'shortanswer')) { |
($$settings{$id}{class} eq 'shortanswer')) { |
my $labelnum = 0; |
my $labelnum = 0; |
my @str_labels = (); |
my @str_labels = (); |
if ($cms eq 'webct4ce') { |
if ($cms eq 'webctce4') { |
foreach my $str_id (@{$$settings{$id}{str}}) { |
foreach my $str_id (@{$$settings{$id}{str}}) { |
foreach my $label (@{$$settings{$id}{$str_id}{labels}}) { |
foreach my $label (@{$$settings{$id}{$str_id}{labels}}) { |
push(@str_labels,$label); |
push(@str_labels,$label); |
Line 4201 $$settings{$id}{$list}{jumbledtext}[$k]
|
Line 4265 $$settings{$id}{$list}{jumbledtext}[$k]
|
} |
} |
$increment .= '1'; |
$increment .= '1'; |
} |
} |
if ($cms eq 'webct4ce') { |
if ($cms eq 'webctce4') { |
$formula =~ s/{($var)}/(\$$1)/g; |
$formula =~ s/{($var)}/(\$$1)/g; |
} elsif ($cms eq 'webctvista4') { |
} elsif ($cms eq 'webctvista4') { |
$formula =~ s/\[($var)\]/(\$$1)/g; |
$formula =~ s/\[($var)\]/(\$$1)/g; |
Line 4251 $$settings{$id}{$list}{jumbledtext}[$k]
|
Line 4315 $$settings{$id}{$list}{jumbledtext}[$k]
|
} |
} |
} |
} |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
|
my $probdir; |
my $catid = $$settings{$id}{category}; |
my $catid = $$settings{$id}{category}; |
my $probdir = $$catinfo{$catid}{title}.'_'.$catid; |
if ($catid) { |
$probdir =~ s/\s/_/g; |
if ($cms eq 'webctce4') { |
$probdir =~ s/\W//g; |
$probdir = $$catinfo{$catid}{title}.'_'.$catid; |
|
} else { |
|
$probdir = $$catinfo{$catid}{title}; |
|
} |
|
$probdir =~ s/\s/_/g; |
|
$probdir =~ s/://g; |
|
} elsif (defined($dirtitle)) { |
|
$probdir = $dirtitle; |
|
} |
if (!-e "$destdir/problems/$probdir") { |
if (!-e "$destdir/problems/$probdir") { |
mkdir("$destdir/problems/$probdir",0755); |
mkdir("$destdir/problems/$probdir",0755); |
} |
} |
Line 4262 $$settings{$id}{$list}{jumbledtext}[$k]
|
Line 4335 $$settings{$id}{$list}{jumbledtext}[$k]
|
|; |
|; |
my $title = $$settings{$id}{title}; |
my $title = $$settings{$id}{title}; |
$title =~ s/\s/_/g; |
$title =~ s/\s/_/g; |
$title =~ s/\W//g; |
$title =~ s/:/_/g; |
$title .= '_'.$id; |
$title .= '_'.$id; |
open(PROB,">:utf8", "$destdir/problems/$probdir/$title.problem"); |
open(PROB,">$destdir/problems/$probdir/$title.problem"); |
print PROB $output; |
print PROB $output; |
close PROB; |
close PROB; |
} else { |
} else { |
Line 4662 sub write_bb6_questions {
|
Line 4735 sub write_bb6_questions {
|
$title =~ s/\s/_/g; |
$title =~ s/\s/_/g; |
$title =~ s/\W//g; |
$title =~ s/\W//g; |
$title .= '_'.$id; |
$title .= '_'.$id; |
open(PROB,">:utf8", "$newdir/$title.problem"); |
open(PROB,">$newdir/$title.problem"); |
print PROB $output; |
print PROB $output; |
close PROB; |
close PROB; |
} else { |
} else { |