Diff for /loncom/interface/loncommon.pm between versions 1.15 and 1.16

version 1.15, 2001/12/11 23:38:28 version 1.16, 2001/12/13 01:31:39
Line 27 Line 27
 #  #
 # YEAR=2001  # YEAR=2001
 # 2/13-12/7 Guy Albertelli  # 2/13-12/7 Guy Albertelli
 # 12/11 Scott Harrison  # 12/11,12/12 Scott Harrison
   
 # Makes a table out of the previous attempts  # Makes a table out of the previous attempts
 # Inputs result_from_symbread, user, domain, course_id  # Inputs result_from_symbread, user, domain, course_id
   # Reads in non-network-related .tab files
   
 package Apache::loncommon;  package Apache::loncommon;
   
Line 50  sub BEGIN { Line 51  sub BEGIN {
     {      {
  my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.   my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
  '/language.tab');   '/language.tab');
  while (<$fh>) {   if ($fh) {
     next if /^\#/;      while (<$fh>) {
     chomp;   next if /^\#/;
     my ($key,$val)=(split(/\s+/,$_,2));   chomp;
     $language{$key}=$val;   my ($key,$val)=(split(/\s+/,$_,2));
    $language{$key}=$val;
       }
  }   }
     }      }
 # ------------------------------------------------------------------ copyrights  # ------------------------------------------------------------------ copyrights
     {      {
  my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.   my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonIncludes'}.
  '/copyright.tab');    '/copyright.tab');
  while (<$fh>) {   if ($fh) {
     next if /^\#/;      while (<$fh>) {
     chomp;   next if /^\#/;
     my ($key,$val)=(split(/\s+/,$_,2));   chomp;
     $cprtag{$key}=$val;   my ($key,$val)=(split(/\s+/,$_,2));
    $cprtag{$key}=$val;
       }
  }   }
     }      }
 # ------------------------------------------------------------- file categories  # ------------------------------------------------------------- file categories
     {      {
  my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.   my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
  '/filecategories.tab');    '/filecategories.tab');
  while (<$fh>) {   if ($fh) {
     next if /^\#/;      while (<$fh>) {
     chomp;   next if /^\#/;
     my ($key,$val)=(split(/\s+/,$_,2));   chomp;
     push @{$fc{$key}},$val;   my ($key,$val)=(split(/\s+/,$_,2));
    push @{$fc{$key}},$val;
       }
  }   }
     }      }
 # ------------------------------------------------------------------ file types  # ------------------------------------------------------------------ file types
     {      {
  my $fh=Apache::File->new("$perlvar{'lonTabDir'}/filetypes.tab");   my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
  while (<$fh>) {         '/filetypes.tab');
     next if (/^\#/);   if ($fh) {
     chomp;              while (<$fh>) {
     my ($ending,$emb,$descr)=split(/\s+/,$_,3);   next if (/^\#/);
     if ($descr ne '') {    chomp;
  $fe{$ending}=lc($emb);   my ($ending,$emb,$descr)=split(/\s+/,$_,3);
  $fd{$ending}=join(' ',@descr);   if ($descr ne '') { 
       $fe{$ending}=lc($emb);
       $fd{$ending}=$descr;
    }
     }      }
  }   }
     }      }
