Diff for /loncom/xml/lonxml.pm between versions 1.533 and 1.540

version 1.533, 2012/11/21 23:13:30 version 1.540, 2013/05/12 13:05:31
Line 1510  sub renderingoptions { Line 1510  sub renderingoptions {
 }  }
   
 sub inserteditinfo {  sub inserteditinfo {
       my ($filecontents,$filetype,$filename,$symb,$itemtitle) = @_;        my ($filecontents,$filetype,$filename,$symb,$itemtitle,$folderpath,$uri) = @_;
       $filecontents = &HTML::Entities::encode($filecontents,'<>&"');        $filecontents = &HTML::Entities::encode($filecontents,'<>&"');
       my $xml_help = '';        my $xml_help = '';
       my $initialize='';        my $initialize='';
Line 1535  sub inserteditinfo { Line 1535  sub inserteditinfo {
 // ]]>  // ]]>
 </script>  </script>
 FULLPAGE  FULLPAGE
         my $textareaclass;
       if ($filetype eq 'html') {        if ($filetype eq 'html') {
           if ($symb) {            my $context;
               $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";            if ($env{'request.course.id'}) {
               $initialize .=                 my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
                   &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle)."\n";                my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
                 if ($uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E}) {
                     $context = 'syllabus';
                     $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";
                     $initialize .=
                         &Apache::lonhtmlcommon::dependencycheck_js(undef,&mt('Syllabus'),
                                                                    $uri,undef,
                                                                    "/public/$cdom/$cnum/syllabus").
                         "\n";
                     if (&Apache::lonhtmlcommon::htmlareabrowser()) {
                         $textareaclass = 'class="LC_richDefaultOn"';
                     }
                 }
             }
             unless ($context eq 'syllabus') {
                 if ($symb || $folderpath) {
                     $deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n";
                     $initialize .= 
                         &Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle,
                                                                    undef,$folderpath,$uri)."\n";
                 }
           }            }
           $dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>';            $dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>';
           $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');            $initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup');
Line 1552  FULLPAGE Line 1573  FULLPAGE
       }        }
   
       my $titledisplay=&display_title();        my $titledisplay=&display_title();
       my $textareaclass;  
       my %lt=&Apache::lonlocal::texthash('st' => 'Save and Edit',        my %lt=&Apache::lonlocal::texthash('st' => 'Save and Edit',
  'vi' => 'Save and View',   'vi' => 'Save and View',
  'dv' => 'Discard Edits and View',   'dv' => 'Discard Edits and View',
Line 1568  FULLPAGE Line 1588  FULLPAGE
               $htmlerror='<span class="LC_error">'.$htmlerror.'</span>';                $htmlerror='<span class="LC_error">'.$htmlerror.'</span>';
           }            }
           if (&Apache::lonhtmlcommon::htmlareabrowser()) {            if (&Apache::lonhtmlcommon::htmlareabrowser()) {
               $textareaclass = 'class="LC_richDefaultOff"';                unless ($textareaclass) {
                     $textareaclass = 'class="LC_richDefaultOff"';
                 }
           }            }
       }        }
       my $editfooter=(<<ENDFOOTER);        my $editfooter=(<<ENDFOOTER);
