version 1.580, 2007/09/07 19:51:41
|
version 1.582, 2007/09/11 20:36:30
|
Line 2563 sub preferred_languages {
|
Line 2563 sub preferred_languages {
|
return @genlanguages; |
return @genlanguages; |
} |
} |
|
|
|
sub languages { |
|
my ($possible_langs) = @_; |
|
my @preferred_langs = &preferred_languages(); |
|
if (!ref($possible_langs)) { |
|
if( wantarray ) { |
|
return @preferred_langs; |
|
} else { |
|
return $preferred_langs[0]; |
|
} |
|
} |
|
my %possibilities = map { $_ => 1 } (@$possible_langs); |
|
my @preferred_possibilities; |
|
foreach my $preferred_lang (@preferred_langs) { |
|
if (exists($possibilities{$preferred_lang})) { |
|
push(@preferred_possibilities, $preferred_lang); |
|
} |
|
} |
|
if( wantarray ) { |
|
return @preferred_possibilities; |
|
} |
|
return $preferred_possibilities[0]; |
|
} |
|
|
############################################################### |
############################################################### |
## Student Answer Attempts ## |
## Student Answer Attempts ## |
############################################################### |
############################################################### |
Line 2637 sub get_previous_attempt {
|
Line 2660 sub get_previous_attempt {
|
for ($version=1;$version<=$returnhash{'version'};$version++) { |
for ($version=1;$version<=$returnhash{'version'};$version++) { |
$prevattempts.='</tr><tr bgcolor="#ffffe6"><td>Transaction '.$version.'</td>'; |
$prevattempts.='</tr><tr bgcolor="#ffffe6"><td>Transaction '.$version.'</td>'; |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
my $value; |
my $value = &format_previous_attempt_value($key, |
if ($key =~ /timestamp/) { |
$returnhash{$version.':'.$key}); |
$value=scalar(localtime($returnhash{$version.':'.$key})); |
$prevattempts.='<td>'.$value.' </td>'; |
} else { |
|
$value=$returnhash{$version.':'.$key}; |
|
} |
|
$prevattempts.='<td>'.&unescape($value).' </td>'; |
|
} |
} |
} |
} |
} |
} |
$prevattempts.='</tr><tr bgcolor="#ffffe6"><td>Current</td>'; |
$prevattempts.='</tr><tr bgcolor="#ffffe6"><td>Current</td>'; |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
my $value; |
my $value = &format_previous_attempt_value($key,$lasthash{$key}); |
if ($key =~ /timestamp/) { |
|
$value=scalar(localtime($lasthash{$key})); |
|
} else { |
|
$value=$lasthash{$key}; |
|
} |
|
$value=&unescape($value); |
|
if ($key =~/$regexp$/ && (defined &$gradesub)) {$value = &$gradesub($value)} |
if ($key =~/$regexp$/ && (defined &$gradesub)) {$value = &$gradesub($value)} |
$prevattempts.='<td>'.$value.' </td>'; |
$prevattempts.='<td>'.$value.' </td>'; |
} |
} |
Line 2668 sub get_previous_attempt {
|
Line 2681 sub get_previous_attempt {
|
} |
} |
} |
} |
|
|
|
sub format_previous_attempt_value { |
|
my ($key,$value) = @_; |
|
if ($key =~ /timestamp/) { |
|
$value = &Apache::lonlocal::locallocaltime($value); |
|
} elsif (ref($value) eq 'ARRAY') { |
|
$value = '('.join(', ', @{ $value }).')'; |
|
} else { |
|
$value = &unescape($value); |
|
} |
|
return $value; |
|
} |
|
|
|
|
sub relative_to_absolute { |
sub relative_to_absolute { |
my ($url,$output)=@_; |
my ($url,$output)=@_; |
my $parser=HTML::TokeParser->new(\$output); |
my $parser=HTML::TokeParser->new(\$output); |