version 1.43, 2005/11/08 12:00:22
|
version 1.55, 2009/05/14 10:57:40
|
Line 26
|
Line 26
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
|
|
|
|
|
|
package Apache::outputtags; |
package Apache::outputtags; |
|
|
use strict; |
use strict; |
Line 36 use POSIX qw(strftime);
|
Line 38 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 69 sub start_displayduedate {
|
Line 69 sub start_displayduedate {
|
my $style = &Apache::lonxml::get_param('style',$parstack,$safeeval); |
my $style = &Apache::lonxml::get_param('style',$parstack,$safeeval); |
my $format = &Apache::lonxml::get_param('format', $parstack, $safeeval); |
my $format = &Apache::lonxml::get_param('format', $parstack, $safeeval); |
if (!$format) { |
if (!$format) { |
$format = '%c'; |
$format = undef; |
} |
} |
if (($status =~ /CAN.*_ANSWER/)) { |
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::lonhomework::due_date($id); |
&Apache::lonxml::debug("duedatebox found $date for $id"); |
&Apache::lonxml::debug("duedatebox found $date for $id"); |
|
|
# Only show the due date if the current date is |
# Only show the due date if the current date is |
Line 91 sub start_displayduedate {
|
Line 91 sub start_displayduedate {
|
} |
} |
|
|
if ($showduedate) { |
if ($showduedate) { |
|
my $duetext = &Apache::lonnavmaps::timeToHumanString($date, '', $format); |
if ($target eq 'web') { |
if ($target eq 'web') { |
if (lc($style) !~ 'plain') { |
if (lc($style) !~ 'plain') { |
$result ='<table border="on"><tr><td>Due '. |
$result ='<table border="on"><tr><td>Due '.$duetext.'</td></tr></table>'; |
&Apache::lonnavmaps::timeToHumanString($date,'', $format). |
|
'</td></tr></table>'; |
|
} else { |
} else { |
$result=&mt('Due').' '.&Apache::lonnavmaps::timeToHumanString($date); |
$result=&mt('Due').' '.$duetext; |
} |
} |
} elsif ($target eq 'tex') { |
} 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. |
|
# at the start of the line to ensure it won't overlap |
|
# the 1 col boundary. |
|
|
|
$result = '\\\\ \framebox{' |
|
.&mt('Due').' '.$duetext.'}'; |
|
} else { |
|
$result = &mt('Due') . ' '.$duetext; |
|
} |
} |
} |
} |
} |
|
|
Line 158 sub end_displaytitle {
|
Line 171 sub end_displaytitle {
|
sub multipart { |
sub multipart { |
my ($uri)=@_; |
my ($uri)=@_; |
if (!defined($uri)) { $uri=$env{'request.uri'}; } |
if (!defined($uri)) { $uri=$env{'request.uri'}; } |
|
my ($symb)=&Apache::lonnet::whichuser(); |
|
|
my @parts; |
my @parts; |
my $metadata = &Apache::lonnet::metadata($uri,'packages'); |
my $metadata = &Apache::lonnet::metadata($uri,'packages'); |
foreach (split(/\,/,$metadata)) { |
foreach (split(/\,/,$metadata)) { |
if ($_ =~ /^part_(.*)$/) { |
if ($_ =~ /^part_(.*)$/) { |
my $part = $1; |
my $part = $1; |
if ($part ne '0') { push(@parts,$part); } |
if ($part ne '0' |
|
&& !&Apache::loncommon::check_if_partid_hidden($part, |
|
$symb)) { |
|
push(@parts,$part); |
|
} |
} |
} |
} |
} |
return @parts; |
return @parts; |
Line 219 sub end_displayweight {
|
Line 238 sub end_displayweight {
|
sub start_displaystudentphoto { |
sub start_displaystudentphoto { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
my (undef,undef,$domain,$user) = &Apache::lonxml::whichuser(); |
my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser(); |
if ($target eq 'web' && $user eq $env{'user.name'}) { |
if ($target eq 'web' && $user eq $env{'user.name'}) { |
my $url=&Apache::lonnet::studentphoto($domain,$user,"gif"); |
my $url=&Apache::lonnet::studentphoto($domain,$user,"gif"); |
my $args; |
my $args; |
Line 260 sub end_displaystudentphoto {
|
Line 279 sub end_displaystudentphoto {
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|
|
|
|
=head1 NAME |
|
|
|
Apache::outputtags; |
|
|
|
=head1 SYNOPSIS |
|
|
|
Handles tags associated with output. Seems to |
|
relate to due dates of the assignment. |
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
=head1 SUBROUTINES |
|
|
|
=over |
|
|
|
=item start_displayduedate() |
|
|
|
=item initialize_outputtags() |
|
|
|
Empties the hash of tags that have already been displayed that should only be displayed once. |
|
|
|
=item end_displayduedate() |
|
|
|
=item start_displaytitle() |
|
|
|
=item end_displaytitle() |
|
|
|
=item multipart() |
|
|
|
=item start_displayweight() |
|
|
|
=item end_displayweight() |
|
|
|
=item start_displaystudentphoto() |
|
|
|
=item end_displaystudentphoto() |
|
|
|
|
|
=back |
|
|
|
=cut |