Diff for /loncom/interface/lonsyllabus.pm between versions 1.38 and 1.45

version 1.38, 2004/07/27 23:35:34 version 1.45, 2006/03/06 22:17:48
Line 41  use Apache::lonspeller(); Line 41  use Apache::lonspeller();
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
   
   # --------------------------------------------------- Get course info from URL
       my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);
   # ----------------------------------------------------- Is this even a course?
       my $homeserver=&Apache::lonnet::homeserver($cnum,$cdom);
       if ($homeserver eq 'no_host') {
           &Apache::loncommon::content_type($r,'text/html');
           $r->send_http_header;
           $r->print('<html><body>'.&mt('No syllabus available').'</body></html>');
           return OK;
       }
   # ------------------------------------- There is such a course, get environment
       my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
       
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
 # ------------------------------------------------------------ Print the screen  # ------------------------------------------------------------ Print the screen
     my $target=$ENV{'form.grade_target'};      my $target=$env{'form.grade_target'};
       my $feedurl='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$cdom.'/'.$cnum.'/Course_Announcements.rss';
     if ($target ne 'tex') {      if ($target ne 'tex') {
    my $html=&Apache::lonxml::xmlbegin();
  $r->print(<<ENDDOCUMENT);   $r->print(<<ENDDOCUMENT);
 <html>  $html
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
   <link rel="alternate" type="application/rss+xml" title="Course Announcements" href="$feedurl" />
 ENDDOCUMENT  ENDDOCUMENT
     } else {      } else {
  $r->print(&Apache::lonprintout::print_latex_header($ENV{'form.latex_type'}));   $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
     }       } 
     my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);  
 # Is this even a course?  
     my $homeserver=&Apache::lonnet::homeserver($cnum,$cdom);   
     if ($homeserver eq 'no_host') {  
  $r->print('</head><body>'.&mt('No syllabus available').'</body></html>');  
         return OK;  
     }  
 # --------------------------------------------------------- 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 86  ENDDOCUMENT Line 96  ENDDOCUMENT
                         ($ENV{'QUERY_STRING'},['forcestudent','register','forceedit']);                          ($ENV{'QUERY_STRING'},['forcestudent','register','forceedit']);
 # ----------------------------------------------------- Force menu registration  # ----------------------------------------------------- Force menu registration
     my $addentries='';      my $addentries='';
     if ($ENV{'form.register'}) {      if ($env{'form.register'}) {
        $addentries=' onLoad="'.&Apache::lonmenu::loadevents().         $addentries=' onLoad="'.&Apache::lonmenu::loadevents().
    '" onUnload="'.&Apache::lonmenu::unloadevents().'"';     '" onUnload="'.&Apache::lonmenu::unloadevents().'"';
        $r->print(&Apache::lonmenu::registerurl(1));         $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().   $r->print(&Apache::lonhtmlcommon::htmlareaheaders().
   '</head>'.&Apache::loncommon::bodytag    '</head>'.&Apache::loncommon::bodytag
             ("Syllabus",$forcestudent,$addentries,'',$cdom,$ENV{'form.register'}));              ("Syllabus",$forcestudent,$addentries,'',$cdom,$env{'form.register'}));
  $r->print('<h1>'.$courseenv{'description'}.'</h1><h3>'.   $r->print('<h1>'.$courseenv{'description'}.'</h1><h3>'.
                  $Apache::lonnet::domaindescription{$cdom}.'</h3>');                   $Apache::lonnet::domaindescription{$cdom}.'</h3>');
     } else {      } else {
Line 112  ENDDOCUMENT Line 121  ENDDOCUMENT
 # -------------------------------------------------------------- Announcements?  # -------------------------------------------------------------- Announcements?
     if ($target ne 'tex') {      if ($target ne 'tex') {
  $r->print(&Apache::lonannounce::showday(time,2,   $r->print(&Apache::lonannounce::showday(time,2,
                          &Apache::lonannounce::readcalendar($cdom.'_'.$cnum)));         &Apache::lonannounce::readcalendar($cdom.'_'.$cnum)).
                          &Apache::lonrss::advertisefeeds($cnum,$cdom));
     } else {      } else {
  $r->print(&Apache::lonxml::xmlparse($r,'tex',   $r->print(&Apache::lonxml::xmlparse($r,'tex',
        &Apache::lonannounce::showday(time,2,         &Apache::lonannounce::showday(time,2,
Line 160  ENDDOCUMENT Line 170  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'});            $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';
Line 186  ENDDOCUMENT Line 196  ENDDOCUMENT
  &mt('Edit').'</font></a>');    &mt('Edit').'</font></a>'); 
   }    }
       }        }
        if (($allowed) && ($ENV{'form.storesyl'})) {         if (($allowed) && ($env{'form.storesyl'})) {
    foreach (keys %syllabusfields) {     foreach (keys %syllabusfields) {
                my $field=$ENV{'form.'.$_};                 my $field=$env{'form.'.$_};
        chomp($field);         chomp($field);
                $field=~s/\s+$//s;                 $field=~s/\s+$//s;
        $field=~s/^\s+//s;         $field=~s/^\s+//s;
Line 223  ENDDOCUMENT Line 233  ENDDOCUMENT
                   $syllabus{$_}=$field;                    $syllabus{$_}=$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);
        }         }
Line 284  ENDDOCUMENT Line 294  ENDDOCUMENT
                   $r->print($message);                    $r->print($message);
                  }                    } 
               } else {                } else {
                  $message=~s/\n/\<br \/\>/g;    &Apache::lonfeedback::newline_to_br(\$message);
                  $message                   $message
            =~s/(https*\:\/\/[^\s]+)/\<a href=\"$1\"\>\<tt\>$1\<\/tt\>\<\/a\>/g;             =~s/(https*\:\/\/[^\s]+)/\<a href=\"$1\"\>\<tt\>$1\<\/tt\>\<\/a\>/g;
  if ($allowed) {   if ($allowed) {

Removed from v.1.38  
changed lines
  Added in v.1.45


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