version 1.19, 2002/08/19 19:06:02
|
version 1.27, 2003/05/02 19:10:43
|
Line 33 use Apache::lonnet;
|
Line 33 use Apache::lonnet;
|
use POSIX qw(strftime); |
use POSIX qw(strftime); |
|
|
BEGIN { |
BEGIN { |
&Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle')); |
&Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight')); |
|
} |
|
|
|
sub initialize_outputtags { |
|
%Apache::outputtags::showonce=(); |
} |
} |
|
|
sub start_displayduedate { |
sub start_displayduedate { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
my $status=$Apache::inputtags::status['-1']; |
if (exists($Apache::outputtags::showonce{'displayduedate'})) { |
&Apache::lonxml::debug("got a $status in duedatebox"); |
return ''; |
if (($status =~ /CAN.*_ANSWER/) && ($target eq 'web')) { |
|
my $format = &Apache::lonxml::get_param('format',$parstack,$safeeval); |
|
if ($format eq '') { |
|
&Apache::lonxml::debug("using default format"); |
|
$format="%c"; |
|
} |
|
my $id = $Apache::inputtags::part; |
|
my $date = &Apache::lonnet::EXT("resource.$id.duedate"); |
|
&Apache::lonxml::debug("duedatebox found $date for $id"); |
|
if ($date) { |
|
$result ='<table border="on"><tr><td>Due at '. |
|
POSIX::strftime($format,localtime($date)). |
|
'</td></tr></table>'; |
|
} else { |
} else { |
$result ='<table border="on"><tr><td>No due date set.</td></tr></table>'; |
$Apache::outputtags::showonce{'displayduedate'}=1; |
|
} |
|
my $status=$Apache::inputtags::status['-1']; |
|
&Apache::lonxml::debug("got a $status in duedatebox"); |
|
if (($status =~ /CAN.*_ANSWER/) && ($target eq 'web')) { |
|
# my $format = &Apache::lonxml::get_param('format',$parstack,$safeeval); |
|
# if ($format eq '') { |
|
# &Apache::lonxml::debug("using default format"); |
|
# $format="%c"; |
|
# } |
|
my $id = $Apache::inputtags::part; |
|
my $date = &Apache::lonnet::EXT("resource.$id.duedate"); |
|
&Apache::lonxml::debug("duedatebox found $date for $id"); |
|
$result ='<table border="on"><tr><td>Due '. |
|
&Apache::lonnavmaps::timeToHumanString($date). |
|
'</td></tr></table>'; |
|
# } else { |
|
# $result ='<table border="on"><tr><td>No due date set.</td></tr></table>'; |
|
# } |
|
} elsif ( $target eq 'edit' ) { |
|
$result=&Apache::edit::tag_start($target,$token); |
|
$result.='</td></tr>'; |
|
$result.=&Apache::edit::end_table(); |
} |
} |
} elsif ( $target eq 'edit' ) { |
return $result; |
$result=&Apache::edit::tag_start($target,$token); |
|
$result.='</td></tr>'; |
|
$result.=&Apache::edit::end_table(); |
|
} |
|
return $result; |
|
} |
} |
|
|
sub end_displayduedate { |
sub end_displayduedate { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my @result; |
my @result; |
if ($target eq 'edit') { $result[1]='no'; } |
if ($target eq 'edit') { $result[1]='no'; } |
return @result; |
return @result; |
} |
} |
|
|
sub start_displaytitle { |
sub start_displaytitle { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result=''; |
my $result=''; |
if ($target eq 'web') { |
if (exists($Apache::outputtags::showonce{'displayduetitle'})) { |
$result="<h1>$Apache::lonhomework::name</h1>"; |
return ''; |
} elsif ($target eq 'edit') { |
} else { |
$result=&Apache::edit::tag_start($target,$token); |
$Apache::outputtags::showonce{'displayduetitle'}=1; |
$result.='</td></tr>'; |
} |
$result.=&Apache::edit::end_table(); |
if ($target eq 'web') { |
} elsif ($target eq 'tex') { |
$result="<h1>$Apache::lonhomework::name</h1>"; |
$Apache::lonhomework::name=~s/%/\%/g; |
} elsif ($target eq 'edit') { |
$Apache::lonhomework::name=~s/&/\&/g; |
$result=&Apache::edit::tag_start($target,$token); |
$result='\vskip 0 mm\noindent\textbf{'.$Apache::lonhomework::name.'}\vskip 0 mm'; |
$result.='</td></tr>'; |
} |
$result.=&Apache::edit::end_table(); |
return $result; |
} elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') { |
|
$Apache::lonhomework::name=~s/%/\%/g; |
|
$Apache::lonhomework::name=~s/&/\&/g; |
|
$result='\vskip 0 mm\noindent\textbf{'.$Apache::lonhomework::name.'}\vskip 0 mm'; |
|
} |
|
return $result; |
} |
} |
|
|
sub end_displaytitle { |
sub end_displaytitle { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my @result; |
my @result; |
if ($target eq 'edit') { $result[1]='no'; } |
if ($target eq 'edit') { $result[1]='no'; } |
return @result; |
return @result; |
|
} |
|
|
|
sub start_displayweight { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
my $result; |
|
if (exists($Apache::outputtags::showonce{'displayweight'})) { |
|
if(grep(/^\Q$Apache::inputtags::part\E$/, |
|
@{$Apache::outputtags::showonce{'displayweight'}})) { |
|
return ''; |
|
} |
|
} |
|
push(@{$Apache::outputtags::showonce{'displayweight'}}, |
|
$Apache::inputtags::part); |
|
my $status=$Apache::inputtags::status['-1']; |
|
if ($target eq 'web' || $target eq 'tex') { |
|
my $id = $Apache::inputtags::part; |
|
if ($id ne '0') { |
|
my $weight = &Apache::lonnet::EXT("resource.$id.weight"); |
|
if (!defined($weight) || ($weight eq '')) { $weight=1; } |
|
$result.=$weight; |
|
} else { |
|
my $metadata = &Apache::lonnet::metadata($ENV{'request.uri'}, |
|
'packages'); |
|
&Apache::lonxml::debug("metadata for $ENV{'request.uri'} is $metadata"); |
|
my $weight; |
|
foreach (split(/\,/,$metadata)) { |
|
if ($_ =~ /^part_(.*)$/) { |
|
my $part = $1; |
|
my $pweight=&Apache::lonnet::EXT("resource.$part.weight"); |
|
if (!defined($pweight) || ($pweight eq '')) { $pweight=1; } |
|
$weight+=$pweight; |
|
} |
|
} |
|
$result=$weight; |
|
} |
|
} elsif ( $target eq 'edit' ) { |
|
$result=&Apache::edit::tag_start($target,$token); |
|
$result.='</td></tr>'; |
|
$result.=&Apache::edit::end_table(); |
|
} |
|
return $result; |
|
} |
|
|
|
sub end_displayweight { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
my @result; |
|
if ($target eq 'edit') { $result[1]='no'; } |
|
return @result; |
} |
} |
|
|
1; |
1; |