Diff for /loncom/interface/multidownload.pl between versions 1.24 and 1.25

version 1.24, 2007/05/05 17:26:27 version 1.25, 2007/05/05 18:51:49
Line 43  use Apache::lonnet; Line 43  use Apache::lonnet;
 use LONCAPA::Enrollment;  use LONCAPA::Enrollment;
 use strict;  use strict;
   
   sub is_flat {
       my ($partlist, $res) = @_;
       my $flat_part = 1;
       my $flat_resp = 1;
       if (scalar(@$partlist) > 1) {
           $flat_part = 0;
       }
       foreach my $partid (@$partlist) {
           my @ids = $res->responseIds($partid);
           if (scalar(@ids) > 1 ) {
               $flat_resp = 0;
           }
       }
       return ($flat_part, $flat_resp);
   }
   sub get_part_resp_path {
       my ($flat_part, $flat_resp, $part_id, $resp_id) = @_;
       my $part_resp_path = "";
       if (!$flat_part) {
           $part_resp_path = "part$part_id/";
       } 
       if (!$flat_resp) {
           $part_resp_path .= "resp$resp_id/";
       }
       $part_resp_path =~ s/\/^//; 
       return('/'.$part_resp_path);
   }
 $|=1;  $|=1;
 if (! &LONCAPA::loncgi::check_cookie_and_load_env()) {  if (! &LONCAPA::loncgi::check_cookie_and_load_env()) {
     print <<END;      print <<END;
Line 72  if (&Apache::lonnet::allowed('vgr',$scop Line 99  if (&Apache::lonnet::allowed('vgr',$scop
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
     my $res = $navmap->getBySymb($symb);      my $res = $navmap->getBySymb($symb);
     my $partlist = $res->parts();      my $partlist = $res->parts();
       my ($flat_part, $flat_resp) = &is_flat($partlist, $res);
     my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/);      my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/);
     $zipout =~ s/\s/_/g;      $zipout =~ s/\s/_/g;
     $zipout .= "$identifier.zip";      $zipout .= "$identifier.zip";
Line 94  if (&Apache::lonnet::allowed('vgr',$scop Line 122  if (&Apache::lonnet::allowed('vgr',$scop
         my %record = &Apache::lonnet::restore($symb,$courseid,$studom,$stuname);          my %record = &Apache::lonnet::restore($symb,$courseid,$studom,$stuname);
         my $file_url = '/uploaded/'.$studom.'/'.$stuname.'/portfolio';          my $file_url = '/uploaded/'.$studom.'/'.$stuname.'/portfolio';
         print MANIFEST $fullname."\n";          print MANIFEST $fullname."\n";
            
         foreach my $partid (@$partlist) {          foreach my $partid (@$partlist) {
             my @ids = $res->responseIds($partid);              my @ids = $res->responseIds($partid);
             foreach my $respid(@ids) {              foreach my $respid(@ids) {
                 &mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path/$stuname/part$partid/resp$respid",0,0700);                  my $part_resp_path = &get_part_resp_path($flat_part,$flat_resp, $partid, $respid);
                   &mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path/$stuname/$part_resp_path",0,0700);
                 foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) {                  foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) {
                     $file = $file_url.$file;                      $file = $file_url.$file;
                     my ($file_name_only) = ($file =~ /^.*\/(.+$)/);                      my ($file_name_only) = ($file =~ /^.*\/(.+$)/);
                     print MANIFEST "\t$file_name_only \n";                      print MANIFEST "\t$file_name_only \n";
                     &Apache::lonnet::repcopy($file);                      &Apache::lonnet::repcopy($file);
                     my $source = &Apache::lonnet::filelocation("",$file);                      my $source = &Apache::lonnet::filelocation("",$file);
                     my $destination = "$doc_zip_root/zipdir/$unique_user/$unique_path/$stuname/part$partid/resp$respid/$file_name_only";                      
                       my $destination = "$doc_zip_root/zipdir/$unique_user/$unique_path/$stuname$part_resp_path/$file_name_only";
                     if (exists($files_saved{$destination})) {                      if (exists($files_saved{$destination})) {
                         # file has already been saved once                          # file has already been saved once
                         my ($file_name,$file_ext) = ($destination =~ /(^.*)(\..+$)/);                          my ($file_name,$file_ext) = ($destination =~ /(^.*)(\..+$)/);
Line 122  if (&Apache::lonnet::allowed('vgr',$scop Line 153  if (&Apache::lonnet::allowed('vgr',$scop
                 }                  }
             }              }
         }          }
           
     }      }
           
     &mkpath($doc_zip_root."/zipout/$unique_user",0,0700);      &mkpath($doc_zip_root."/zipout/$unique_user",0,0700);

Removed from v.1.24  
changed lines
  Added in v.1.25


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