Diff for /loncom/imspackages/imsprocessor.pm between versions 1.32 and 1.33

version 1.32, 2005/10/27 18:19:36 version 1.33, 2006/03/24 17:16:07
Line 511  sub process_resinfo { Line 511  sub process_resinfo {
                 }                  }
             } elsif ($$resources{$key}{type} eq "resource/x-bb-staffinfo") {              } elsif ($$resources{$key}{type} eq "resource/x-bb-staffinfo") {
                 %{$$resinfo{$key}} = ();                  %{$$resinfo{$key}} = ();
                 &process_staff($key,$docroot,$dirname,$destdir,\%{$$resinfo{$key}},$resrcfiles);                  &process_staff($key,$docroot,$destdir,\%{$$resinfo{$key}},$resrcfiles);
             } elsif ($$resources{$key}{type} eq "resource/x-bb-externallink") {              } elsif ($$resources{$key}{type} eq "resource/x-bb-externallink") {
                 %{$$resinfo{$key}} = ();                  %{$$resinfo{$key}} = ();
                 &process_link($key,$docroot,$dirname,$destdir,\%{$$resinfo{$key}},$resrcfiles);                  &process_link($key,$docroot,$destdir,\%{$$resinfo{$key}},$resrcfiles);
             } elsif ($$resources{$key}{type} eq "resource/x-bb-discussionboard") {              } elsif ($$resources{$key}{type} eq "resource/x-bb-discussionboard") {
                 %{$$resinfo{$key}} = ();                  %{$$resinfo{$key}} = ();
                 unless ($db_handling eq 'ignore') {                  unless ($db_handling eq 'ignore') {
Line 1205  sub process_group { Line 1205  sub process_group {
   
 # ---------------------------------------------------------------- Process Blackboard Staff  # ---------------------------------------------------------------- Process Blackboard Staff
 sub process_staff {  sub process_staff {
   my ($res,$docroot,$dirname,$destdir,$settings,$resrcfiles) = @_;    my ($res,$docroot,$destdir,$settings,$resrcfiles) = @_;
   my $xmlfile = $docroot.'/'.$res.".dat";    my $xmlfile = $docroot.'/'.$res.".dat";
   my $filecount = 0;    my $filecount = 0;
   my @state;    my @state;
   %{$$settings{name}} = ();    %{$$settings{name}} = ();
   %{$$settings{office}} = ();      %{$$settings{office}} = ();
   
   my $p = HTML::Parser->new    my $p = HTML::Parser->new
     (      (
Line 1363  sub process_staff { Line 1363  sub process_staff {
      |;       |;
      if ( defined($$settings{image}) ) {       if ( defined($$settings{image}) ) {
          $staffentry .= qq|           $staffentry .= qq|
       <img src="$dirname/resfiles/$res/$$settings{image}">        <img src="$res/$$settings{image}">
          |;           |;
      }       }
      $staffentry .= qq|       $staffentry .= qq|
Line 1386  $staffentry Line 1386  $staffentry
   
 # ---------------------------------------------------------------- Process Blackboard Links  # ---------------------------------------------------------------- Process Blackboard Links
 sub process_link {  sub process_link {
     my ($res,$docroot,$dirname,$destdir,$settings,$resrcfiles) = @_;      my ($res,$docroot,$destdir,$settings,$resrcfiles) = @_;
     my $xmlfile = $docroot.'/'.$res.".dat";      my $xmlfile = $docroot.'/'.$res.".dat";
     my @state = ();      my @state = ();
     my $p = HTML::Parser->new      my $p = HTML::Parser->new
Line 2718  sub build_problem_container { Line 2718  sub build_problem_container {
 sub write_bb5_questions {  sub write_bb5_questions {
     my ($allids,$containerdir,$context,$settings,$dirname,$destdir,$res,$allanswers,$allchoices,$total,$newdir,$cid,$cdom,$cnum,$docroot) = @_;      my ($allids,$containerdir,$context,$settings,$dirname,$destdir,$res,$allanswers,$allchoices,$total,$newdir,$cid,$cdom,$cnum,$docroot) = @_;
     my $qnum = 0;      my $qnum = 0;
       my $pathstart;
       if ($context eq 'CSTR') {
           $pathstart = '../..';
       } else {
           $pathstart = $dirname;
       }
     foreach my $id (@{$allids}) {      foreach my $id (@{$allids}) {
         if ($$settings{$id}{ishtml} eq 'true') {          if ($$settings{$id}{ishtml} eq 'true') {
             $$settings{$id}{text} = &HTML::Entities::decode($$settings{$id}{text});              $$settings{$id}{text} = &HTML::Entities::decode($$settings{$id}{text});
         }          }
         if ($$settings{$id}{text} =~ m#<img src=['"]?(https?://[^\s]+/)([^/\s\'"]+)['"]?[^>]*>#) {          if ($$settings{$id}{text} =~ m#<img src=['"]?(https?://[^\s]+/)([^/\s\'"]+)['"]?[^>]*>#) {
             if (&retrieve_image($context,$res,$dirname,$cdom,$cnum,$docroot,$destdir,$1,$2) eq 'ok') {              if (&retrieve_image($context,$res,$dirname,$cdom,$cnum,$docroot,$destdir,$1,$2) eq 'ok') {
                 $$settings{$id}{text} =~ s#(<img src=['"]?)(https?://[^\s]+/)([^/\s'"]+)(['"]?[^>]*>)#$1../../resfiles/$res/webimages/$3$4#g;                  $$settings{$id}{text} =~ s#(<img src=['"]?)(https?://[^\s]+/)([^/\s'"]+)(['"]?[^>]*>)#$1$pathstart/resfiles/$res/webimages/$3$4#g;
             }              }
         }          }
         $$settings{$id}{text} =~ s#(<img src=[^>]+)/*>#$1 />#gi;          $$settings{$id}{text} =~ s#(<img src=[^>]+)/*>#$1 />#gi;
Line 2772  sub write_bb5_questions { Line 2778  sub write_bb5_questions {
             my ($image,$imglink,$url);              my ($image,$imglink,$url);
             if ( defined($$settings{$id}{image}) ) {              if ( defined($$settings{$id}{image}) ) {
                 if ( $$settings{$id}{style} eq 'embed' ) {                  if ( $$settings{$id}{style} eq 'embed' ) {
                     $image = qq|<br /><img src="$dirname/resfiles/$res/$$settings{$id}{image}" /><br />|;                      $image = qq|<br /><img src="$pathstart/resfiles/$res/$$settings{$id}{image}" /><br />|;
                 } else {                  } else {
                     $imglink = qq|<br /><a href="$dirname/resfiles/$res/$$settings{$id}{image}">Link to file</a><br />|;                      $imglink = qq|<br /><a href="$pathstart/resfiles/$res/$$settings{$id}{image}">Link to file</a><br />|;
                 }                  }
             }              }
             if ( defined($$settings{$id}{url}) ) {              if ( defined($$settings{$id}{url}) ) {
Line 2819  sub write_bb5_questions { Line 2825  sub write_bb5_questions {
                     my ($ans_image,$ans_link);                      my ($ans_image,$ans_link);
                     if ( defined($$settings{$id}{$$allanswers{$id}[$k]}{image}) ) {                      if ( defined($$settings{$id}{$$allanswers{$id}[$k]}{image}) ) {
                         if ( $$settings{$id}{$$allanswers{$id}[$k]}{style} eq 'embed' ) {                          if ( $$settings{$id}{$$allanswers{$id}[$k]}{style} eq 'embed' ) {
                             $ans_image .= qq|<br /><img src="$dirname/resfiles/$res/$$settings{$id}{$$allanswers{$id}[$k]}{image}" /><br />|;                              $ans_image .= qq|<br /><img src="$pathstart/resfiles/$res/$$settings{$id}{$$allanswers{$id}[$k]}{image}" /><br />|;
                         } else {                          } else {
                             $ans_link .= qq|<br /><a href="$dirname/resfiles/$res/$$settings{$id}{$$allanswers{$id}[$k]}{image}" />Link to file</a><br/>|;                              $ans_link .= qq|<br /><a href="$pathstart/resfiles/$res/$$settings{$id}{$$allanswers{$id}[$k]}{image}" />Link to file</a><br/>|;
                         }                          }
                     }                      }
                     $output .= $ans_image.$ans_link.'<endouttext /></foil>'."\n";                      $output .= $ans_image.$ans_link.'<endouttext /></foil>'."\n";
Line 3642  sub write_bb6_questions { Line 3648  sub write_bb6_questions {
 |;  |;
         }          }
         $$total{prob} ++;          $$total{prob} ++;
         $questiontext .= &add_images_links('question',$settings,$id,$dirname,$res);          $questiontext .= &add_images_links('question',$context,$settings,$id,$dirname,$res);
         if ($$settings{$id}{class} eq "Essay") {          if ($$settings{$id}{class} eq "Essay") {
             if ($context eq 'CSTR') {              if ($context eq 'CSTR') {
                 $output .= qq|<startouttext />$questiontext<endouttext />                  $output .= qq|<startouttext />$questiontext<endouttext />
Line 3680  sub write_bb6_questions { Line 3686  sub write_bb6_questions {
                     my $answer_text = $$settings{$id}{$answer_id}{text};                      my $answer_text = $$settings{$id}{$answer_id}{text};
                     my $texttype = $$settings{$id}{$answer_id}{texttype};                      my $texttype = $$settings{$id}{$answer_id}{texttype};
                     &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);                      &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);
                     $answer_text .= &add_images_links('response',$settings,$id,$dirname,$res);                       $answer_text .= &add_images_links('response',$context,$settings,$id,$dirname,$res); 
                     $output .= "   <foil name=\"foil".$k."\" value=\"";                      $output .= "   <foil name=\"foil".$k."\" value=\"";
                     if (grep/^$answer_id$/,@{$$settings{$id}{correctanswer}}) {                      if (grep/^$answer_id$/,@{$$settings{$id}{correctanswer}}) {
                         $output .= "true\" location=\"";                          $output .= "true\" location=\"";
Line 3733  sub write_bb6_questions { Line 3739  sub write_bb6_questions {
                     my $answer_text = $$settings{$id}{$answer_id}{text};                      my $answer_text = $$settings{$id}{$answer_id}{text};
                     my $texttype = $$settings{$id}{$answer_id}{texttype};                      my $texttype = $$settings{$id}{$answer_id}{texttype};
                     &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);                      &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);
                     $answer_text .= &add_images_links('response',$settings,$id,$dirname,$res);                      $answer_text .= &add_images_links('response',$context,$settings,$id,$dirname,$res);
   
                     $output .= "   <foil name=\"foil".$k."\" value=\"";                      $output .= "   <foil name=\"foil".$k."\" value=\"";
                     if (grep/^$answer_id$/,@{$$settings{$id}{correctanswer}}) {                      if (grep/^$answer_id$/,@{$$settings{$id}{correctanswer}}) {
Line 3779  sub write_bb6_questions { Line 3785  sub write_bb6_questions {
                     my $answer_text = $$settings{$id}{$answer_id}{text};                      my $answer_text = $$settings{$id}{$answer_id}{text};
                     my $texttype = $$settings{$id}{$answer_id}{texttype};                      my $texttype = $$settings{$id}{$answer_id}{texttype};
                     &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);                      &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);
                     $answer_text .= &add_images_links('response',$settings,$id,$dirname,$res);                      $answer_text .= &add_images_links('response',$context,$settings,$id,$dirname,$res);
                     my $iter = $k+1;                      my $iter = $k+1;
                     if ($context eq 'CSTR') {                      if ($context eq 'CSTR') {
                         $output .= "   <foil location=\"random\" name=\"foil".$k."\" value=\"".$$settings{$id}{$answer_id}{order}."\"><startouttext />".$answer_text."<endouttext /></foil>\n";                          $output .= "   <foil location=\"random\" name=\"foil".$k."\" value=\"".$$settings{$id}{$answer_id}{order}."\"><startouttext />".$answer_text."<endouttext /></foil>\n";
Line 3920  sub write_bb6_questions { Line 3926  sub write_bb6_questions {
                     my $texttype = $$settings{$id}{$choice_id}{texttype};                      my $texttype = $$settings{$id}{$choice_id}{texttype};
                     my $choice_plaintext = &remove_html($choice_text);                      my $choice_plaintext = &remove_html($choice_text);
                     &process_html(\$choice_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);                      &process_html(\$choice_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);
                     $choice_text .= &add_images_links($choice_id,$settings,$id,$dirname,$res);                      $choice_text .= &add_images_links($choice_id,$context,$settings,$id,$dirname,$res);
                     push(@allmatchers,$choice_plaintext);                      push(@allmatchers,$choice_plaintext);
                     if ($context eq 'CSTR') {                      if ($context eq 'CSTR') {
                         $output .= qq|                          $output .= qq|
Line 3940  sub write_bb6_questions { Line 3946  sub write_bb6_questions {
                     my $answer_text = $$settings{$id}{$answer_id}{text};                      my $answer_text = $$settings{$id}{$answer_id}{text};
                     my $texttype = $$settings{$id}{$answer_id}{texttype};                      my $texttype = $$settings{$id}{$answer_id}{texttype};
                     &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);                      &process_html(\$answer_text,'bb6',$texttype,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir);
                     $answer_text .= &add_images_links($answer_id,$settings,$id,$dirname,$res);                      $answer_text .= &add_images_links($answer_id,$context,$settings,$id,$dirname,$res);
                     if ($context eq 'CSTR') {                      if ($context eq 'CSTR') {
                         $output .= '                          $output .= '
         <foil location="random" value="rightmatch'.$$settings{$id}{$$settings{$id}{$answer_id}{correctanswer}}{order}.'" name="'.$answer_id.'">          <foil location="random" value="rightmatch'.$$settings{$id}{$$settings{$id}{$answer_id}{correctanswer}}{order}.'" name="'.$answer_id.'">
Line 4571  $linktag Line 4577  $linktag
   
 sub process_html {  sub process_html {
     my ($text,$caller,$html_cond,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir) = @_;      my ($text,$caller,$html_cond,$context,$res,$dirname,$cdom,$cnum,$docroot,$destdir) = @_;
           my $pathstart;
       if ($context eq 'CSTR') {
           $pathstart = '../..';
       } else {
           $pathstart = $dirname;
       }
     if ($caller eq 'bb5') {      if ($caller eq 'bb5') {
         if ($html_cond eq 'true') {          if ($html_cond eq 'true') {
             $$text = &HTML::Entities::decode($$text);              $$text = &HTML::Entities::decode($$text);
Line 4583  sub process_html { Line 4594  sub process_html {
     }      }
     if ($$text =~ m#<img src=['"]?(https?://[^\s]+/)([^/\s\'"]+)['"]?[^>]*>#) {      if ($$text =~ m#<img src=['"]?(https?://[^\s]+/)([^/\s\'"]+)['"]?[^>]*>#) {
         if (&retrieve_image($context,$res,$dirname,$cdom,$cnum,$docroot,$destdir,$1,$2) eq 'ok') {          if (&retrieve_image($context,$res,$dirname,$cdom,$cnum,$docroot,$destdir,$1,$2) eq 'ok') {
             $$text =~ s#(<img src=['"]?)(https?://[^\s]+/)([^/\s'"]+)(['"]?[^>]*>)#$1../../resfiles/$res/webimages/$3$4#g;              $$text =~ s#(<img src=['"]?)(https?://[^\s]+/)([^/\s'"]+)(['"]?[^>]*>)#$1$pathstart/resfiles/$res/webimages/$3$4#g;
         }          }
     }      }
     $$text =~ s#(<img src=[^>]+)/*>#$1 />#gi;      $$text =~ s#(<img src=[^>]+)/*>#$1 />#gi;
Line 4592  sub process_html { Line 4603  sub process_html {
 }  }
   
 sub add_images_links {  sub add_images_links {
     my ($type,$settings,$id,$dirname,$res) = @_;      my ($type,$context,$settings,$id,$dirname,$res) = @_;
     my ($image,$imglink,$url);      my ($image,$imglink,$url,$pathstart);
       if ($context eq 'CSTR') {
           $pathstart = '../..';
       } else {
           $pathstart = $dirname;
       }
     if ((defined($$settings{$id}{$type}{image})) && ($$settings{$id}{$type}{image} ne '')) {      if ((defined($$settings{$id}{$type}{image})) && ($$settings{$id}{$type}{image} ne '')) {
         if ( $$settings{$id}{$type}{style} eq 'Inline' ) {          if ( $$settings{$id}{$type}{style} eq 'Inline' ) {
             $image = qq|<br /><img src="../../resfiles/$res/$$settings{$id}{$type}{image}" alt="$$settings{$id}{$type}{label}"/><br />|;              $image = qq|<br /><img src="$pathstart/resfiles/$res/$$settings{$id}{$type}{image}" alt="$$settings{$id}{$type}{label}"/><br />|;
         } else {          } else {
             $imglink = qq|<br /><a href="../../resfiles/$res/$$settings{$id}{$type}{image}">$$settings{$id}{$type}{label}</a><br />|;              $imglink = qq|<br /><a href="$pathstart/resfiles/$res/$$settings{$id}{$type}{image}">$$settings{$id}{$type}{label}</a><br />|;
         }          }
     }      }
     if ((defined($$settings{$id}{$type}{link})) && ($$settings{$id}{$type}{link} ne '' )) {      if ((defined($$settings{$id}{$type}{link})) && ($$settings{$id}{$type}{link} ne '' )) {

Removed from v.1.32  
changed lines
  Added in v.1.33


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