File:  [LON-CAPA] / loncom / homework / outputtags.pm
Revision 1.11: download - view: text, annotated - select for diffs
Mon Aug 13 20:51:04 2001 UTC (22 years, 8 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
- <displayduedate> and <displaytitle> are now visible in the editing mechanism.
  and have reasoanble displays

package Apache::outputtags; 

use strict;
use Apache::lonnet;
use POSIX qw(strftime);

sub BEGIN {
  &Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle'));
}

sub start_displayduedate {
  my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
  my $result;
  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");
    if ($date) {
       $result ='<table border="on"><tr><td>Due at '.
         POSIX::strftime($format,localtime($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,
				     &Apache::lonxml::description($token));
    $result.='</td></tr>';
    $result.=&Apache::edit::end_table();
  }
  return $result;
}

sub end_displayduedate {
  my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
  my @result;
  if ($target eq 'edit') { @result[1]='no'; }
  return @result;
}

sub start_displaytitle {
  my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
  my $result='';
  if ($target eq 'web') {
    $result="<h1>$Apache::lonhomework::name</h1>";
  } elsif ($target eq 'edit') {
    $result=&Apache::edit::tag_start($target,$token,
				     &Apache::lonxml::description($token));
    $result.='</td></tr>';
    $result.=&Apache::edit::end_table();
  }
  return $result;
}

sub end_displaytitle {
  my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
  my @result;
  if ($target eq 'edit') { @result[1]='no'; }
  return @result;
}

1;
__END__

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>