Diff for /loncom/interface/statistics/lonstathelpers.pm between versions 1.52 and 1.53

version 1.52, 2006/02/14 16:05:46 version 1.53, 2006/05/30 12:46:50
Line 60  use Time::Local(); Line 60  use Time::Local();
 use Spreadsheet::WriteExcel();  use Spreadsheet::WriteExcel();
 use GDBM_File;  use GDBM_File;
 use Storable qw(freeze thaw);  use Storable qw(freeze thaw);
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
    
   
 ####################################################  ####################################################
 ####################################################  ####################################################
Line 83  sub render_resource { Line 86  sub render_resource {
     ## Render the problem      ## Render the problem
     my ($base) = ($resource->src =~ m|^(.*/)[^/]*$|);      my ($base) = ($resource->src =~ m|^(.*/)[^/]*$|);
     $base="http://".$ENV{'SERVER_NAME'}.$base;      $base="http://".$ENV{'SERVER_NAME'}.$base;
     my ($src,$symb)=($resource->src,&Apache::lonnet::escape($resource->symb));      my ($src,$symb)=($resource->src,&escape($resource->symb));
     my $rendered_problem = &Apache::lonnet::ssi_body($src.'?symb='.$symb);      my $rendered_problem = &Apache::lonnet::ssi_body($src.'?symb='.$symb);
     $rendered_problem =~ s/<\s*form\s*/<nop /g;      $rendered_problem =~ s/<\s*form\s*/<nop /g;
     $rendered_problem =~ s|(<\s*/form\s*>)|<\/nop>|g;      $rendered_problem =~ s|(<\s*/form\s*>)|<\/nop>|g;
Line 169  sub problem_selector { Line 172  sub problem_selector {
                             $seq_str .= &mt('response').' '.$respid;                              $seq_str .= &mt('response').' '.$respid;
                         }                          }
                         my $link = $res->src.'?symb='.                          my $link = $res->src.'?symb='.
                             &Apache::lonnet::escape($res->symb);                              &escape($res->symb);
                         $seq_str .= ('&nbsp;'x2).                          $seq_str .= ('&nbsp;'x2).
                             qq{<a target="preview" href="$link">view</a>};                              qq{<a target="preview" href="$link">view</a>};
                         $seq_str .= "</td></tr>\n";                          $seq_str .= "</td></tr>\n";
Line 323  sub new_accumulator { Line 326  sub new_accumulator {
                 }                  }
                 $target .= 'id="'.$seq_id.':'.$item_id++.'" ';                  $target .= 'id="'.$seq_id.':'.$item_id++.'" ';
                 $target.=                   $target.= 
                     'value="'.&Apache::lonnet::escape($res->symb).'" />'.                      'value="'.&escape($res->symb).'" />'.
                     '&nbsp;'.$res->compTitle.'</label>'.                      '&nbsp;'.$res->compTitle.'</label>'.
                     ('&nbsp;'x2).'<a target="preview" '.                      ('&nbsp;'x2).'<a target="preview" '.
                     'href="'.$res->src.'?symb='.                      'href="'.$res->src.'?symb='.
                          &Apache::lonnet::escape($res->symb).'">view</a>'.                           &escape($res->symb).'">view</a>'.
                     '</td></tr>'.$/;                      '</td></tr>'.$/;
             } else {               } else { 
                 if (defined($target)) {                  if (defined($target)) {
Line 346  sub get_selected_symbs { Line 349  sub get_selected_symbs {
     my ($inputfield) = @_;      my ($inputfield) = @_;
     my $field = 'form.'.$inputfield;      my $field = 'form.'.$inputfield;
     my @symbs = (map {      my @symbs = (map {
                      &Apache::lonnet::unescape($_);                       &unescape($_);
                      } &Apache::loncommon::get_env_multiple($field));                       } &Apache::loncommon::get_env_multiple($field));
     return @symbs;      return @symbs;
 }  }
Line 373  Used by Apache::lonstathelpers::ProblemS Line 376  Used by Apache::lonstathelpers::ProblemS
 ####################################################  ####################################################
 sub make_target_id {  sub make_target_id {
     my ($target) = @_;      my ($target) = @_;
     my $id = &Apache::lonnet::escape($target->{'symb'}).':'.      my $id = &escape($target->{'symb'}).':'.
              &Apache::lonnet::escape($target->{'part'}).':'.               &escape($target->{'part'}).':'.
              &Apache::lonnet::escape($target->{'respid'}).':'.               &escape($target->{'respid'}).':'.
              &Apache::lonnet::escape($target->{'resptype'});               &escape($target->{'resptype'});
     return $id;      return $id;
 }  }
   
Line 401  sub get_target_from_id { Line 404  sub get_target_from_id {
     my ($id) = @_;      my ($id) = @_;
     if (! ref($id)) {      if (! ref($id)) {
         my ($symb,$part,$respid,$resptype) = split(':',$id);          my ($symb,$part,$respid,$resptype) = split(':',$id);
         return ({ symb     => &Apache::lonnet::unescape($symb),          return ({ symb     => &unescape($symb),
                   part     => &Apache::lonnet::unescape($part),                    part     => &unescape($part),
                   respid   => &Apache::lonnet::unescape($respid),                    respid   => &unescape($respid),
                   resptype => &Apache::lonnet::unescape($resptype)});                    resptype => &unescape($resptype)});
     } elsif (ref($id) eq 'ARRAY') {      } elsif (ref($id) eq 'ARRAY') {
         my @Return;          my @Return;
         foreach my $selected (@$id) {          foreach my $selected (@$id) {
             my ($symb,$part,$respid,$resptype) = split(':',$selected);              my ($symb,$part,$respid,$resptype) = split(':',$selected);
             push(@Return,{ symb     => &Apache::lonnet::unescape($symb),              push(@Return,{ symb     => &unescape($symb),
                            part     => &Apache::lonnet::unescape($part),                             part     => &unescape($part),
                            respid   => &Apache::lonnet::unescape($respid),                             respid   => &unescape($respid),
                            resptype => &Apache::lonnet::unescape($resptype)});                             resptype => &unescape($resptype)});
         }          }
         return \@Return;          return \@Return;
     }      }
Line 795  sub load_analysis_cache { Line 798  sub load_analysis_cache {
         my $storedstring;          my $storedstring;
         my %cache_db;          my %cache_db;
         if (tie(%cache_db,'GDBM_File',$cache_filename,&GDBM_READER(),0640)) {          if (tie(%cache_db,'GDBM_File',$cache_filename,&GDBM_READER(),0640)) {
             $storedstring = $cache_db{&Apache::lonnet::escape($symb)};              $storedstring = $cache_db{&escape($symb)};
             untie(%cache_db);              untie(%cache_db);
         }          }
         if (defined($storedstring)) {          if (defined($storedstring)) {
Line 847  Writes the in memory cache to disk so th Line 850  Writes the in memory cache to disk so th
 sub write_analysis_cache {  sub write_analysis_cache {
     return if (! defined($current_symb) || ! defined($cache_filename));      return if (! defined($current_symb) || ! defined($cache_filename));
     my %cache_db;      my %cache_db;
     my $key = &Apache::lonnet::escape($current_symb);      my $key = &escape($current_symb);
     if (tie(%cache_db,'GDBM_File',$cache_filename,&GDBM_WRCREAT(),0640)) {      if (tie(%cache_db,'GDBM_File',$cache_filename,&GDBM_WRCREAT(),0640)) {
         my $storestring = freeze(\%cache);          my $storestring = freeze(\%cache);
         $cache_db{$key}=$storestring;          $cache_db{$key}=$storestring;
Line 1310  sub manage_caches { Line 1313  sub manage_caches {
     my $sectionkey =       my $sectionkey = 
         join(',',          join(',',
              map {               map {
                      &Apache::lonnet::escape($_);                       &escape($_);
                  } sort(&Apache::lonstatistics::get_selected_sections())                   } sort(&Apache::lonstatistics::get_selected_sections())
              );               );
     my $statuskey = $Apache::lonstatistics::enrollment_status;      my $statuskey = $Apache::lonstatistics::enrollment_status;

Removed from v.1.52  
changed lines
  Added in v.1.53


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