Annotation of loncom/interface/loncommon.pm, revision 1.7

1.1       albertel    1: # The LearningOnline Network
                      2: # a pile of common routines
                      3: # 2/13 Guy Albertelli
                      4: 
                      5: # Makes a table out of the previous attempts
1.2       albertel    6: # Inputs result_from_symbread, user, domain, course_id
1.1       albertel    7: 
                      8: package Apache::loncommon;
                      9: 
                     10: use strict;
                     11: use Apache::Constants qw(:common);
                     12: use Apache::lonmsg();
                     13: 
                     14: sub get_previous_attempt {
1.2       albertel   15:   my ($symb,$username,$domain,$course)=@_;
1.1       albertel   16:   my $prevattempts='';
                     17:   if ($symb) {
1.3       albertel   18:     my (%returnhash)=
                     19:       &Apache::lonnet::restore($symb,$course,$domain,$username);
1.1       albertel   20:     if ($returnhash{'version'}) {
                     21:       my %lasthash=();
                     22:       my $version;
                     23:       for ($version=1;$version<=$returnhash{'version'};$version++) {
                     24:         map {
                     25: 	  $lasthash{$_}=$returnhash{$version.':'.$_};
1.4       albertel   26:         } sort(split(/\:/,$returnhash{$version.':keys'}));
1.1       albertel   27:       }
                     28:       $prevattempts='<table border=2></tr><th>History</th>';
                     29:       map {
                     30:         $prevattempts.='<th>'.$_.'</th>';
1.4       albertel   31:       } sort(keys %lasthash);
1.1       albertel   32:       for ($version=1;$version<=$returnhash{'version'};$version++) {
                     33:         $prevattempts.='</tr><tr><th>Attempt '.$version.'</th>';
                     34:         map {
1.5       albertel   35: 	  my $value;
                     36: 	  if ($_ =~ /timestamp/) {
                     37: 	    $value=scalar(localtime($returnhash{$version.':'.$_}));
                     38: 	  } else {
                     39: 	    $value=$returnhash{$version.':'.$_};
                     40: 	  }
                     41: 	  $prevattempts.='<td>'.$value.'</td>';   
1.4       albertel   42:         } sort(keys %lasthash);
1.1       albertel   43:       }
                     44:       $prevattempts.='</tr><tr><th>Current</th>';
                     45:       map {
1.5       albertel   46: 	my $value;
                     47: 	if ($_ =~ /timestamp/) {
                     48: 	  $value=scalar(localtime($lasthash{$_}));
                     49: 	} else {
                     50: 	  $value=$lasthash{$_};
                     51: 	}
                     52: 	$prevattempts.='<td>'.$value.'</td>';
1.4       albertel   53:       } sort(keys %lasthash);
1.1       albertel   54:       $prevattempts.='</tr></table>';
                     55:     } else {
                     56:       $prevattempts='Nothing submitted - no attempts.';
                     57:     }
                     58:   } else {
                     59:     $prevattempts='No data.';
                     60:   }
                     61: }
                     62: 
1.6       albertel   63: sub get_unprocessed_cgi {
                     64:   my ($query)= @_;
                     65:   map {
                     66:     my ($name, $value) = split(/=/,$_);
                     67:     $value =~ tr/+/ /;
                     68:     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
                     69:     if (!defined($ENV{'form.'.$name})) { $ENV{'form.'.$name}=$value; }
                     70:   } (split(/&/,$query));
                     71: }
                     72: 
1.7     ! albertel   73: sub cacheheader {
        !            74:   my $date=localtime;
        !            75:   my $output .='<meta HTTP-EQUIV="Expires" CONTENT="'.$date.'" />
        !            76:                 <meta HTTP-EQUIV="Cache-control" CONTENT="no-cache" />
        !            77:                 <meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />';
        !            78:   return $output;
        !            79: }
        !            80: 
1.1       albertel   81: 1;
                     82: __END__;

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