Diff for /loncom/imspackages/imsprocessor.pm between versions 1.53 and 1.54

version 1.53, 2013/08/02 12:56:26 version 1.54, 2014/12/11 01:12:14
Line 387  sub parse_manifest { Line 387  sub parse_manifest {
     );      );
     $p->parse_file($xmlfile);      $p->parse_file($xmlfile);
     $p->eof;      $p->eof;
     foreach my $itm (keys %contents) {      foreach my $itm (keys(%contents)) {
         @{$$items{$itm}{contents}} = @{$contents{$itm}};          @{$$items{$itm}{contents}} = @{$contents{$itm}};
     }      }
 }  }
Line 438  sub target_resources { Line 438  sub target_resources {
 sub copy_resources {  sub copy_resources {
     my ($context,$cms,$hrefs,$resources,$tempdir,$targets,$url,$crs,$cdom,$destdir,$timenow,$assessmentfiles,$total) = @_;      my ($context,$cms,$hrefs,$resources,$tempdir,$targets,$url,$crs,$cdom,$destdir,$timenow,$assessmentfiles,$total) = @_;
     if ($context eq 'DOCS') {      if ($context eq 'DOCS') {
         foreach my $key (sort keys %{$hrefs}) {          foreach my $key (sort(keys(%{$hrefs}))) {
             if (grep/^$key$/,@{$targets}) {              if (grep/^$key$/,@{$targets}) {
                 %{$$url{$key}} = ();                  %{$$url{$key}} = ();
                 foreach my $file (@{$$hrefs{$key}}) {                  foreach my $file (@{$$hrefs{$key}}) {
Line 617  sub process_resinfo { Line 617  sub process_resinfo {
     }      }
     if ($cms eq 'angel5') {      if ($cms eq 'angel5') {
         my $currboard = '';          my $currboard = '';
         foreach my $key (sort keys %{$resources}) {          foreach my $key (sort(keys(%{$resources}))) {
           if (grep/^$key$/,@{$targets}) {            if (grep/^$key$/,@{$targets}) {
             if ($$resources{$key}{type} eq "BOARD") {              if ($$resources{$key}{type} eq "BOARD") {
                 push @{$boards}, $key;                  push @{$boards}, $key;
Line 646  sub process_resinfo { Line 646  sub process_resinfo {
           }            }
         }          }
     } elsif ($cms eq 'bb5' || $cms eq 'bb6') {      } elsif ($cms eq 'bb5' || $cms eq 'bb6') {
         foreach my $key (sort keys %{$resources}) {          foreach my $key (sort(keys(%{$resources}))) {
           if (grep/^$key$/,@{$targets}) {            if (grep/^$key$/,@{$targets}) {
             if ($$resources{$key}{type} eq "resource/x-bb-document") {              if ($$resources{$key}{type} eq "resource/x-bb-document") {
                 unless ($$items{$$resources{$key}{revitm}}{filepath} eq 'Top') {                  unless ($$items{$$resources{$key}{revitm}}{filepath} eq 'Top') {
Line 714  sub process_resinfo { Line 714  sub process_resinfo {
             $$items{'Top'}{'contentscount'} ++;              $$items{'Top'}{'contentscount'} ++;
         }          }
     } elsif ($cms eq 'webctce4') {      } elsif ($cms eq 'webctce4') {
         foreach my $key (sort keys %{$resources}) {          foreach my $key (sort(keys(%{$resources}))) {
             if (grep/^$key$/,@{$targets}) {              if (grep/^$key$/,@{$targets}) {
                 if ($$resources{$key}{type} eq "webcontent") {                  if ($$resources{$key}{type} eq "webcontent") {
                     %{$$resinfo{$key}} = ();                      %{$$resinfo{$key}} = ();
Line 729  sub process_resinfo { Line 729  sub process_resinfo {
             }              }
         }          }
     } elsif ($cms eq 'webctvista4') {      } elsif ($cms eq 'webctvista4') {
         foreach my $key (sort keys %{$resources}) {          foreach my $key (sort(keys(%{$resources}))) {
             if (grep/^$key$/,@{$targets}) {              if (grep/^$key$/,@{$targets}) {
                 %{$$resinfo{$key}} = ();                  %{$$resinfo{$key}} = ();
                 if ($$resources{$key}{type} eq 'webct.question') {                  if ($$resources{$key}{type} eq 'webct.question') {
Line 816  sub build_structure { Line 816  sub build_structure {
         $srcstem = "/res/$udom/$uname/$newdir";          $srcstem = "/res/$udom/$uname/$newdir";
     }      }
   
     foreach my $key (sort keys %{$items}) {      foreach my $key (sort(keys(%{$items}))) {
       if ($$includeditems{$key}) {        if ($$includeditems{$key}) {
         %{$flag{$key}} = (          %{$flag{$key}} = (
                           page => 0,                            page => 0,
Line 1034  sub build_structure { Line 1034  sub build_structure {
         $filestem = "/res/$udom/$uname/$newdir";          $filestem = "/res/$udom/$uname/$newdir";
     }      }
   
     foreach my $key (sort keys %pagecontents) {      foreach my $key (sort(keys(%pagecontents))) {
         for (my $i=0; $i<@{$pagecontents{$key}}; $i++) {          for (my $i=0; $i<@{$pagecontents{$key}}; $i++) {
             my $filename = $destdir.'/pages/'.$key.'_'.$i.'.page';              my $filename = $destdir.'/pages/'.$key.'_'.$i.'.page';
             my $resource = "$filestem/resfiles/$$items{$pagecontents{$key}[$i][0]}{resnum}.html";              my $resource = "$filestem/resfiles/$$items{$pagecontents{$key}[$i][0]}{resnum}.html";
Line 1350  sub process_user { Line 1350  sub process_user {
   my $configvars = &LONCAPA::Configuration::read_conf('loncapa.conf');    my $configvars = &LONCAPA::Configuration::read_conf('loncapa.conf');
   my $xmlstem =  $$configvars{'lonDaemons'}."/tmp/".$user_cdom."_".$user_crs."_";    my $xmlstem =  $$configvars{'lonDaemons'}."/tmp/".$user_cdom."_".$user_crs."_";
   
   foreach my $user_id (keys %{$settings}) {    foreach my $user_id (keys(%{$settings})) {
       if ($$settings{$user_id}{user_role} eq "s") {        if ($$settings{$user_id}{user_role} eq "s") {
                         
       } elsif ($user_handling eq 'enrollall') {        } elsif ($user_handling eq 'enrollall') {
Line 1870  sub addposting { Line 1870  sub addposting {
          &Apache::lonnet::put('discussiontimes',\%storenewentry,$cdom,$crs);           &Apache::lonnet::put('discussiontimes',\%storenewentry,$cdom,$crs);
     }      }
     my %record=&Apache::lonnet::restore('_discussion');      my %record=&Apache::lonnet::restore('_discussion');
     my ($temp)=keys %record;      my ($temp)=keys(%record);
     unless ($temp=~/^error\:/) {      unless ($temp=~/^error\:/) {
         my %newrecord=();          my %newrecord=();
         $newrecord{'resource'}=$symb;          $newrecord{'resource'}=$symb;
Line 3263  sub parse_webct4_questionDB { Line 3263  sub parse_webct4_questionDB {
     $p->parse_file($xmlfile);      $p->parse_file($xmlfile);
     $p->eof;      $p->eof;
     my $boxcount;      my $boxcount;
     foreach my $id (keys %{$settings}) {      foreach my $id (keys(%{$settings})) {
         if ($$settings{$id}{class} eq 'string') {          if ($$settings{$id}{class} eq 'string') {
             $boxcount = 0;              $boxcount = 0;
             if (@{$$settings{$id}{boxes}} > 1) {              if (@{$$settings{$id}{boxes}} > 1) {
Line 3340  sub process_assessment { Line 3340  sub process_assessment {
         }          }
     } elsif ($cms eq 'webctvista4') {      } elsif ($cms eq 'webctvista4') {
         unless($$dbparse) {          unless($$dbparse) {
             foreach my $res (sort keys %{$allquestions}) {              foreach my $res (sort(keys(%{$allquestions}))) {
                 my $parent = $$allquestions{$res};                  my $parent = $$allquestions{$res};
                 &parse_webctvista4_question($res,$docroot,$resources,$hrefs,$qzdbsettings,\@allquestids,\%allanswers,\%allchoices,$parent,$catinfo);                  &parse_webctvista4_question($res,$docroot,$resources,$hrefs,$qzdbsettings,\@allquestids,\%allanswers,\%allchoices,$parent,$catinfo);
             }              }
Line 3389  sub build_category_sequences { Line 3389  sub build_category_sequences {
     if (!-e "$destdir/sequences") {      if (!-e "$destdir/sequences") {
         mkdir("$destdir/sequences",0755);          mkdir("$destdir/sequences",0755);
     }      }
     my $numcats = scalar(keys %{$catinfo});      my $numcats = scalar(keys(%{$catinfo}));
     my $curr_id = 0;      my $curr_id = 0;
     my $next_id = 1;      my $next_id = 1;
     my $fh;      my $fh;
     open($fh,">$destdir/sequences/question_database.sequence");      open($fh,">$destdir/sequences/question_database.sequence");
     push @{$sequencesfiles},'question_database.sequence';      push @{$sequencesfiles},'question_database.sequence';
     foreach my $category (sort keys %{$catinfo}) {      foreach my $category (sort(keys(%{$catinfo}))) {
         my $seqname;          my $seqname;
         if ($cms eq 'webctce4') {           if ($cms eq 'webctce4') { 
             $seqname = $$catinfo{$category}{title}.'_'.$category;              $seqname = $$catinfo{$category}{title}.'_'.$category;
Line 3962  sub write_webct4_questions { Line 3962  sub write_webct4_questions {
         }           } 
         if ($$settings{$id}{class} eq 'numerical') {          if ($$settings{$id}{class} eq 'numerical') {
             foreach my $numid (@{$$settings{$id}{numids}}) {              foreach my $numid (@{$$settings{$id}{numids}}) {
                 foreach my $var (keys %{$$settings{$id}{$numid}{vars}}) {                  foreach my $var (keys(%{$$settings{$id}{$numid}{vars}})) {
                     if ($cms eq 'webctce4') {                      if ($cms eq 'webctce4') {
                         $$settings{$id}{text} =~ s/{($var)}/\$$1 /g;                          $$settings{$id}{text} =~ s/{($var)}/\$$1 /g;
                     } elsif ($cms eq 'webctvista4') {                      } elsif ($cms eq 'webctvista4') {
Line 4449  $$settings{$id}{$list}{jumbledtext}[$k] Line 4449  $$settings{$id}{$list}{jumbledtext}[$k]
 |;  |;
                 foreach my $numid (@{$$settings{$id}{numids}}) {                  foreach my $numid (@{$$settings{$id}{numids}}) {
                     my $formula = $$settings{$id}{$numid}{formula};                      my $formula = $$settings{$id}{$numid}{formula};
                     my $pattern = join('|',(sort (keys (%mathfns))));                      my $pattern = join('|',(sort(keys(%mathfns))));
                     $formula =~ s/($pattern)/\&$mathfns{$1}/g;                      $formula =~ s/($pattern)/\&$mathfns{$1}/g;
                     foreach my $var (keys %{$$settings{$id}{$numid}{vars}}) {                      foreach my $var (keys(%{$$settings{$id}{$numid}{vars}})) {
                         my $decnum = $$settings{$id}{$numid}{vars}{$var}{dec};                          my $decnum = $$settings{$id}{$numid}{vars}{$var}{dec};
                         my $increment = '0.';                          my $increment = '0.';
                         if ($decnum == 0) {                          if ($decnum == 0) {
Line 5221  sub process_content { Line 5221  sub process_content {
                     if ($$settings{newwindow} eq "true") {                      if ($$settings{newwindow} eq "true") {
                         $linktag .= qq| target="$res$filecount"|;                          $linktag .= qq| target="$res$filecount"|;
                     }                      }
                     foreach my $entry (keys %{$$settings{files}[$filecount]{registry}}) {                      foreach my $entry (keys(%{$$settings{files}[$filecount]{registry}})) {
                         $linktag .= qq| $entry="$$settings{files}[$filecount]{registry}{$entry}"|;                          $linktag .= qq| $entry="$$settings{files}[$filecount]{registry}{$entry}"|;
                     }                      }
                       $linktag .= qq|>$$settings{files}[$filecount]{linkname}</a><br/>\n|;                        $linktag .= qq|>$$settings{files}[$filecount]{linkname}</a><br/>\n|;

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


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