Diff for /loncom/interface/groupsort.pm between versions 1.54 and 1.55

version 1.54, 2007/07/11 20:32:15 version 1.55, 2007/07/11 23:51:19
Line 43  my $iconpath; # variable to be accessibl Line 43  my $iconpath; # variable to be accessibl
 my %hash; # variable to tie to user specific database  my %hash; # variable to tie to user specific database
   
   
   sub update_actions_hash {
       my ($hash) = @_;
       my $acts=$env{'form.acts'};
       my @Acts=split(/b/,$acts);
       my %ahash;
       my %achash;
       my $ac=0;
       # some initial hashes for working with data
       foreach (@Acts) {
    my ($state,$ref)=split(/a/);
    $ahash{$ref}=$state;
    $achash{$ref}=$ac;
    $ac++;
       }
       # sorting through the actions and changing the global database hash
       foreach my $key (sort {$achash{$a}<=>$achash{$b}} (keys %ahash)) {
    if ($ahash{$key} eq '1') {
       $hash->{'store_'.$hash{'pre_'.$key.'_link'}}=
    $hash->{'pre_'.$key.'_title'};
       $hash->{'storectr_'.$hash{'pre_'.$key.'_link'}}=
    $hash->{'storectr'}+0;
       $hash->{'storectr'}++;
    }
    if ($ahash{$key} eq '0') {
       if ($hash->{'store_'.$hash{'pre_'.$key.'_link'}}) {
    delete($hash->{'store_'.$hash{'pre_'.$key.'_link'}});
       }
    }
       }
       # deleting the previously cached listing
       foreach my $key (keys(%{ $hash })) {
    next if ($key !~ /^pre_(\d+)_link/);
    my $which = $1;
    delete($hash->{'pre_'.$which.'_title'});
    delete($hash->{'pre_'.$which.'_link'});
       }
   }
   
 sub readfromdb {  sub readfromdb {
     my ($r,$shash,$thash)=@_;      my ($r,$shash,$thash)=@_;
   
Line 51  sub readfromdb { Line 89  sub readfromdb {
   
 # ----------------------------- diropendb is now the filename of the db to open  # ----------------------------- diropendb is now the filename of the db to open
     if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) {      if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) {
  my $acts = $env{'form.acts'};   &update_actions_hash(\%hash);
  my @Acts = split(/b/,$acts);  
  my %ahash;  
  my %achash;  
  my $ac = 0;  
  foreach (@Acts) {  
     my ($state,$ref) = split(/a/);  
     $ahash{$ref} = $state;  
     $achash{$ref} = $ac;  
     $ac++;  
  }  
  foreach (sort {$achash{$a} <=> $achash{$b}} (keys %ahash)) {  
     my $key = $_;  
     if ($ahash{$key} eq '1') {  
         if ($hash{'pre_'.$key.'_title'} eq 'Not_retrieved') {  
             $hash{'pre_'.$key.'_title'} = &Apache::lonnet::gettitle($hash{'pre_'.$key.'_link'});  
         }  
  $hash{'store_'.$hash{'pre_'.$key.'_link'}} =  
     $hash{'pre_'.$key.'_title'};  
  $hash{'storectr_'.$hash{'pre_'.$key.'_link'}} =  
     $hash{'storectr'}+0;  
  $hash{'storectr'}++;  
     }  
     if ($ahash{$key} eq '0') {  
  if ($hash{'store_'.$hash{'pre_'.$key.'_link'}}) {  
     delete $hash{'store_'.$hash{'pre_'.$key.'_link'}};  
  }  
     }  
  }  
  foreach (keys %hash) {   foreach (keys %hash) {
     if ($_ =~ /^store_/) {      if ($_ =~ /^store_/) {
  my $key = $_;   my $key = $_;

Removed from v.1.54  
changed lines
  Added in v.1.55


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