Diff for /loncom/xml/londefdef.pm between versions 1.430 and 1.442

version 1.430, 2011/04/13 10:08:06 version 1.442, 2013/01/04 05:30:52
Line 1 Line 1
   
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # Tags Default Definition Module   # Tags Default Definition Module 
 #  #
Line 56  use LONCAPA(); Line 55  use LONCAPA();
   
 BEGIN {  BEGIN {
   
     &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr','hideweboutput'));      &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','style','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr','hideweboutput'));
   
 }  }
   
Line 384  sub start_meta { Line 383  sub start_meta {
  } else {   } else {
     $currentstring = $token->[4];      $currentstring = $token->[4];
  }   }
           if ($env{'form.grade_imsexport'}) {
               $currentstring = '';
           }
     } elsif ($target eq 'meta') {      } elsif ($target eq 'meta') {
  unless (&Apache::lonxml::get_param   unless (&Apache::lonxml::get_param
  ('http-equiv',$parstack,$safeeval,undef,1)) {   ('http-equiv',$parstack,$safeeval,undef,1)) {
Line 456  sub insert_meta { Line 458  sub insert_meta {
     <meta />';      <meta />';
 }  }
   
   #-- <start> tag
   sub start_style {
    my ($target, $token, $tagstack, $parstack, $parser, $safeeval, $style) = @_;
    my $currentstring = '';
   
    if ($target eq 'tex') {
    Apache::lonxml::startredirection();
    } else {
    $currentstring = $token->[4];
    }
   
    return $currentstring;
   }
   
   sub end_style {
    my ($target, $token, $tagstack, $parstack, $parser, $safeeval) = @_;
    my $currentstring = '';
   
    if ($target eq 'tex') {
    Apache::lonxml::endredirection();
    } else {
    $currentstring = $token->[2];
    }
    return $currentstring;
   }
   
 # accessrule  # accessrule
 sub start_accessrule {  sub start_accessrule {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;
Line 542  sub start_body { Line 570  sub start_body {
     # Breadcrumbs      # Breadcrumbs
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     if ($env{'request.state'} eq 'construct') {      if ($env{'request.state'} eq 'construct') {
           my $url=&Apache::lonnet::hreflocation('',$env{'request.filename'});
         &Apache::lonhtmlcommon::add_breadcrumb({          &Apache::lonhtmlcommon::add_breadcrumb({
             'text'  => 'Construction Space',              'text'  => 'Construction Space',
             'href'  => &Apache::loncommon::authorspace(),              'href'  => &Apache::loncommon::authorspace($url),
         });          });
         &Apache::lonhtmlcommon::add_breadcrumb({          &Apache::lonhtmlcommon::add_breadcrumb({
             'text'  => 'HTML Editor',              'text'  => 'HTML Editor',
Line 570  sub start_body { Line 599  sub start_body {
             $header=&Apache::lonmenu::constspaceform();              $header=&Apache::lonmenu::constspaceform();
         }          }
         if ($env{'request.state'} ne 'published') {          if ($env{'request.state'} ne 'published') {
             $header.=&Apache::londefdef::edit_controls();              $header.=&edit_controls();
         }          }
         if ($env{'request.state'} eq 'construct') {          if ($env{'request.state'} eq 'construct') {
             $currentstring.=&Apache::loncommon::head_subbox(              $currentstring.=&Apache::loncommon::head_subbox(
Line 602  sub edit_controls { Line 631  sub edit_controls {
     $result .= '      $result .= '
 <div><input type="submit" name="editmode" accesskey="e" value="'.&mt('Edit').'" />';  <div><input type="submit" name="editmode" accesskey="e" value="'.&mt('Edit').'" />';
     if (($env{'request.course.id'}) && ($env{'form.forceedit'})) {      if (($env{'request.course.id'}) && ($env{'form.forceedit'})) {
         my $viewtext = &mt('Course View');          my $url=&Apache::lonnet::hreflocation('',$env{'request.filename'});
         if (&Apache::loncommon::course_type() eq 'Community') {          if ($url =~ /\.html?$/i) {
             $viewtext = &mt('Community View');              if ($env{'request.course.id'}) {
                   if ($env{'request.filename'} =~ m{/userfiles/supplemental/default|\d+/}) {
                       if (&Apache::lonnet::is_course_upload($env{'request.filename'},
                           $env{'course.'.$env{'request.course.id'}.'.num'},
                           $env{'course.'.$env{'request.course.id'}.'.domain'})) {
                           &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                                                   ['folderpath','title']);
                       }
                   }
               }
               my ($symb,$itemtitle,$displayfile) = 
                   &Apache::lonxml::get_courseupload_hierarchy($url,
                                                               $env{'form.folderpath'},
                                                               $env{'form.title'});
               if (($symb ne '') || ($env{'httpref.'.$url} ne '')) {
                     $result .= ('&nbsp;' x 3).
                                &Apache::lonhtmlcommon::dependencies_button()."\n".
                                &Apache::lonhtmlcommon::dependencycheck_js($symb,
                                    $itemtitle,$url,$env{'form.folderpath'},$url)."\n";
               }
         }          }
         $result .= ('&nbsp;' x 3).'<input type="button" value="'.  
                    $viewtext.'" onclick="javascript:location.href=currentURL" />';  
     }      }
     $result .= '</div>      $result .= '</div>
 </div>  </div>
Line 2045  sub start_table { Line 2091  sub start_table {
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  &disable_para(); # Can't have paras in a table.   &disable_para(); # Can't have paras in a table.
   
   
  #  New table code:  
   
  #  Get the parameters that we can do something about:   #  Get the parameters that we can do something about:
   
  my $border = &Apache::lonxml::get_param('border', $parstack, $safeeval, undef, 0);   my $border = &Apache::lonxml::get_param('border', $parstack, $safeeval, undef, 0);
Line 2068  sub start_table { Line 2111  sub start_table {
  $table->cell_border(1); # Default for rules is all if rules not defined.   $table->cell_border(1); # Default for rules is all if rules not defined.
     }      }
  }   }
  # Only all or nothing for cell borders for now:  
   
  if ((defined $cell_border)) {   if ((defined $cell_border)) {
     if ($cell_border eq 'all') {      if ($cell_border eq 'all') {
Line 2886  sub start_applet { Line 2928  sub start_applet {
     &Apache::lonxml::extlink($archive);      &Apache::lonxml::extlink($archive);
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web' || $target eq 'webgrade') {      if ($target eq 'web' || $target eq 'webgrade') {
         $currentstring = &Apache::lonenc::encrypt_ref($token,          $currentstring = $token->[4];
                                                       {'code'=>$code,  
                                                        'archive'=>$archive}  
                                                      );  
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
         # Turn off some stuff we can't be inside thank you LaTeX          # Turn off some stuff we can't be inside thank you LaTeX
   
Line 2975  sub end_embed { Line 3014  sub end_embed {
 #-- <param> tag (end tag forbidden)  #-- <param> tag (end tag forbidden)
 sub start_param {  sub start_param {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     if (&Apache::lonxml::get_param('name',$parstack,      my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval,
    $safeeval,undef,1)=~/^cabbase$/i) {                                            undef,1);
       if ($name =~/^cabbase$/i) {
  my $value=&Apache::lonxml::get_param('value',$parstack,   my $value=&Apache::lonxml::get_param('value',$parstack,
      $safeeval,undef,1);       $safeeval,undef,1);
  &Apache::lonxml::extlink($value);   &Apache::lonxml::extlink($value);
     }       } elsif ($name eq 'flashvars') {
             if (lc(&Apache::lonxml::get_param('type',$parstack,$safeeval,-2,1))
               eq 'application/x-shockwave-flash') {
               my $launcher =
                   &Apache::lonxml::get_param('data',$parstack,$safeeval,-2,1);
               if ($launcher) {
                   &Apache::lonxml::extlink($launcher);
               }
               my $flashvars=&Apache::lonxml::get_param('value',$parstack,
                                                        $safeeval,undef,1);
               if ($flashvars ne '') {
                   foreach my $item (split(/\&/,$flashvars)) {
                       my ($key,$value)=split(/=/,$item,2);
                       if ($key eq 'content') {
                           if ($value ne '') {
                               my ($dir) = ($launcher =~ m{(.+/)[^/]+$});
                               &Apache::lonxml::extlink($dir.$value);
                           }
                       } elsif ($key eq 'thumb') {
                           if ($value ne '') {
                               &Apache::lonxml::extlink($value);
                           }
                       }
                   }
               }
           }
       }
     my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);      my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
     &Apache::lonxml::extlink($src);      if ($src ne '') {
           &Apache::lonxml::extlink($src);
       }
     my $currentstring = '';      my $currentstring = '';
     if ($target eq 'web' || $target eq 'webgrade') {      if ($target eq 'web' || $target eq 'webgrade') {
  my %toconvert;   my %toconvert;
  my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);  
  if ($src) { $toconvert{'src'}= $src; }   if ($src) { $toconvert{'src'}= $src; }
  my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval,  
     undef,1);  
  if ($name=~/^cabbase$/i) {   if ($name=~/^cabbase$/i) {
     $toconvert{'value'}=&Apache::lonxml::get_param('value',$parstack,      $toconvert{'value'}=&Apache::lonxml::get_param('value',$parstack,
    $safeeval,undef,1);     $safeeval,undef,1);
Line 4198  sub get_eps_image { Line 4262  sub get_eps_image {
     close(FILE);      close(FILE);
                 }                  }
  $src=~s|/home/httpd/html/res|/home/httpd/prtspool|;   $src=~s|/home/httpd/html/res|/home/httpd/prtspool|;
  $src=~s|/home/([^/]*)/public_html/|/home/httpd/prtspool/$1/|;   $src=~s|/home/httpd/html/priv/[^/]+/([^/]*)/|/home/httpd/prtspool/$1/|;
  if ($sext ne "") { # Put the ext. back in to uniquify.   if ($sext ne "") { # Put the ext. back in to uniquify.
     $src =~ s/\.eps$/$sext.eps/;      $src =~ s/\.eps$/$sext.eps/;
  }   }
Line 4217  sub get_eps_image { Line 4281  sub get_eps_image {
  print FILE "$src\n";   print FILE "$src\n";
  close FILE;   close FILE;
  $src=~s|/home/httpd/html/res|/home/httpd/prtspool|;   $src=~s|/home/httpd/html/res|/home/httpd/prtspool|;
  $src=~s|/home/([^/]*)/public_html/|/home/httpd/prtspool/$1/|;   $src=~s|/home/httpd/html/priv/[^/]+/([^/]*)/|/home/httpd/prtspool/$1/|;
     }      }
     my ($path,$file)=($src=~m|(.*)/([^/]*)$|);      my ($path,$file)=($src=~m|(.*)/([^/]*)$|);
     $path =~ s/ /\_/g;      $path =~ s/ /\_/g;
Line 4236  sub eps_generation { Line 4300  sub eps_generation {
     my $newsrc = $src;      my $newsrc = $src;
     $newsrc =~ s/(\.bmp|\.gif|\.jpg|\.jpeg)$/\.eps/i;      $newsrc =~ s/(\.bmp|\.gif|\.jpg|\.jpeg)$/\.eps/i;
     $newsrc=~s{/home/httpd/html/res}{};      $newsrc=~s{/home/httpd/html/res}{};
     $newsrc=~s{/home/($LONCAPA::username_re)/public_html/}{/$1/};      $newsrc=~s{/home/httpd/html/priv/[^/]+/($LONCAPA::username_re)/}{/$1/};
     $newsrc=~s{/\./}{/};      $newsrc=~s{/\./}{/};
     $newsrc=~s{/([^/]+)\.(ps|eps)}{/};      $newsrc=~s{/([^/]+)\.(ps|eps)}{/};
     if ($newsrc=~m{/home/httpd/lonUsers/}) {      if ($newsrc=~m{/home/httpd/lonUsers/}) {
Line 4419  sub latex_header { Line 4483  sub latex_header {
  "\\usepackage{xcolor}\n".   "\\usepackage{xcolor}\n".
  '\usepackage{calc}'.   '\usepackage{calc}'.
  '\usepackage{amsmath}'.   '\usepackage{amsmath}'.
     '\usepackage{soul}',   '\usepackage{soul}'.
  '\usepackage{amssymb}'.   '\usepackage{amssymb}'.
  '\usepackage{amsfonts}'.   '\usepackage{amsfonts}'.
  '\usepackage{amsthm}'.   '\usepackage{amsthm}'.

Removed from v.1.430  
changed lines
  Added in v.1.442


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