version 1.38, 2002/06/24 19:06:05
|
version 1.41, 2002/06/25 17:09:38
|
Line 85 my $readit;
|
Line 85 my $readit;
|
my %language; |
my %language; |
my %cprtag; |
my %cprtag; |
my %fe; my %fd; |
my %fe; my %fd; |
my %fc; |
my %category_extensions; |
|
|
# -------------------------------------------------------------- Thesaurus data |
# -------------------------------------------------------------- Thesaurus data |
my @therelated; |
my @therelated; |
Line 146 BEGIN {
|
Line 146 BEGIN {
|
while (<$fh>) { |
while (<$fh>) { |
next if /^\#/; |
next if /^\#/; |
chomp; |
chomp; |
my ($key,$val)=(split(/\s+/,$_,2)); |
my ($extension,$category)=(split(/\s+/,$_,2)); |
push @{$fc{$key}},$val; |
push @{$category_extensions{lc($category)}},$extension; |
} |
} |
} |
} |
} |
} |
Line 215 linked_select_forms takes the following
|
Line 215 linked_select_forms takes the following
|
|
|
=item $hashref, a reference to a hash containing the data for the menus. |
=item $hashref, a reference to a hash containing the data for the menus. |
|
|
|
=back |
|
|
Below is an example of such a hash. Only the 'text', 'default', and |
Below is an example of such a hash. Only the 'text', 'default', and |
'select2' keys must appear as stated. keys(%menu) are the possible |
'select2' keys must appear as stated. keys(%menu) are the possible |
values for the first select menu. The text that coincides with the |
values for the first select menu. The text that coincides with the |
first menu values is given in $menu{$choice1}->{'text'}. The values |
first menu value is given in $menu{$choice1}->{'text'}. The values |
and text for the second menu are given in the hash pointed to by |
and text for the second menu are given in the hash pointed to by |
$menu{$choice1}->{'select2'}. |
$menu{$choice1}->{'select2'}. |
|
|
my %menu = ( A1 => { text =>"Choice A1" , |
my %menu = ( A1 => { text =>"Choice A1" , |
default => "B3", |
default => "B3", |
select2 => { |
select2 => { |
B1 => "Choice B1", |
B1 => "Choice B1", |
Line 741 sub copyrightdescription {
|
Line 743 sub copyrightdescription {
|
|
|
# ------------------------------------------------------------- File Categories |
# ------------------------------------------------------------- File Categories |
sub filecategories { |
sub filecategories { |
return sort(keys(%fc)); |
return sort(keys(%category_extensions)); |
} |
} |
|
|
# -------------------------------------- File Types within a specified category |
# -------------------------------------- File Types within a specified category |
sub filecategorytypes { |
sub filecategorytypes { |
return @{$fc{lc(shift(@_))}}; |
return @{$category_extensions{lc($_[0])}}; |
} |
} |
|
|
# ------------------------------------------------------------------ File Types |
# ------------------------------------------------------------------ File Types |
Line 770 sub filedescriptionex {
|
Line 772 sub filedescriptionex {
|
return '.'.$ex.' '.$fd{lc($ex)}; |
return '.'.$ex.' '.$fd{lc($ex)}; |
} |
} |
|
|
|
# ---- Retrieve attempts by students |
|
# input |
|
# $symb - problem including path |
|
# $username,$domain - that of the student |
|
# $course - course name |
|
# $getattempt - leave blank if want all attempts, else put something. |
|
# |
|
# output |
|
# formatted as a table all the attempts, if any. |
|
# |
sub get_previous_attempt { |
sub get_previous_attempt { |
my ($symb,$username,$domain,$course)=@_; |
my ($symb,$username,$domain,$course,$getattempt)=@_; |
my $prevattempts=''; |
my $prevattempts=''; |
if ($symb) { |
if ($symb) { |
my (%returnhash)= |
my (%returnhash)= |
Line 784 sub get_previous_attempt {
|
Line 796 sub get_previous_attempt {
|
$lasthash{$_}=$returnhash{$version.':'.$_}; |
$lasthash{$_}=$returnhash{$version.':'.$_}; |
} |
} |
} |
} |
$prevattempts='<table border=2></tr><th>History</th>'; |
$prevattempts='<table border="0" width="100%"><tr><td bgcolor="#000000">'; |
|
$prevattempts.='<table border="0" width="100%"><tr bgcolor="#e6ffff"><td>History</td>'; |
foreach (sort(keys %lasthash)) { |
foreach (sort(keys %lasthash)) { |
my ($ign,@parts) = split(/\./,$_); |
my ($ign,@parts) = split(/\./,$_); |
if ($#parts > 0) { |
if ($#parts > 0) { |
my $data=$parts[-1]; |
my $data=$parts[-1]; |
pop(@parts); |
pop(@parts); |
$prevattempts.='<th>Part '.join('.',@parts).'<br />'.$data.'</th>'; |
$prevattempts.='<td>Part '.join('.',@parts).'<br />'.$data.' </td>'; |
} else { |
} else { |
if ($#parts == 0) { |
if ($#parts == 0) { |
$prevattempts.='<th>'.$parts[0].'</th>'; |
$prevattempts.='<th>'.$parts[0].'</th>'; |
Line 799 sub get_previous_attempt {
|
Line 812 sub get_previous_attempt {
|
} |
} |
} |
} |
} |
} |
for ($version=1;$version<=$returnhash{'version'};$version++) { |
if ($getattempt eq '') { |
$prevattempts.='</tr><tr><th>Attempt '.$version.'</th>'; |
for ($version=1;$version<=$returnhash{'version'};$version++) { |
foreach (sort(keys %lasthash)) { |
$prevattempts.='</tr><tr bgcolor="#ffffe6"><td>Transaction '.$version.'</td>'; |
my $value; |
foreach (sort(keys %lasthash)) { |
if ($_ =~ /timestamp/) { |
my $value; |
$value=scalar(localtime($returnhash{$version.':'.$_})); |
if ($_ =~ /timestamp/) { |
} else { |
$value=scalar(localtime($returnhash{$version.':'.$_})); |
$value=$returnhash{$version.':'.$_}; |
} else { |
} |
$value=$returnhash{$version.':'.$_}; |
$prevattempts.='<td>'.$value.'</td>'; |
} |
} |
$prevattempts.='<td>'.$value.' </td>'; |
|
} |
|
} |
} |
} |
$prevattempts.='</tr><tr><th>Current</th>'; |
$prevattempts.='</tr><tr bgcolor="#ffffe6"><td>Current</td>'; |
foreach (sort(keys %lasthash)) { |
foreach (sort(keys %lasthash)) { |
my $value; |
my $value; |
if ($_ =~ /timestamp/) { |
if ($_ =~ /timestamp/) { |
Line 819 sub get_previous_attempt {
|
Line 834 sub get_previous_attempt {
|
} else { |
} else { |
$value=$lasthash{$_}; |
$value=$lasthash{$_}; |
} |
} |
$prevattempts.='<td>'.$value.'</td>'; |
$prevattempts.='<td>'.$value.' </td>'; |
} |
} |
$prevattempts.='</tr></table>'; |
$prevattempts.='</tr></table></td></tr></table>'; |
} else { |
} else { |
$prevattempts='Nothing submitted - no attempts.'; |
$prevattempts='Nothing submitted - no attempts.'; |
} |
} |
Line 930 sub add_to_env {
|
Line 945 sub add_to_env {
|
|
|
=pod |
=pod |
|
|
=back |
|
|
|
=head2 CSV Upload/Handling functions |
=head2 CSV Upload/Handling functions |
|
|
=over 4 |
=over 4 |