Line 1669  sub handler { Line 1691  sub handler {
     } else {      } else {
  $filetype='html';   $filetype='html';
     }      }
       unless ($env{'request.uri'}) {
           $env{'request.uri'}=$request->uri;
           &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                                   ['todocs']);
       }
       my ($cdom,$cnum);
       if ($env{'request.course.id'}) {
           $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
           $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
           if ($filetype eq 'html') {
               if ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E.+$}) {
                   if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) {
                       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                                               ['editmode']);
                   }
               }
           }
       }
     if ($filetype eq 'sty') {      if ($filetype eq 'sty') {
         $breadcrumbtext = 'Style File Editor';          $breadcrumbtext = 'Style File Editor';
     } elsif ($filetype eq 'js') {      } elsif ($filetype eq 'js') {
Line 1797  ENDNOTFOUND Line 1837  ENDNOTFOUND
             my ($displayfile,$url,$symb,$itemtitle);              my ($displayfile,$url,$symb,$itemtitle);
     $displayfile=$request->uri;      $displayfile=$request->uri;
             if ($request->uri =~ m{^/uploaded/}) {              if ($request->uri =~ m{^/uploaded/}) {
                 ($symb,$itemtitle,$displayfile) =                   if ($env{'request.course.id'}) {
                     &get_courseupload_hierarchy($request->uri);                      if ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/supplemental/\E}) {
                           &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                                                   ['folderpath','title']);
                       } elsif ($request->uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E(.+)$}) {
                           my $filename = $1;
                           if ($1 eq 'loncapa.html') {
                               $displayfile = &mt('Syllabus (minimal template)');
                           } else {
                               $displayfile = &mt('Syllabus file: [_1]',$1);
                           }
                           $itemtitle = &mt('Syllabus');
                       }
                   }
                   unless ($itemtitle) {
                       ($symb,$itemtitle,$displayfile) = 
                           &get_courseupload_hierarchy($request->uri,
                                                       $env{'form.folderpath'},
                                                       $env{'form.title'});
                   }
             } else {              } else {
         $displayfile=~s/^\/[^\/]*//;          $displayfile=~s/^\/[^\/]*//;
             }              }
   
     my ($edit_info, $add_to_onload, $add_to_onresize)=      my ($edit_info, $add_to_onload, $add_to_onresize)=
  &inserteditinfo($filecontents,$filetype,$displayfile,$symb,$itemtitle);   &inserteditinfo($filecontents,$filetype,$displayfile,$symb,
                                   $itemtitle,$env{'form.folderpath'},$request->uri);
   
     my %options =       my %options = 
  ('add_entries' =>   ('add_entries' =>
Line 1855  sub display_title { Line 1914  sub display_title {
 }  }
   
 sub get_courseupload_hierarchy {  sub get_courseupload_hierarchy {
     my ($url) = @_;      my ($url,$folderpath,$title) = @_;
     my ($symb,$itemtitle,$displaypath);      my ($symb,$itemtitle,$displaypath);
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
         $symb = &Apache::lonnet::symbread($url);          if ($folderpath =~ /^supplemental/) {
         my ($map,$id,$res)=&Apache::lonnet::decode_symb($symb);              my @folders = split(/\&/,$folderpath);
         my $navmap=Apache::lonnavmaps::navmap->new;              my @pathitems;
         if (ref($navmap)) {              while (@folders) {
             my $res = $navmap->getBySymb($symb);                  my $folder=shift(@folders);
             if (ref($res)) {                  my $foldername=shift(@folders);
                 my @pathitems =                  $foldername =~ s/\:(\d*)\:(\w*)\:(\w*):(\d*)\:?(\d*)$//;
                     &Apache::loncommon::get_folder_hierarchy($navmap,$map,1);                  push(@pathitems,&unescape($foldername));
                 $itemtitle = $res->compTitle();              }
                 push(@pathitems,$itemtitle);              if ($title) {
                 $displaypath = join(' &raquo; ',@pathitems);                  push(@pathitems,&unescape($title));
               }
               $displaypath = join(' &raquo; ',@pathitems);
           } else {
               $symb = &Apache::lonnet::symbread($url);
               my ($map,$id,$res)=&Apache::lonnet::decode_symb($symb);
               my $navmap=Apache::lonnavmaps::navmap->new;
               if (ref($navmap)) {
                   my $res = $navmap->getBySymb($symb);
                   if (ref($res)) {
                       my @pathitems =
                           &Apache::loncommon::get_folder_hierarchy($navmap,$map,1);
                       $itemtitle = $res->compTitle();
                       push(@pathitems,$itemtitle);
                       $displaypath = join(' &raquo; ',@pathitems);
                   }
             }              }
         }          }
     }      }
Line 2025  sub add_messages { Line 2099  sub add_messages {
 }  }
   
 sub get_param {  sub get_param {
     my ($param,$parstack,$safeeval,$context,$case_insensitive) = @_;      my ($param,$parstack,$safeeval,$context,$case_insensitive, $noelide) = @_;
   
     if ( ! $context ) { $context = -1; }      if ( ! $context ) { $context = -1; }
     my $args ='';      my $args ='';
     if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; }      if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; }
     if ( ! $Apache::lonxml::usestyle ) {      if ( ! $Apache::lonxml::usestyle ) {
  $args=$Apache::lonxml::style_values.$args;   $args=$Apache::lonxml::style_values.$args;
     }      }
   
   
       if ($noelide) {
   # $args =~ s/\\'/'/g;
    $args =~ s/'\$/'\\\$/g;
       }
   
     if ( ! $args ) { return undef; }      if ( ! $args ) { return undef; }
     if ( $case_insensitive ) {      if ( $case_insensitive ) {
  if ($args =~ s/(my (?:.*))(\$\Q$param\E[,\)])/$1.lc($2)/ei) {   if ($args =~ s/(my (?:.*))(\$\Q$param\E[,\)])/$1.lc($2)/ei) {
   
     return &Apache::run::run("{$args;".'return $'.$param.'}',      return &Apache::run::run("{$args;".'return $'.$param.'}',
                                      $safeeval); #'                                       $safeeval); #'
  } else {   } else {
Line 2042  sub get_param { Line 2125  sub get_param {
  }   }
     } else {      } else {
  if ( $args =~ /my .*\$\Q$param\E[,\)]/ ) {   if ( $args =~ /my .*\$\Q$param\E[,\)]/ ) {
       
     return &Apache::run::run("{$args;".'return $'.$param.'}',      return &Apache::run::run("{$args;".'return $'.$param.'}',
                                      $safeeval); #'                                       $safeeval); #'
  } else {   } else {

Removed from v.1.533  
changed lines
  Added in v.1.540


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