Diff for /loncom/interface/lonsyllabus.pm between versions 1.34 and 1.82

version 1.34, 2004/06/08 15:20:05 version 1.82, 2009/03/07 15:07:09
Line 29 Line 29
 package Apache::lonsyllabus;  package Apache::lonsyllabus;
   
 use strict;  use strict;
   use Apache::lontemplate;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonnet;  use Apache::lonnet;
Line 37  use Apache::lonfeedback; Line 38  use Apache::lonfeedback;
 use Apache::lonannounce;  use Apache::lonannounce;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
   use Apache::lonspeller();
   use HTML::Entities();
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 44  sub handler { Line 47  sub handler {
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
 # ------------------------------------------------------------ Print the screen      my $target=$env{'form.grade_target'};
     my $target=$ENV{'form.grade_target'};  # --------------------------------------------------- Get course info from URL
     if ($target ne 'tex') {  
  $r->print(<<ENDDOCUMENT);  
 <html>  
 <head>  
 <title>The LearningOnline Network with CAPA</title>  
 ENDDOCUMENT  
     } else {  
  $r->print(&Apache::lonprintout::print_latex_header($ENV{'form.latex_type'}));  
     }   
     my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);      my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);
 # Is this even a course?  # ------------------------------------------------------------ Get query string
     my $homeserver=&Apache::lonnet::homeserver($cnum,$cdom);       &Apache::loncommon::get_unprocessed_cgi
                           ($ENV{'QUERY_STRING'},['forcestudent','register','forceedit','wrapperdisplay']);
   # ----------------------------------------------------- Is this even a course?
       my $homeserver=&Apache::lonnet::homeserver($cnum,$cdom);
     if ($homeserver eq 'no_host') {      if ($homeserver eq 'no_host') {
  $r->print('</head><body>'.&mt('No syllabus available').'</body></html>');          &Apache::loncommon::content_type($r,'text/html');
           $r->send_http_header;
         &Apache::loncommon::simple_error_page($r,'No syllabus available',
         'No syllabus available');
         return OK;          return OK;
     }      }
   # ------------------------------------- There is such a course, get environment
       my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
   
   # ------------------------------------------------------------ Print the screen
   
       if ($target eq 'tex') {
    $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
       } 
   # -------------------------------------------------- Let's see who handles this
       my $externalsyllabus=$courseenv{'externalsyllabus'};
   
       if ($externalsyllabus=~/\w/) {
   
          if ($env{'form.wrapperdisplay'} eq 'menu') {
      $r->print(&Apache::lonwrapper::simple_menu());
          } else {    
      $r->print(&Apache::lonwrapper::wrapper("/public/$cdom/$cnum/syllabus?wrapperdisplay=menu",
      $externalsyllabus));
          }
          return OK;
        } 
   
   # ------------------------------ The buck stops here: internal syllabus display
 # --------------------------------------------------------- The syllabus fields  # --------------------------------------------------------- The syllabus fields
     my %syllabusfields=&Apache::lonlocal::texthash(      my %syllabusfields=&Apache::lonlocal::texthash(
        'aaa_instructorinfo' => 'Instructor Information',         'aaa_instructorinfo' => 'Instructor Information',
Line 79  ENDDOCUMENT Line 102  ENDDOCUMENT
        'jjj_weblinks'       => 'Web Links',         'jjj_weblinks'       => 'Web Links',
        'kkk_textbook'       => 'Textbook',         'kkk_textbook'       => 'Textbook',
        'lll_includeurl'     => 'URLs To Include in Syllabus');         'lll_includeurl'     => 'URLs To Include in Syllabus');
   
 # ------------------------------------------------------------ Get query string  
     &Apache::loncommon::get_unprocessed_cgi  
                         ($ENV{'QUERY_STRING'},['forcestudent','register','forceedit']);  
 # ----------------------------------------------------- Force menu registration  
     my $addentries='';  
     if ($ENV{'form.register'}) {  
        $addentries=' onLoad="'.&Apache::lonmenu::loadevents().  
    '" onUnload="'.&Apache::lonmenu::unloadevents().'"';  
        $r->print(&Apache::lonmenu::registerurl(1));  
     }  
 # --------------------------------------------------------------- Force Student  # --------------------------------------------------------------- Force Student
     my $forcestudent='';      my $forcestudent='';
     if ($ENV{'form.forcestudent'}) { $forcestudent='student'; };      if ($env{'form.forcestudent'}) { $forcestudent='student'; };
     my $forceedit='';      my $forceedit='';
     if ($ENV{'form.forceedit'}) { $forceedit='edit'; }      if ($env{'form.forceedit'}) { $forceedit='edit'; }
                 
 # ------------------------------------- There is such a course, get environment  # ----------------------------------------------------------------- Make header 
     my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);  
     if ($target ne 'tex') {      if ($target ne 'tex') {
  $r->print(&Apache::lonhtmlcommon::htmlareaheaders().   my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
   '</head>'.&Apache::loncommon::bodytag          my $js;
             ("Syllabus",$forcestudent,$addentries,'',$cdom,$ENV{'form.register'}));          if ($env{'form.backto'} eq 'coursecatalog') {
  $r->print('<h1>'.$courseenv{'description'}.'</h1><h3>'.              $js .= <<"ENDSCRIPT";
                  $Apache::lonnet::domaindescription{$cdom}.'</h3>');  
     } else {  <script type="text/javascript">
  $r->print('\noindent{\large\textbf{'.$courseenv{'description'}.'}}\\\\\\\\\textbf{'.  function ToCatalog(caller) {
                  $Apache::lonnet::domaindescription{$cdom}.'}\\\\');      numidx = getIndexByName('coursenum');
     }      if (numidx > -1) {
 # -------------------------------------------------------------- Announcements?          if (caller != 'details') {
     $r->print(&Apache::lonannounce::showday(time,2,              document.backtocat.elements[numidx].value = '';
                          &Apache::lonannounce::readcalendar($cdom.'_'.$cnum)));          }
 # -------------------------------------------------------- Get course personnel  
     my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum);  
     if ($target ne 'tex') {  
  $r->print('<table border="2">');  
     } else {  
  $r->print('\begin{tabular}{|c|c|}\hline');  
     }      }
     foreach (sort keys %coursepersonnel) {      document.backtocat.submit();
  if ($target ne 'tex') {  }
     $r->print('<tr><td>'.$_.'</td><td>');  
  } else {  function getIndexByName(item) {
     $r->print(' '.$_.'\\\\  ');       for (var i=0;i<document.backtocat.elements.length;i++) {
  }          if (document.backtocat.elements[i].name == item) {
         foreach (split(/\,/,$coursepersonnel{$_})) {              return i;
     my ($puname,$pudom)=split(/\:/,$_);          }
     if ($target ne 'tex') {  
  $r->print(' '.&Apache::loncommon::aboutmewrapper(  
                               &Apache::loncommon::plainname($puname,  
                               $pudom),$puname,$pudom));  
     } else {  
  $r->print(' '.&Apache::loncommon::plainname($puname,  
                               $pudom).' ');  
     }  
  }  
  if ($target ne 'tex') {  
     $r->print('</td></tr>');  
  } else {  
     $r->print('\\\\ \hline');  
  }  
     }      }
     if ($target ne 'tex') {      return -1;
  $r->print('</table>');  }
     } else {  
  $r->print('\end{tabular}\\\\');  </script>
   
   ENDSCRIPT
           }
    my $start_page = 
       &Apache::loncommon::start_page("Syllabus", $rss_link.$js,
      {'function'       => $forcestudent,
       'domain'         => $cdom,
       'force_register' =>
    $env{'form.register'},});
   
    $r->print($start_page);
           if ($env{'form.backto'} eq 'coursecatalog') {
               &Apache::lonhtmlcommon::clear_breadcrumbs();
               &Apache::lonhtmlcommon::add_breadcrumb
                ({href=>"javascript:ToCatalog()",
                  text=>"Course Catalog"});
               if ($env{'form.coursenum'} ne '') {
                   &Apache::lonhtmlcommon::add_breadcrumb
                     ({href=>"javascript:ToCatalog('details')",
                      text=>"Course details"});
               }
               &Apache::lonhtmlcommon::add_breadcrumb
                 ({href=>$r->uri,
                  text=>"Course syllabus"});
               $r->print(&Apache::lonhtmlcommon::breadcrumbs());
           }
   
     }      }
 # ---------------------------------------------------------- Load syllabus info  # ---------------------------------------------------------- Load syllabus info
     my %syllabus=&Apache::lonnet::dump('syllabus',$cdom,$cnum);      my %syllabus=&Apache::lonnet::dump('syllabus',$cdom,$cnum);
