Diff for /loncom/interface/lonnavmaps.pm between versions 1.283 and 1.284

version 1.283, 2004/08/29 15:40:14 version 1.284, 2004/08/30 18:45:52
Line 4033  sub extractParts { Line 4033  sub extractParts {
         }          }
                   
   
           # These hashes probably do not need names that end with "Hash"....
         my %responseIdHash;          my %responseIdHash;
         my %responseTypeHash;          my %responseTypeHash;
   
Line 4048  sub extractParts { Line 4049  sub extractParts {
         # So we have to use our knowlege of part names to figure out           # So we have to use our knowlege of part names to figure out 
         # where the part names begin and end, and even then, it is possible          # where the part names begin and end, and even then, it is possible
         # to construct ambiguous situations.          # to construct ambiguous situations.
           #
           my %response_type_by_id;
         foreach (split /,/, $metadata) {          foreach (split /,/, $metadata) {
             if ($_ =~ /^([a-zA-Z]+)response_(.*)/) {              if ($_ =~ /^([a-zA-Z]+)response_(.*)/) {
                 my $responseType = $1;                  my $responseType = $1;
Line 4063  sub extractParts { Line 4066  sub extractParts {
                         my $responseId = join('_', @otherChunks);                          my $responseId = join('_', @otherChunks);
                         push @{$responseIdHash{$partIdSoFar}}, $responseId;                          push @{$responseIdHash{$partIdSoFar}}, $responseId;
                         push @{$responseTypeHash{$partIdSoFar}}, $responseType;                          push @{$responseTypeHash{$partIdSoFar}}, $responseType;
                           $response_type_by_id{$responseId} = $responseType;
                     }                      }
                 }                  }
             }              }
         }          }
  my $resorder = &Apache::lonnet::metadata($self->src(),'responseorder');   my $resorder = &Apache::lonnet::metadata($self->src(),'responseorder');
           #
           # Reorder the arrays in the %responseIdHash and %responseTypeHash
  if ($resorder) {   if ($resorder) {
     my @resorder=split(/,/,$resorder);      my @resorder=split(/,/,$resorder);
     foreach my $part (keys(%responseIdHash)) {      foreach my $part (keys(%responseIdHash)) {
Line 4081  sub extractParts { Line 4087  sub extractParts {
  $responseIdHash{$part}=\@neworder;   $responseIdHash{$part}=\@neworder;
     }      }
  }   }
           #
           # Reorder the response types
           foreach my $partid (keys(%responseIdHash)) {
               delete($responseTypeHash{$partid});
               foreach my $respid (@{$responseIdHash{$partid}}) {
                   push(@{$responseTypeHash{$partid}},
                        $response_type_by_id{$respid});
               }
           }
         $self->{RESPONSE_IDS} = \%responseIdHash;          $self->{RESPONSE_IDS} = \%responseIdHash;
         $self->{RESPONSE_TYPES} = \%responseTypeHash;          $self->{RESPONSE_TYPES} = \%responseTypeHash;
     }      }

Removed from v.1.283  
changed lines
  Added in v.1.284


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