You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
531 lines
21 KiB
531 lines
21 KiB
#!/usr/bin/perl
|
|
#
|
|
# $Id: testdata.pl,v 1.10 2006/11/29 14:44:59 ddoughty Exp $
|
|
#
|
|
# Source File: testdata.pl
|
|
|
|
# Get config
|
|
use FileHandle;
|
|
use Reporter;
|
|
use Data::Dumper;
|
|
require 'sitecfg.pl';
|
|
require 'testlib.pl';
|
|
use strict;
|
|
use vars qw(%FORM %SESSION %CLIENT %TEST_SESSION %SUBTEST_QUESTIONS %TEST
|
|
%SUBTEST_SUMMARY %CANDIDATE %SUBTEST_ANSWERS %SYSTEM %REPORT
|
|
%SUBTEST_RESPONSES);
|
|
use vars qw($testcomplete $cgiroot $pathsep $dataroot $testgraphic $graphroot);
|
|
|
|
&app_initialize;
|
|
&LanguageSupportInit();
|
|
&get_client_profile($SESSION{'clid'});
|
|
|
|
# Make sure we have a valid session, and exit if we don't
|
|
if (not &get_session($FORM{'tid'})) {
|
|
exit(0);
|
|
}
|
|
my $options;
|
|
|
|
if (exists $FORM{'testid'}) {
|
|
@{$options}{qw(showquest displayquest active inactive remediation bysubject subjfilter bydiff difffilter answers)} =
|
|
@FORM{qw(showquest displayquest active inactive remediation bysubject subjfilter bydiff difffilter answers)};
|
|
&DisplayQuestions($SESSION{'clid'},$FORM{'testid'},$options);
|
|
} else {
|
|
&ReportChooser($SESSION{'clid'});
|
|
}
|
|
|
|
# There should only be function definitions beyond this point.
|
|
exit(0);
|
|
|
|
sub ReportChooser {
|
|
my ($client) = @_;
|
|
print &Reporter::HTMLHeader("Test Data");
|
|
# options to be implemented -
|
|
# drop down menu to choose test
|
|
# checkbox and text field to choose subset of questions
|
|
# remediation checkbox
|
|
# show active checkbox
|
|
# show inactive checkbox
|
|
# filter by subjct multichoice
|
|
# filter by difficulty
|
|
print "<form name=\"testdatarpt\" action=\"/cgi-bin/creports.pl\" method=\"Post\" target=\"rptwindow\" enctype=\"multipart/form-data\" >\n";
|
|
print "<input type=\"hidden\" name=\"tid\" value=\"$SESSION{'tid'}\">\n";
|
|
print "<input type=hidden name=\"rptno\" value=\"$FORM{'rptno'}\">\n";
|
|
print "<input type=hidden name=\"rptdesc\" value=\"$REPORT{'rptdesc'}\">\n";
|
|
print "<input type=hidden name=\"rptid\" value=\"$REPORT{'rptid'}\">\n";
|
|
|
|
print "<table>\n";
|
|
#print "<tr><th>Test</th><th>Questions</th><th>S
|
|
print "<tr valign=\"top\"><td><b>Select Test:</b><br><select name=\"testid\">\n";
|
|
my @tests = &get_test_list($client);
|
|
shift @tests;
|
|
my (@details,%subjects);
|
|
foreach my $testid (@tests) {
|
|
my ($id,$desc) = split(/&/,$testid);
|
|
print "<option value=\"$id\">$desc</option>\n";
|
|
my $tmp = &get_question_definitions($client,$id);
|
|
push @details, $tmp;
|
|
@subjects{map($_->{'subj'},@$tmp)} = 1;
|
|
}
|
|
print "</select></td>";
|
|
print "<td><b>Show Questions:</b><br><input type=\"radio\" name=\"showquest\" value=\"all\" checked>All<br>".
|
|
"<input type=\"radio\" name=\"showquest\" value=\"subset\">Subset: <input type=\"text\" name=\"displayquest\"></td>";
|
|
print "<td><b>Display:</b><br><input type=\"checkbox\" name=\"active\" checked>Active Questions<br>".
|
|
"<input type=\"checkbox\" name=\"inactive\">Inactive Questions<br>".
|
|
"<input type=\"checkbox\" name=\"answers\">Question Answers<br>".
|
|
"<input type=\"checkbox\" name=\"remediation\">Remediation<br></td>";
|
|
print "</tr>\n";
|
|
print "</table><table>\n";
|
|
print "<tr><td colspan=\"3\"><b>Filter By:</b></tr>\n";
|
|
#my @subjects = qw(astronomy geology physics);
|
|
print "<tr valign=\"top\"><td><input type=\"checkbox\" name=\"bysubject\">Subject:<select name=\"subjfilter\" MULTIPLE>";
|
|
foreach my $subject (sort keys %subjects) {
|
|
print "<option value=\"$subject\">$subject</option>\n";
|
|
}
|
|
my @difficulties = ([0,'basic'],[1,'intermediate'],[2,'advanced']);
|
|
print "</td><td><input type=\"checkbox\" name=\"bydiff\">Difficulty:<select name=\"difffilter\">";
|
|
foreach my $difficulty (@difficulties) {
|
|
print "<option value=\"$difficulty->[0]\">$difficulty->[1]</option>\n";
|
|
}
|
|
print "</select></td>";
|
|
print "</tr>\n";
|
|
print "</table>\n";
|
|
print "<input type=\"submit\" value=\"Get Test\">\n";
|
|
print &Reporter::HTMLFooter();
|
|
}
|
|
|
|
sub DisplayQuestions {
|
|
my ($client,$test,$options) = @_;
|
|
&get_test_profile($client,$test);
|
|
my $details = &get_question_definitions($client,$test);
|
|
print &Reporter::HTMLHeaderPlain("Test Data for $TEST{'desc'}");
|
|
print "<h1>Test Data for $TEST{'desc'}</h1>\n";
|
|
print "<form>\n";
|
|
my (@questnum,%subjects,$difficulty);
|
|
if ($options->{'showquest'} eq 'subset') {
|
|
$options->{'displayquest'} =~ s/\s+//g; #eliminate whitespace
|
|
foreach (split(/,/,$options->{'displayquest'})) {
|
|
if (/^\d+$/) {$questnum[$_] = 1;}
|
|
if (/^(\d+)-$/) {foreach ($1 .. (scalar(@$details)+1)) {$questnum[$_]=1;}}
|
|
if (/^-(\d+)$/) {foreach (1 .. $1) {$questnum[$_]=1;}}
|
|
if (/^(\d+)-(\d+)$/) {foreach ($1 .. $2) {$questnum[$_]=1;}}
|
|
}
|
|
}
|
|
if ($options->{'bysubject'}) {
|
|
%subjects = map(($_=>1),split(/,/,$options->{'subjfilter'}));
|
|
}
|
|
if ($options->{'bydiff'}) {
|
|
$difficulty = $options->{'difffilter'};
|
|
}
|
|
my $questcount = 0;
|
|
foreach my $question (@$details) {
|
|
### DED 7/28/04 Some questions have qil blank; look for !N instead of Y
|
|
#if (not (($options->{'active'} and $question->{'qil'} eq 'N') or
|
|
# ($options->{'inactive'} and $question->{'qil'} eq 'Y'))) {
|
|
if (not (($options->{'active'} and $question->{'qil'} ne 'Y') or
|
|
($options->{'inactive'} and $question->{'qil'} eq 'Y'))) {
|
|
next;
|
|
}
|
|
if ($options->{'bysubject'} and not $subjects{$question->{'subj'}}) {next;}
|
|
if ($options->{'bydiff'} and ($question->{'skilllevel'} != $options->{'difffilter'})) {next;}
|
|
my (undef, $qindex) = split(/\./,$question->{'id'});
|
|
if (($options->{'showquest'} eq 'subset') and not $questnum[$qindex]) {next;}
|
|
$questcount++;
|
|
if ($question->{'qil'} eq 'Y') {
|
|
print "<font color=\"red\"><h3>$question->{'id'} - Inactive</h3></font>\n";
|
|
} else {
|
|
print "<h3>$question->{'id'}</h3>\n";
|
|
}
|
|
print "Subject: $question->{'subj'}, Skill: ".(qw(basic intermediate advanced))[$question->{'skilllevel'}].
|
|
"<p>\n";
|
|
if ($question->{'qim'}) {
|
|
print $question->{'illustration'}."<br>\n";
|
|
}
|
|
if ($question->{'qtp'} eq 'tf') {
|
|
print formatTF($question,$options);
|
|
} elsif ($question->{'qtp'} eq 'esa') {
|
|
print formatESA($question,$options);
|
|
} elsif ($question->{'qtp'} eq 'nrt') {
|
|
print formatNRT($question,$options);
|
|
} elsif ($question->{'qtp'} eq 'mch' or $question->{'qtp'} eq 'ord') {
|
|
print formatMCHORD($question,$options);
|
|
} elsif ($question->{'qtp'} eq 'mcs' or $question->{'qtp'} eq 'mcm') {
|
|
print formatMC($question,$options);
|
|
} elsif ($question->{'qtp'} eq 'mtx' or $question->{'qtp'} eq 'mtr') {
|
|
print formatMT($question,$options);
|
|
} else {
|
|
#print "<pre>".Dumper($question)."</pre>";
|
|
}
|
|
if ($options->{"remediation"}) {
|
|
if ($question->{'qrm'}) {
|
|
print "Remdiation:<br>\n$question->{'qrm'}<br>\n";
|
|
} else {
|
|
print "No Remediation.<br>\n";
|
|
}
|
|
}
|
|
print "<hr>\n";
|
|
}
|
|
print "</form\n";
|
|
if (not $questcount) {
|
|
print "<h3>No Matching Questions Found.</h3>\n";
|
|
}
|
|
#print "<pre>".Dumper($details,$options)."</pre>";
|
|
print &Reporter::HTMLFooter();
|
|
}
|
|
|
|
sub formatTF {
|
|
my ($question,$options) = @_;
|
|
my ($optTrue,$optFalse) = ('','');
|
|
#my $outline = "<h3>$question->{'id'}</h3>\n";
|
|
my $outline = "$question->{'qtx'}<p>\n";
|
|
if ($options->{'answers'}) {
|
|
$optTrue = ($question->{'qca'}=~/(true|yes)/i ? "checked" : "" );
|
|
$optFalse = ($question->{'qca'}=~/(false|no)/i ? "checked" : "" );
|
|
}
|
|
my ($true,$false) = ($question->{'qca'}, $question->{'qia'});
|
|
if ($question->{'qca'} !~ /(true|yes)/i) {
|
|
($true,$false) = ($false,$true);
|
|
}
|
|
$outline .= "<input type=\"radio\" name=\"$question->{'id'}\" value=\"$true\" $optTrue>$true<BR>\n";
|
|
$outline .= "<input type=\"radio\" name=\"$question->{'id'}\" value=\"$false\" $optFalse>$false<P>\n";
|
|
return $outline;
|
|
}
|
|
|
|
sub formatESA {
|
|
my ($question,$options) = @_;
|
|
my ($tmp);
|
|
#my @esaanswers = split(/\n/,$question->{'qca'});
|
|
my $len;
|
|
$tmp = "<ul>\n";
|
|
foreach (split(/[;\n]/,$question->{'qca'})) {
|
|
$tmp .= "<li>$_</li>\n";
|
|
$len = ($len < length($_)? length($_): $len);
|
|
}
|
|
$tmp .= "</ul>\n";
|
|
$len += 5;
|
|
my $anslist = "<input type=\"text\" name=\"$question->{'id'}\" VALUE=\"\" SIZE=$len>";
|
|
my $qtext = $question->{'qtx'};
|
|
if ($qtext =~ /<box>/ ) {
|
|
$qtext =~ s/<box>/$anslist/g;
|
|
} else {
|
|
$qtext .= "<p>$anslist\n";
|
|
}
|
|
my $outline .= "$qtext<p>\n";
|
|
if ($options->{'answers'}) {
|
|
$outline .= "Answers:<br>\n";
|
|
$outline .= $tmp;
|
|
}
|
|
return $outline;
|
|
}
|
|
|
|
sub formatMCHORD {
|
|
my ($question,$options) = @_;
|
|
my $tmp = $question->{'qca'};
|
|
$tmp =~ s/\r/\n/g; $tmp =~ s/\n\n/\n/g;
|
|
my @ansopt = split(/\n/,$tmp);
|
|
$tmp = $question->{'qia'};
|
|
$tmp =~ s/\r/\n/g; $tmp =~ s/\n\n/\n/g;
|
|
my @desc = split(/\n/,$tmp);
|
|
my @albls = set_answer_labels($question->{'qalb'});
|
|
my $outline = "$question->{'qtx'}<p>\n";
|
|
my $num = (@ansopt > @desc? @ansopt: @desc);
|
|
$outline .= "<table>\n";
|
|
my @answers;
|
|
if ($options->{'answers'}) {@answers = @albls;}
|
|
for (my $i=0; $i<$num; $i++) {
|
|
if ($question->{'qtp'} eq 'mch') {
|
|
$outline .= "<tr><td align=\"left\"><INPUT TYPE=TEXT SIZE=\"2\" NAME=\"$question->{'id'}.$i\" value=\"$answers[$i]\">".
|
|
" $ansopt[$i] </td>";
|
|
$outline .= "<TD align=\"left\" width=80> </TD>";
|
|
$outline .= "<TD align=\"left\"><b>$albls[$i]</b> $desc[$i]</TD></TR>\n";
|
|
} else {
|
|
my $answer = ($options->{'answers'}?" value=\"".($i+1)."\"":"");
|
|
$outline .= "<tr><td align=\"left\"><INPUT TYPE=TEXT SIZE=\"2\" NAME=\"$question->{'id'}.$i\"$answer>".
|
|
" $ansopt[$i] </td>";
|
|
}
|
|
$outline .= "</tr>\n";
|
|
}
|
|
$outline .= "</table><p>\n";
|
|
return $outline;
|
|
}
|
|
|
|
sub formatNRT {
|
|
my ($question,$options) = @_;
|
|
my $outline = "$question->{'qtx'}<p>\n";
|
|
my $nrtmaxlen = $question->{'qca'};
|
|
my $nrtcols = 50;
|
|
my $nrtrows = $nrtmaxlen/$nrtcols;
|
|
$nrtrows = ($nrtrows > 5) ? 5 : $nrtrows;
|
|
$outline .= "<textarea name=\"$question->{'id'}\" ROWS=\"$nrtrows\" COLS=\"$nrtcols\" wrap=\"on\"></TEXTAREA>\n";
|
|
return $outline;
|
|
}
|
|
|
|
sub formatMC {
|
|
my ($question,$options) = @_;
|
|
my ($inptyp);
|
|
if (($question->{'qtp'} eq 'mcs' ) || ($question->{'qtp'} eq 'mca')) {
|
|
$inptyp = "RADIO";
|
|
} elsif ($question->{'qtp'} eq 'mcm' ) {
|
|
$inptyp = "CHECKBOX";
|
|
} else{
|
|
return undef;
|
|
}
|
|
if ($question->{'anslay'} eq "h") {
|
|
$inptyp .= ":".$question->{'anslay'};
|
|
}
|
|
my @albls = set_answer_labels($question->{'qalb'});
|
|
my $qca = $question->{'qca'};
|
|
$qca =~ s/\r/\n/g; $qca =~ s/\n\n/\n/g;
|
|
my %qansopt = map(($_=>{'correct' =>1}), split(/\n/, $qca));
|
|
my $qia = $question->{'qia'};
|
|
$qia =~ s/\r/\n/g; $qia =~ s/\n\n/\n/g;
|
|
foreach (split(/\n/, $qia)) {$qansopt{$_}->{'correct'} = 0;}
|
|
my @order;
|
|
push @order,split(/\n/, $qca), split(/\n/, $qia);
|
|
|
|
my $outline="$question->{'qtx'}<p>\n";
|
|
my $iord=0;
|
|
foreach (@order) {
|
|
my $qans;
|
|
if ($question->{'qalb'} ne "x") {
|
|
$qansopt{$_}->{'formatted'} = $albls[$iord].") $_";
|
|
} else {
|
|
$qansopt{$_}->{'formatted'} = $_;
|
|
}
|
|
$qansopt{$_}->{'index'} = $iord++;
|
|
}
|
|
|
|
if ($inptyp eq 'RADIO:h') {
|
|
my $colspan = scalar(keys(%qansopt))+2;
|
|
$outline = "<TABLE cellspacing=10>\n";
|
|
$outline .= " <TR><TD colspan=$colspan>";
|
|
$outline .= " <TABLE width=100%>\n";
|
|
$outline .= " <TR><TD align=left>$question->{'left_be'}</TD>";
|
|
$outline .= " <TD align=right>$question->{'right_be'}</TD></TR>\n";
|
|
$outline .= " </TABLE>\n";
|
|
$outline .= " </TD></TR>\n";
|
|
$outline .= " <TR><TD> </TD>";
|
|
}
|
|
foreach my $qans (@order) {
|
|
my $optselected = (($options->{'answers'} and $qansopt{$qans}->{'correct'}) ? "CHECKED" : "");
|
|
if ($inptyp eq 'RADIO') {
|
|
$outline .= "<INPUT TYPE=$inptyp NAME=\"$question->{'id'}\" VALUE=\"$qansopt{$qans}->{'index'}\" $optselected>$qansopt{$qans}->{'formatted'}<BR>\n";
|
|
} elsif ($inptyp eq 'RADIO:h') {
|
|
$outline .= "<TD align=center><INPUT TYPE=RADIO NAME=\"$question->{'id'}\" VALUE=\"$qansopt{$qans}->{'index'}\" $optselected></TD>";
|
|
} else {
|
|
my $akey = "$question->{'id'}.$qansopt{$qans}->{'index'}";
|
|
$outline .= "<INPUT TYPE=$inptyp NAME=\"$akey\" VALUE=\"$qansopt{$qans}->{'index'}\" $optselected>$qansopt{$qans}->{'formatted'}<BR>\n";
|
|
}
|
|
}
|
|
if ($inptyp eq 'RADIO:h') {
|
|
$outline .= "<TD> </TD></TR>\n";
|
|
$outline .= " <TR><TD> </TD>";
|
|
foreach my $qans (@order) {
|
|
$outline .= "<TD align=center>$qansopt{$qans}->{'formatted'}</TD>";
|
|
}
|
|
$outline .= "<TD> </TD></TR>\n";
|
|
$outline .= "</TABLE>\n";
|
|
}
|
|
return $outline."<P>\n";;
|
|
}
|
|
|
|
sub formatMT {
|
|
my ($question,$options) = @_;
|
|
|
|
my $outline = "$question->{'qtx'}<p>\n";
|
|
# Split qia into row and col headers
|
|
my $qia = $question->{'qia'};
|
|
$qia =~ s/\r/\n/g;
|
|
$qia =~ s/\n\n/\n/g;
|
|
my ($qrowhdr, $qcolhdr) = split(/RC/,$qia);
|
|
my @qrowhdr = split(/\n/, $qrowhdr);
|
|
my @qcolhdr = split(/\n/, $qcolhdr);
|
|
|
|
#@optvalues = split(/\?/, $_[2]);
|
|
#shift @optvalues;
|
|
my @optvalues = ();
|
|
my $i=0;
|
|
my @chmatrix;
|
|
if ($question->{'qtp'} eq 'mtx') {
|
|
# Mark previous selections with "CHECKED"
|
|
foreach my $row (0 .. $#qrowhdr) {
|
|
foreach my $col (0 .. $#qcolhdr) {
|
|
if ($optvalues[$i] != "xxx") {
|
|
$chmatrix[$row][$col]="CHECKED";
|
|
} else {
|
|
$chmatrix[$row][$col]="";
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
} else {
|
|
# Mark previous selections with "SELECTED"
|
|
foreach my $row (0 .. $#qrowhdr) {
|
|
foreach my $col (0 .. $#qcolhdr) {
|
|
my $rank = $optvalues[$i];
|
|
foreach my $irank (0 .. 5) {
|
|
if ($irank eq $rank) {
|
|
$chmatrix[$i][$irank]="SELECTED";
|
|
} else {
|
|
$chmatrix[$i][$irank]="";
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
# Build matrix html
|
|
$outline="<table border=2>\n<tr><td> </td>";
|
|
foreach (0 .. $#qcolhdr) {
|
|
$outline .= "<td>$qcolhdr[$_]</td>";
|
|
}
|
|
$outline .= "</tr>\n";
|
|
$i=0;
|
|
foreach my $row (0 .. $#qrowhdr) {
|
|
$outline .= "<tr><td>$qrowhdr[$row]</td>";
|
|
foreach my $col (0 .. $#qcolhdr) {
|
|
if ($question->{'qtp'} eq 'mtx') {
|
|
$outline .= "<td align=center><input type=checkbox name=\"qrs$row$col\" value=\"1\" $chmatrix[$row][$col]></td>";
|
|
} else {
|
|
$outline .= "<td align=center><select name=\"qrs$row$col\"><option value='' $chmatrix[$i][0]>\ \;</option><option value=1 $chmatrix[$i][1]>1</option><option value=2 $chmatrix[$i][2]>2</option><option value=3 $chmatrix[$i][3]>3</option><option value=4 $chmatrix[$i][4]>4</option><option value=5 $chmatrix[$i][5]>5</option></select></td>";
|
|
}
|
|
$i++;
|
|
}
|
|
$outline .= "</tr>\n";
|
|
}
|
|
$outline .= "</table>\n";
|
|
return $outline;
|
|
}
|
|
|
|
sub get_question_definitions {
|
|
my ($clid, $testid) = @_;
|
|
my $qcount = 0;
|
|
my $questions = [];
|
|
my @qrecs = &get_question_list($testid, $clid);
|
|
chomp $qrecs[0];
|
|
my @flds = split(/&/,shift(@qrecs));
|
|
foreach my $qrec (@qrecs) {
|
|
chomp ($qrec);
|
|
#($id, $qtyp) = split(/&/, $qrec);
|
|
my @rowdata = split(/&/, $qrec);
|
|
my $i=0;
|
|
my $question = {};
|
|
@{$question}{@flds} = @rowdata;
|
|
($question->{'subj'},$question->{'skilllevel'}) = split(/\./,$question->{'subj'});
|
|
$question->{'tf'} = ($question->{'qtp'} eq 'tf') ? "SELECTED" : "";
|
|
$question->{'mcs'} = ($question->{'qtp'} eq 'mcs') ? "SELECTED" : "";
|
|
$question->{'mcm'} = ($question->{'qtp'} eq 'mcm') ? "SELECTED" : "";
|
|
$question->{'esa'} = ($question->{'qtp'} eq 'esa') ? "SELECTED" : "";
|
|
$question->{'nrt'} = ($question->{'qtp'} eq 'nrt') ? "SELECTED" : "";
|
|
$question->{'qtx'} =~ s/\;/\n/g;
|
|
$question->{'qca'} =~ s/\;/\n/g;
|
|
$question->{'qia'} =~ s/\;/\n/g;
|
|
|
|
$question->{'lbla'} = ($question->{'qalb'} eq 'a') ? "SELECTED" : "";
|
|
$question->{'lblA'} = ($question->{'qalb'} eq 'A') ? "SELECTED" : "";
|
|
$question->{'lbln'} = ($question->{'qalb'} eq 'n') ? "SELECTED" : "";
|
|
$question->{'lblr'} = ($question->{'qalb'} eq 'r') ? "SELECTED" : "";
|
|
$question->{'lblR'} = ($question->{'qalb'} eq 'R') ? "SELECTED" : "";
|
|
|
|
$question->{'tft'} = ($question->{'qtp'} eq 'tf' && $question->{'qca'} eq 'TRUE') ? "CHECKED" : "";
|
|
$question->{'tff'} = ($question->{'qtp'} eq 'tf' && $question->{'qca'} eq'FALSE') ? "CHECKED" : "";
|
|
$question->{'tfy'} = ($question->{'qtp'} eq 'tf' && $question->{'qca'} eq 'YES') ? "CHECKED" : "";
|
|
$question->{'tfn'} = ($question->{'qtp'} eq 'tf' && $question->{'qca'} eq'NO') ? "CHECKED" : "";
|
|
|
|
$question->{'qim0'} = ($question->{'qim'} eq '0') ? "SELECTED" : "";
|
|
$question->{'qim1'} = "";
|
|
$question->{'qim2'} = "";
|
|
my $illus = join($pathsep, $testgraphic, "$clid.$question->{'id'}");
|
|
my $supportedmedia = join(';', $SYSTEM{'supportedimagemedia'}, $SYSTEM{'supportedaudiomedia'}, $SYSTEM{'supportedvideomedia'});
|
|
my $illusfile = &file_exists_with_extension($illus, $supportedmedia);
|
|
$question->{'illustration'} = "";
|
|
$question->{'defthumbnail'} = "<IMG NAME=\"qimage\" SRC=\"$graphroot/noimageassigned.gif\" width=100 BORDER=0>";
|
|
if ($question->{'qim'} eq '1') {
|
|
$question->{'qim1'} = "SELECTED";
|
|
} elsif ($question->{'qim'} eq '2') {
|
|
$question->{'qim2'} = "SELECTED";
|
|
} elsif ($question->{'qim'} eq '3' ) {
|
|
$question->{'qim3'} = "SELECTED";
|
|
$question->{'illustration'} = "<A NAME=\"qimage\" HREF=\"$question->{'flr'}\" TARGET=\"illustrated\">Reference Page</A>";
|
|
}
|
|
if ($illusfile ne '') {
|
|
my @filesegs = split(/\./, $illusfile);
|
|
my $fext = $filesegs[$#filesegs];
|
|
@filesegs = () ;
|
|
if ($SYSTEM{'supportedimagemedia'} =~ m/$fext/i ) {
|
|
if ($question->{'qim'} eq '1') {
|
|
$question->{'illustration'} = "<A NAME=\"qimage\" HREF=\"$cgiroot/imagepop.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" TARGET=\"illustrated\">Illustration</A>";
|
|
$question->{'defthumbnail'} = "<A NAME=\"qimage\" HREF=\"$cgiroot/imagepop.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" TARGET=\"illustrated\"><IMG NAME=\"qimagetn\" SRC=\"$cgiroot/image.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" width=100 BORDER=0></A>";
|
|
} else {
|
|
$question->{'illustration'} = "<IMG NAME=\"qimage\" SRC=\"$cgiroot/image.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" BORDER=0>";
|
|
$question->{'defthumbnail'} = "<A NAME=\"qimage\" HREF=\"$cgiroot/imagepop.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" TARGET=\"illustrated\"><IMG NAME=\"qimagetn\" SRC=\"$cgiroot/image.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" width=100 BORDER=0></A>";
|
|
}
|
|
} elsif ($SYSTEM{'supportedvideomedia'} =~ m/$fext/i ) {
|
|
$question->{'illustration'} = "<EMBED SRC=\"$cgiroot/image.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" AUTOSTART=\"TRUE\" LOOP=\"false\" VOLUME=\"100\" CONTROLS=\"console\" HIDDEN=\"false\">";
|
|
} elsif ($SYSTEM{'supportedaudiomedia'} =~ m/$fext/i ) {
|
|
$question->{'illustration'} = "<EMBED SRC=\"$cgiroot/image.pl?tid=$SESSION{'tid'}\&img=$clid.$question->{'id'}.$fext\" AUTOSTART=\"TRUE\" LOOP=\"false\" VOLUME=\"100\" WIDTH=\"300\" HEIGHT=\"50\" CONTROLS=\"small console\" HIDDEN=\"false\">";
|
|
}
|
|
}
|
|
#if ($question->{'qnxt'} eq '' ) {
|
|
#$question->{'qnxt'} = ($qcount < $#qrecs) ? $qcount + 1 : $#qrecs;
|
|
#} else {
|
|
#if ($question->{'qnxt'} > $#qrecs) {
|
|
#$question->{'qnxt'} = $#qrecs;
|
|
#}
|
|
#}
|
|
#if ($question->{'qprv'} eq '' ) {
|
|
#$question->{'qprv'} = ($qcount == 1) ? 1 : $qcount - 1;
|
|
#} else {
|
|
#if ($question->{'qprv'} > $#qrecs) {
|
|
#$question->{'qprv'} = $#qrecs;
|
|
#}
|
|
#}
|
|
$question->{'totdef'} = $#qrecs;
|
|
$question->{'chkobs'} = ($question->{'qil'} eq 'Y') ? "CHECKED" : "";
|
|
if ($question->{'qtx'} =~ /:::/) {
|
|
($question->{'qtx'}, $question->{'left_be'}, $question->{'right_be'}) = split(/:::/, $question->{'qtx'});
|
|
}
|
|
if ($question->{'layout'} =~ /:/) {
|
|
($question->{'layout'}, $question->{'anslay'}) = split(/:/, $question->{'layout'});
|
|
$question->{'anslayhchk'} = ($question->{'anslay'} eq 'h') ? "CHECKED" : "";
|
|
} else {
|
|
$question->{'anslay'} = "";
|
|
}
|
|
$question->{'anslayvchk'} = ($question->{'anslay'} ne 'h') ? "CHECKED" : "";
|
|
$question->{'layout2chk'} = ($question->{'layout'} eq '2') ? "CHECKED" : "";
|
|
$question->{'layout3chk'} = ($question->{'layout'} eq '3') ? "CHECKED" : "";
|
|
$question->{'layout4chk'} = ($question->{'layout'} eq '4') ? "CHECKED" : "";
|
|
$question->{'layout5chk'} = ($question->{'layout'} eq '5') ? "CHECKED" : "";
|
|
$question->{'layout1chk'} = ($question->{'layout'} eq '1') ? "CHECKED" : "";
|
|
if ($question->{'layout'} eq '') {
|
|
$question->{'layout'} = '1';
|
|
$question->{'layout1chk'} = "CHECKED";
|
|
}
|
|
# sac v start addition for comment input support
|
|
my @qflags = split(/\./,$question->{'flags'});
|
|
$question->{'qcmtprmpt'} = $qflags[0];
|
|
$question->{'chkqccmt'} = ($qflags[0] eq 'Y') ? "CHECKED" : "";
|
|
$question->{'qcprmpt'} = ($qflags[0] eq 'Y') ? $qflags[1] : "";
|
|
$question->{'promptcomments'}="";
|
|
if ($qflags[0] eq 'Y') {
|
|
$question->{'promptcomments'}="
|
|
<FONT SIZE=\"4\">\ <br>
|
|
<b><i>$qflags[1]</i></b><br>
|
|
<TEXTAREA NAME=\"qcucmt\" cols=\"50\" rows=\"3\"
|
|
wrap=on onKeyPress=\"languagesupport(this)\"
|
|
onFocus=\"return tGotFocus(this)\"
|
|
onChange=\"return onConvert(this)\"></TEXTAREA>
|
|
</FONT><br>\n";
|
|
if (($question->{'layout'} eq '4') || ($question->{'layout'} eq '5') || ($question->{'qtyp'} eq 'nrt')) {
|
|
$question->{'promptcomments'}=join('',"\ <br>",$question->{'promptcomments'});
|
|
} else {
|
|
$question->{'promptcomments'}=join('',"<tr><td>",$question->{'promptcomments'},"</td></tr>");
|
|
}
|
|
}
|
|
# sac ^ end addition for comment input support
|
|
#return;
|
|
push @$questions, $question;
|
|
}
|
|
return $questions;
|
|
}
|
|
|