Line 153  ENDDOCUMENT Line 171  ENDDOCUMENT
   
 # This handler might be called anonymously ...  # This handler might be called anonymously ...
 # ----------------------------------------------------- Only if not public call  # ----------------------------------------------------- Only if not public call
     if ($ENV{'user.environment'}) {      if ($env{'user.environment'}) {
 # does this user have privileges to post, etc?  # does this user have privileges to post, etc?
        if ($ENV{'request.course.id'}) {         if ($env{'request.course.id'}
           $allowed=&Apache::lonnet::allowed('mdc',$ENV{'request.course.id'});     && $cdom eq $env{'course.'.$env{'request.course.id'}.'.domain'}
      && $cnum eq $env{'course.'.$env{'request.course.id'}.'.num'}) {
             $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
   $privileged=$allowed;    $privileged=$allowed;
   if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {    if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {
       $forcestudent='student';        $forcestudent='student';
   }    }
           if ($forcestudent or $target eq 'tex') { $allowed=0; }            if ($forcestudent or $target eq 'tex') { $allowed=0; }
        }         }    
        if ($allowed) {         if (($allowed) && ($env{'form.storesyl'})) {
           $r->print('<p>'.     foreach my $syl_field (keys(%syllabusfields)) {
 &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes','Help with filling in text boxes').'</p><p>'.&mt('This syllabus can be publicly viewed at')                 my $field=$env{'form.'.$syl_field};
     .' <tt>http://'.  
     $Apache::lonnet::hostname{$homeserver}.$r->uri.'</tt>'.  
                &Apache::loncommon::help_open_topic('Syllabus_ExtLink').'</p>'.  
   '<p><a href="'.$r->uri.'?forcestudent=1"><font size="+1">'.  
 &mt('Show Public View').'</font></a>'.  
           &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').  
           '</p>');  
       } elsif ($privileged) {  
   if ($target ne 'tex') {  
       $r->print('<p><a href="'.$r->uri.'?forceedit=1"><font size="+1">'.  
  &mt('Edit').'</font></a>');   
   }  
       }  
        if (($allowed) && ($ENV{'form.storesyl'})) {  
    foreach (keys %syllabusfields) {  
                my $field=$ENV{'form.'.$_};  
        chomp($field);         chomp($field);
                $field=~s/\s+$//s;                 $field=~s/\s+$//s;
        $field=~s/^\s+//s;         $field=~s/^\s+//s;
        $field=~s/\<br\s*\/*\>$//s;         $field=~s/\<br\s*\/*\>$//s;
        $field=&Apache::lonfeedback::clear_out_html($field,1);         $field=&Apache::lonfeedback::clear_out_html($field,1);
        $syllabus{$_}=$field;         $syllabus{$syl_field}=$field;
                if ($_ eq 'lll_includeurl') { # clean up included URLs                 if ($syl_field eq 'lll_includeurl') { # clean up included URLs
                   my $field='';                    my $field='';
           foreach (split(/\n/,$syllabus{$_})) {            foreach my $value (split(/\n/,$syllabus{$syl_field})) {
       my $url=$_;        my $url=$value;
 # get rid of leading and trailing spaces  # get rid of leading and trailing spaces
                       $url=~s/^\s+//;                        $url=~s/^\s+//;
                       $url=~s/\s+$//;                        $url=~s/\s+$//;
                       if ($url=~/^http\:\/\/([^\/]+)\/(.+)$/) {                        if ($url=~m|^https?\://([^/]+)/(.+)$|) {
     my $host = $1;
                           my $remainder=$2;                            my $remainder=$2;
 # remove the hostname from internal URLs  # remove the hostname from internal URLs
           foreach (keys %Apache::lonnet::hostname) {    my $hostname = &Apache::lonnet::hostname($host);
                               if ($1=~/$Apache::lonnet::hostname{$_}/i) {    my %all_hostnames = &Apache::lonnet::all_hostnames();
             foreach my $possible_host (keys(%all_hostnames)) {
                                 if ($possible_host =~ /\Q$hostname\E/i) {
          $url=$remainder;           $url=$remainder;
       }        }
           }            }
       }        }
 # norm internal URLs  # norm internal URLs
                       unless ($url=~/^http\:/) {                        unless ($url=~/^https?\:/) {
           $url=&Apache::lonnet::clutter($url);            $url=&Apache::lonnet::clutter($url);
                       }                        }
 # re-assemble field  # re-assemble field
Line 213  ENDDOCUMENT Line 220  ENDDOCUMENT
           $field.=$url."\n";            $field.=$url."\n";
                       }                        }
   }    }
                   $syllabus{$_}=$field;                    $syllabus{$syl_field}=$field;
       }        }
            }             }
            $syllabus{'uploaded.domain'}=$ENV{'user.domain'};             $syllabus{'uploaded.domain'}=$env{'user.domain'};
            $syllabus{'uploaded.name'}=$ENV{'user.name'};             $syllabus{'uploaded.name'}=$env{'user.name'};
            $syllabus{'uploaded.lastmodified'}=time;             $syllabus{'uploaded.lastmodified'}=time;
            &Apache::lonnet::put('syllabus',\%syllabus,$cdom,$cnum);             &Apache::lonnet::put('syllabus',\%syllabus,$cdom,$cnum);
        }         }
     }      }
 # ---------------------------------------------------------------- Get syllabus  #-Pritn Help Text
     if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {  if ($target ne 'tex') {
        my $lastmod=$syllabus{'uploaded.lastmodified'};   if($allowed){ 
    $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')));
    }
   }
   #--------Functions
   if ($target ne 'tex') {
    if($allowed || $privileged){
    &Apache::lontemplate::print_start_page_functions($r);
    if($allowed){
    &Apache::lontemplate::print_functions_content($r,'<a href="'.$r->uri.'?forcestudent=1">'.&mt('Show Public View').'</a>'.&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView'));      
    }elsif($privileged){
    &Apache::lontemplate::print_functions_content($r,'<a href="'.$r->uri.'?forceedit=1">'.&mt('Edit').'</a>'); 
    }
    &Apache::lontemplate::print_end_page_functions($r);
    }
    }
   #----------------------------Print Headtitle
   if($target ne 'tex'){
    $r->print('<h1>'.$courseenv{'description'}.'</h1>');
    $r->print('<h3>'.  &Apache::lonnet::domain($cdom,'description').'</h3>');
   }else{
    $r->print('\noindent{\large\textbf{'.$courseenv{'description'}.'}}\\\\\\\\\textbf{'.
    &Apache::lonnet::domain($cdom,'description').'}\\\\');
   }
   # -------------------------------------------------------- Get course personnel
       my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum);
       if ($target ne 'tex') {
    $r->print(&Apache::lonhtmlcommon::start_pick_box());
       } else {
    $r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline');
       }
       my @personnel=sort(keys(%coursepersonnel));
       my $lastpers=$personnel[$#personnel];
       foreach my $element (@personnel) {
    if ($target ne 'tex') {
       $r->print(&Apache::lonhtmlcommon::row_title($element));
    } else {
       $r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$element).' & '); 
    }
           foreach (split(/\,/,$coursepersonnel{$element})) {
       my ($puname,$pudom)=split(/\:/,$_);
       if ($target ne 'tex') {
                   my $courseperson = &Apache::loncommon::plainname($puname,$pudom);
                   if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') ||
                       ($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) {
       $r->print(' '.$courseperson);
                   } else {
                       $r->print(' '.&Apache::loncommon::aboutmewrapper($courseperson,
                                 $puname,$pudom));
                   }
       } else {
    $r->print(' '.&Apache::loncommon::plainname($puname,
                                 $pudom).' ');
       }
    }
    if ($target ne 'tex') {
               my $lastclose=$element eq $lastpers?1:0;
               $r->print(&Apache::lonhtmlcommon::row_closure($lastclose));
    } else {
       $r->print('\\\\ \hline');
    }
       }
       if ($target ne 'tex') {
    $r->print(&Apache::lonhtmlcommon::end_pick_box());
       } else {
    $r->print('\end{tabular}\\\\');
       }
   #----------Print last update
    my $lastmod=$syllabus{'uploaded.lastmodified'};
        $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));         $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
        my $who = &Apache::loncommon::aboutmewrapper(         my $who = &Apache::loncommon::aboutmewrapper(
                     &Apache::loncommon::plainname($syllabus{'uploaded.name'},                      &Apache::loncommon::plainname($syllabus{'uploaded.name'},
                      $syllabus{'uploaded.domain'}),$syllabus{'uploaded.name'},                       $syllabus{'uploaded.domain'}),$syllabus{'uploaded.name'},
                      $syllabus{'uploaded.domain'});                       $syllabus{'uploaded.domain'});      
        if ($target ne 'tex') {   if ($target ne 'tex') {
    $r->print('<table><tr><td>'.&mt('Last updated').':</td><td>'.     $r->print('<table><tr><td>'.&mt('Last updated').':</td><td>'.
      $lastmod.'</td><td>'.&mt('by').' '.$who.       $lastmod.'</td><td>'.
      '</td></tr></table><p>');       ($who ? &mt('by').' '.$who
                              : '' ).
        '</td></tr></table>');
        } else {         } else {
    $r->print('\\\\ '.&mt('Last updated').': '.$lastmod.' '.&mt('by').'\\\\ '.     $r->print('\\\\ '.&mt('Last updated').': '.$lastmod.' '.
      &Apache::loncommon::plainname($syllabus{'uploaded.name'},       ($who? &mt('by').'\\\\ '.
                      $syllabus{'uploaded.domain'}).'\\\\');              &Apache::loncommon::plainname($syllabus{'uploaded.name'},$syllabus{'uploaded.domain'})
             :'')
        .'\\\\');
        }         }
   #---------------------Print Extern URL Course Info
   if( ($allowed) && ($target ne 'tex') ) {
    my $protocol = $Apache::lonnet::protocol{$homeserver};
     $protocol = 'http' if ($protocol ne 'https');
    $r->print('<p>'.&mt('This syllabus can be publicly viewed at').' <tt>'.$protocol.'://'.&Apache::lonnet::hostname($homeserver).$r->uri.'</tt>'.&Apache::loncommon::help_open_topic('Syllabus_ExtLink').'</p>'.'<p>'.&mt('You can specify an external URL as Syllabus in the [_1].','<a href="/adm/parmset?action=crsenv">'.&mt('Course Parameters').'</a>').'</p>');
   }
   # -------------------------------------------------------------- Announcements?
       my $day = &Apache::lonannounce::showday(time,2,
    &Apache::lonannounce::readcalendar($cdom.'_'.$cnum));
       if ($target ne 'tex') {
    if($allowed){
    &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_ContentBoxSpecial');
    $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit));
    &Apache::lontemplate::print_end_template($r);
    }
    elsif(&Apache::lonrss::advertisefeeds($cnum,$cdom) ne ''){
    &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_ContentBoxSpecial');
    $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit));
    &Apache::lontemplate::print_end_template($r);
    }
   
       } else {
    $r->print(&Apache::lonxml::xmlparse($r,'tex',$day));
       }
   # ---------------------------------------------------------------- Get syllabus
       if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {     
        if ($allowed) {         if ($allowed) {
    $r->print('<form method="post">'.     $r->print('<form method="post">'.
      '<input type="hidden" name="forceedit" value="edit" />');       '<input type="hidden" name="forceedit" value="edit" />');
        }         }
        my @htmlids=();         my @htmlids=();
        foreach (sort keys %syllabusfields) {  
           if (($syllabus{$_}=~/\w/) || ($allowed)) {   foreach my $field (sort(keys(%syllabusfields))) {
               my $message=$syllabus{$_};     if (($syllabus{$field}=~/\w/) || ($allowed)) {
               if ($_ eq 'lll_includeurl') { # this is the "included" field         my $message=$syllabus{$field};
   my $urls=$message;         if ($field eq 'lll_includeurl') { # this is the "included" field
                   $message='';     my $urls=$message;
                   foreach my $filelink (split(/\n/,$urls)) {     $message='';  
       my $output='';     foreach my $filelink (split(/\n/,$urls)) {
 # embed style?         my $output='';
       my ($curfext)=($filelink=~/\.([^\.]+)$/);   # embed style?
                       my $embstyle=&Apache::loncommon::fileembstyle($curfext);         my ($curfext)=($filelink=~/\.([^\.]+)$/);
               if (($embstyle eq 'ssi') || ($curfext=~/\/$/)) {         my $embstyle=&Apache::loncommon::fileembstyle($curfext);
 # make ssi call and remove everything but the body contents         if (($embstyle eq 'ssi') || ($curfext=~/\/$/)) {# make ssi call and remove everything but the body contents
   $output=&Apache::lonnet::ssi_body($filelink);     $output=&Apache::lonnet::ssi_body($filelink);
               } elsif ($embstyle eq 'img') {         } elsif ($embstyle eq 'img') {# embed as an image
 # embed as an image     $output='<img src="'.$filelink.'" />';
                          $output='<img src="'.$filelink.'" />';         }
       }         if($output ne ''){
       if ($target ne 'tex') {         if ($target ne 'tex') {
   $message.='<p>'.$output.'</p>';     $message.='<p>'.$output.'</p>';
       } else {         } else {
   $message.=' '.&Apache::lonxml::xmlparse($r,'tex','<p>'.$output.'</p>').' ';     $message.=' '.&Apache::lonxml::xmlparse($r,'tex','<p>'.$output.'</p>').' ';
       }               }
                   }   }     
                   if ($allowed) {     }
                      $r->print('<h3>'.$syllabusfields{$_}.     if ($allowed) {
           &Apache::loncommon::help_open_topic('Syllabus_URLs').'</h3>'.         $r->print('<h3>'.$syllabusfields{$field}.
   '<p><a href="'.$r->uri.'?forcestudent=1"><font size="+1">'.&mt('Show Public View').'</font></a>'.   &Apache::loncommon::help_open_topic('Syllabus_URLs').'</h3>');
  &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'</p>');     } else {
  } else {         $r->print($message);
                   $r->print($message);     } 
                  }          } else {
               } else {     &Apache::lonfeedback::newline_to_br(\$message);
                  $message=~s/\n/\<br \/\>/g;     $message =~s|(https?\://[^\s]+)|<a href="$1"><tt>$1</tt></a>|g;
                  $message     if ($allowed) {
            =~s/(https*\:\/\/[^\s]+)/\<a href=\"$1\"\>\<tt\>$1\<\/tt\>\<\/a\>/g;         $message=&Apache::lonspeller::markeduptext($message);
          $message=&Apache::lontexconvert::msgtexconverted($message);     }
  if ($target ne 'tex') {     $message=&Apache::lontexconvert::msgtexconverted($message);
      $r->print('<h3>'.$syllabusfields{$_}.'</h3><blockquote>'.     if ($target ne 'tex') {
                                $message.'</blockquote>');   if($allowed){
  } else {   $r->print('<p>');
      $r->print('\\\\\textbf{'.$syllabusfields{$_}.'}\\\\'.   }
        &Apache::lonxml::xmlparse($r,'tex',$message).'\\\\');   &Apache::lontemplate::print_template($r, $syllabusfields{$field}, $message,$allowed,'LC_ContentBoxSpecial');
  }     } else {
  push @htmlids,$_;         $r->print('\\\\\textbf{'.$syllabusfields{$field}.'}\\\\'.
      }   &Apache::lonxml::xmlparse($r,'tex',$message).'\\\\');
               if ($allowed) {     }
                  $r->print(     push(@htmlids,$field);
    '<br /><textarea cols="80" rows="12" name="'.$_.'" id="'.$_.'">'.         }
    $syllabus{$_}.         if ($allowed) {
            '</textarea> <input type="submit" name="storesyl" value="Store" />');   if($target ne 'tex'){
       }   $r->print('</p>');
   }   &Apache::lontemplate::print_editbox_template($r, $syllabus{$field}, $field);
        }   }
   
          }
      }
          }    
   
        if ($allowed) {         if ($allowed) {
    $r->print('</form>'.     $r->print('</form>'.
      &Apache::lonhtmlcommon::htmlareaselectactive(@htmlids));       &Apache::lonhtmlcommon::htmlareaselectactive(@htmlids));
        }         }
        if ($target ne 'tex') {$r->print('</p>');} else {$r->print('\\\\');}        # if ($target ne 'tex') {$r->print('</p>');} else {$r->print('\\\\');}
       } else {
    if ($target ne 'tex') {$r->print('<p>');} else {$r->print('\par ');} 
    $r->print(&mt('No syllabus information provided.'));
    if ($target ne 'tex') {$r->print('</p>');}
       }
       if ($target ne 'tex') {
           if ($env{'form.backto'} eq 'coursecatalog') {
               $r->print('<form name="backtocat" method="post" action="/adm/coursecatalog">'.
                         &Apache::lonhtmlcommon::echo_form_input(['backto','courseid']).
                         '</form>');
           }
    $r->print(&Apache::loncommon::end_page());
     } else {      } else {
        $r->print('<p>No syllabus information provided.</p>');   $r->print('\end{document}');
     }      }
     if ($target ne 'tex') {$r->print('</body></html>');} else {$r->print('\end{document}');}  
     return OK;      return OK;
 }   } 
   

Removed from v.1.34  
changed lines
  Added in v.1.82


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.