version 1.40, 2005/11/02 20:31:55
|
version 1.44, 2005/11/09 12:05:56
|
Line 36 use POSIX qw(strftime);
|
Line 36 use POSIX qw(strftime);
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto')); |
&Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto')); |
} |
} |
|
# Empties the hash of tags that have already been displayed |
|
# that should only be displayed once. |
|
# |
sub initialize_outputtags { |
sub initialize_outputtags { |
%Apache::outputtags::showonce=(); |
%Apache::outputtags::showonce=(); |
} |
} |
Line 52 sub start_displayduedate {
|
Line 54 sub start_displayduedate {
|
if (exists($Apache::outputtags::showonce{'displayduedate'})) { |
if (exists($Apache::outputtags::showonce{'displayduedate'})) { |
if (grep(/^\Q$Apache::inputtags::part\E$/, |
if (grep(/^\Q$Apache::inputtags::part\E$/, |
@{$Apache::outputtags::showonce{'displayduedate'}})) { |
@{$Apache::outputtags::showonce{'displayduedate'}})) { |
return ''; |
return ''; # Already shown the duedate for this part. |
} |
} |
} |
} |
|
# since we will show the duedate for this part, remember it. |
|
|
push (@{$Apache::outputtags::showonce{'displayduedate'}}, |
push (@{$Apache::outputtags::showonce{'displayduedate'}}, |
$Apache::inputtags::part); |
$Apache::inputtags::part); |
|
|
|
# Determine the due date format: |
|
# |
my $status=$Apache::inputtags::status['-1']; |
my $status=$Apache::inputtags::status['-1']; |
&Apache::lonxml::debug("got a $status in duedatebox"); |
&Apache::lonxml::debug("got a $status in duedatebox"); |
my $style = &Apache::lonxml::get_param('style',$parstack,$safeeval); |
my $style = &Apache::lonxml::get_param('style',$parstack,$safeeval); |
if (($status =~ /CAN.*_ANSWER/) && ($target eq 'web')) { |
my $format = &Apache::lonxml::get_param('format', $parstack, $safeeval); |
|
if (!$format) { |
|
$format = '%c'; |
|
} |
|
if (($status =~ /CAN.*_ANSWER/)) { |
my $id = $Apache::inputtags::part; |
my $id = $Apache::inputtags::part; |
my $date = &Apache::lonnet::EXT("resource.$id.duedate"); |
my $date = &Apache::lonnet::EXT("resource.$id.duedate"); |
&Apache::lonxml::debug("duedatebox found $date for $id"); |
&Apache::lonxml::debug("duedatebox found $date for $id"); |
Line 81 sub start_displayduedate {
|
Line 91 sub start_displayduedate {
|
} |
} |
|
|
if ($showduedate) { |
if ($showduedate) { |
if (lc($style) !~ 'plain') { |
my $duetext = &Apache::lonnavmaps::timeToHumanString($date, '', $format); |
$result ='<table border="on"><tr><td>Due '. |
if ($target eq 'web') { |
&Apache::lonnavmaps::timeToHumanString($date). |
if (lc($style) !~ 'plain') { |
'</td></tr></table>'; |
$result ='<table border="on"><tr><td>Due '.$duetext.'</td></tr></table>'; |
} else { |
} else { |
$result=&mt('Due').' '.&Apache::lonnavmaps::timeToHumanString($date); |
$result=&mt('Due').' '.$duetext; |
|
} |
|
} elsif ($target eq 'tex') { |
|
# For TeX we'll make the duedate tag work exactly like the |
|
# duedate tag for web. |
|
|
|
my $duetext = &Apache::lonnavmaps::timeToHumanString($date, '', $format); |
|
if (lc($style) !~ 'plain') { |
|
# The due date will be put in a box. |
|
|
|
$result = '\framebox{' |
|
.&mt('Due').' '.$duetext.'}'; |
|
} else { |
|
$result = &mt('Due') . ' '.$duetext; |
|
} |
} |
} |
} |
} |
} elsif ( $target eq 'edit' ) { |
|
|
} |
|
if ( $target eq 'edit' ) { |
$result=&Apache::edit::tag_start($target,$token); |
$result=&Apache::edit::tag_start($target,$token); |
$result.='</td></tr>'; |
$result.='</td></tr>'; |
$result.=&Apache::edit::end_table(); |
$result.=&Apache::edit::end_table(); |
|
|
} |
} |
return $result; |
return $result; |
} |
} |