Line 96  sub BEGIN { Line 106  sub BEGIN {
   
 # ---------------------------------------------------------------- Language IDs  # ---------------------------------------------------------------- Language IDs
 sub languageids {  sub languageids {
     return keys(%language);      return sort(keys(%language));
 }  }
   
 # -------------------------------------------------------- Language Description  # -------------------------------------------------------- Language Description
 sub languagedescription {  sub languagedescription {
     return $language{shift};      return $language{shift(@_)};
 }  }
   
 # --------------------------------------------------------------- Copyright IDs  # --------------------------------------------------------------- Copyright IDs
 sub copyrightids {  sub copyrightids {
     return keys(%cprtag);      return sort(keys(%cprtag));
 }  }
   
 # ------------------------------------------------------- Copyright Description  # ------------------------------------------------------- Copyright Description
 sub copyrightdescription {  sub copyrightdescription {
     return $cprtag{shift};      return $cprtag{shift(@_)};
 }  }
   
 # ------------------------------------------------------------- File Categories  # ------------------------------------------------------------- File Categories
 sub filecategories {  sub filecategories {
     return keys(%fc);      return sort(keys(%fc));
 }  }
   
 # ------------------------------------------------------------- File Categories  # ------------------------------------------------------------- File Categories
 sub filecategorytypes {  sub filecategorytypes {
     return @{$fc{lc(shift)}};      return @{$fc{lc(shift(@_))}};
 }  }
   
 # ------------------------------------------------------------------ File Types  # ------------------------------------------------------------------ File Types
 sub fileextensions {  sub fileextensions {
     return keys(%fe);      return sort(keys(%fe));
 }  }
   
 # ------------------------------------------------------------- Embedding Style  # ------------------------------------------------------------- Embedding Style
 sub fileembstyle {  sub fileembstyle {
     return $fe{lc(shift)};      return $fe{lc(shift(@_))};
 }  }
   
 # ------------------------------------------------------------ Description Text  # ------------------------------------------------------------ Description Text
 sub filedescription {  sub filedescription {
     return $fd{lc(shift)};      return $fd{lc(shift(@_))};
   }
   
   # ------------------------------------------------------------ Description Text
   sub filedescriptionex {
       my $ex=shift;
       return '.'.$ex.' '.$fd{lc($ex)};
 }  }
   
 sub get_previous_attempt {  sub get_previous_attempt {
Line 154  sub get_previous_attempt { Line 170  sub get_previous_attempt {
         } sort(split(/\:/,$returnhash{$version.':keys'}));          } sort(split(/\:/,$returnhash{$version.':keys'}));
       }        }
       $prevattempts='<table border=2></tr><th>History</th>';        $prevattempts='<table border=2></tr><th>History</th>';
       map {        foreach (sort(keys %lasthash)) {
         $prevattempts.='<th>'.$_.'</th>';          $prevattempts.='<th>'.$_.'</th>';
       } sort(keys %lasthash);        }
       for ($version=1;$version<=$returnhash{'version'};$version++) {        for ($version=1;$version<=$returnhash{'version'};$version++) {
         $prevattempts.='</tr><tr><th>Attempt '.$version.'</th>';          $prevattempts.='</tr><tr><th>Attempt '.$version.'</th>';
         map {          foreach (sort(keys %lasthash)) {
   my $value;    my $value;
   if ($_ =~ /timestamp/) {    if ($_ =~ /timestamp/) {
     $value=scalar(localtime($returnhash{$version.':'.$_}));      $value=scalar(localtime($returnhash{$version.':'.$_}));
Line 167  sub get_previous_attempt { Line 183  sub get_previous_attempt {
     $value=$returnhash{$version.':'.$_};      $value=$returnhash{$version.':'.$_};
   }    }
   $prevattempts.='<td>'.$value.'</td>';       $prevattempts.='<td>'.$value.'</td>';   
         } sort(keys %lasthash);          }
       }        }
       $prevattempts.='</tr><tr><th>Current</th>';        $prevattempts.='</tr><tr><th>Current</th>';
       map {        foreach (sort(keys %lasthash)) {
  my $value;   my $value;
  if ($_ =~ /timestamp/) {   if ($_ =~ /timestamp/) {
   $value=scalar(localtime($lasthash{$_}));    $value=scalar(localtime($lasthash{$_}));
Line 178  sub get_previous_attempt { Line 194  sub get_previous_attempt {
   $value=$lasthash{$_};    $value=$lasthash{$_};
  }   }
  $prevattempts.='<td>'.$value.'</td>';   $prevattempts.='<td>'.$value.'</td>';
       } sort(keys %lasthash);        }
       $prevattempts.='</tr></table>';        $prevattempts.='</tr></table>';
     } else {      } else {
       $prevattempts='Nothing submitted - no attempts.';        $prevattempts='Nothing submitted - no attempts.';
Line 241  sub get_student_answers { Line 257  sub get_student_answers {
   
 sub get_unprocessed_cgi {  sub get_unprocessed_cgi {
   my ($query)= @_;    my ($query)= @_;
   map {    foreach (split(/&/,$query)) {
     my ($name, $value) = split(/=/,$_);      my ($name, $value) = split(/=/,$_);
     $value =~ tr/+/ /;      $value =~ tr/+/ /;
     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
     if (!defined($ENV{'form.'.$name})) { $ENV{'form.'.$name}=$value; }      if (!defined($ENV{'form.'.$name})) { $ENV{'form.'.$name}=$value; }
   } (split(/&/,$query));    }
 }  }
   
 sub cacheheader {  sub cacheheader {

Removed from v.1.15  
changed lines
  Added in v.1.16


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