--- loncom/interface/lonsyllabus.pm 2006/03/15 19:41:26 1.48 +++ loncom/interface/lonsyllabus.pm 2006/08/01 13:55:07 1.53 @@ -1,7 +1,7 @@ # The LearningOnline Network # Syllabus # -# $Id: lonsyllabus.pm,v 1.48 2006/03/15 19:41:26 albertel Exp $ +# $Id: lonsyllabus.pm,v 1.53 2006/08/01 13:55:07 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -56,79 +56,33 @@ sub handler { if ($homeserver eq 'no_host') { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - $r->print(&Apache::loncommon::startpage('No syllabus available'). - &mt('No syllabus available'). - &Apache::loncommon::end_page()); + &Apache::loncommon::simple_error_page($r,'No syllabus available', + 'No syllabus available'); return OK; } # ------------------------------------- There is such a course, get environment my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); # ------------------------------------------------------------ Print the screen - my $feedurl='http://'.$ENV{'HTTP_HOST'}.'/public/'.$cdom.'/'.$cnum.'/Course_Announcements.rss'; - if ($target ne 'tex') { - my $html=&Apache::lonxml::xmlbegin(); - my $head=&Apache::loncommon::headtag('The LearningOnline Network with CAPA'); - $r->print(< -ENDDOCUMENT - } else { + + my $rss_link = + &Apache::lonrss::rss_link('http://'.$ENV{'HTTP_HOST'}.'/public/'.$cdom.'/'.$cnum.'/Course_Announcements.rss'); + + if ($target eq 'tex') { $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'})); } -# ----------------------------------------------------- Force menu registration - my $addentries=''; - if ($env{'form.register'}) { - $addentries=' onLoad="'.&Apache::lonmenu::loadevents(). - '" onUnload="'.&Apache::lonmenu::unloadevents().'"'; - $r->print(&Apache::lonmenu::registerurl(1)); - } # -------------------------------------------------- Let's see who handles this my $externalsyllabus=$courseenv{'externalsyllabus'}; + if ($externalsyllabus=~/\w/) { - $r->print(&Apache::loncommon::endheadtag()); + if ($env{'form.wrapperdisplay'} eq 'menu') { -# -# Producing the menu buttons -# - $r->print(''. - &Apache::lonmenu::menubuttons(1,'web',1). - &Apache::loncommon::end_page()); - } else { - if ($env{'browser.interface'} eq 'textual') { -# -# ssi-based rendering for text-based interface -# - $r->print(''. - &Apache::lonmenu::menubuttons(1). - &Apache::lonnet::ssi_body($externalsyllabus). - &Apache::loncommon::end_page()); - } elsif ($env{'environment.remote'} eq 'off') { -# -# This is inline remote -# - $r->print(< - - - - -ENDDOCUMENTINL - } else { -# -# frame-based rendering for graphical interface -# - $r->print(< - - - - -ENDDOCUMENT - } - } - return OK; + $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 @@ -157,25 +111,28 @@ ENDDOCUMENT # ----------------------------------------------------------------- Make header if ($target ne 'tex') { - $r->print(&Apache::lonhtmlcommon::htmlareaheaders(). - &Apache::loncommon::endheadtag(). - &Apache::loncommon::bodytag("Syllabus",$forcestudent,$addentries,'',$cdom,$env{'form.register'})); - $r->print('

'.$courseenv{'description'}.'

'. + my $start_page = + &Apache::loncommon::start_page("Syllabus", $rss_link, + {'function' => $forcestudent, + 'domain' => $cdom, + 'force_register' => + $env{'form.register'},}); + + $r->print($start_page.'

'.$courseenv{'description'}.'

'. $Apache::lonnet::domaindescription{$cdom}.'

'); } else { $r->print('\noindent{\large\textbf{'.$courseenv{'description'}.'}}\\\\\\\\\textbf{'. $Apache::lonnet::domaindescription{$cdom}.'}\\\\'); } # -------------------------------------------------------------- Announcements? + my $day = &Apache::lonannounce::showday(time,2, + &Apache::lonannounce::readcalendar($cdom.'_'.$cnum)); if ($target ne 'tex') { - $r->print(&Apache::lonannounce::showday(time,2, - &Apache::lonannounce::readcalendar($cdom.'_'.$cnum)). - &Apache::lonrss::advertisefeeds($cnum,$cdom)); + $r->print($day. &Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit)); } else { - $r->print(&Apache::lonxml::xmlparse($r,'tex', - &Apache::lonannounce::showday(time,2, - &Apache::lonannounce::readcalendar($cdom.'_'.$cnum)))); + $r->print(&Apache::lonxml::xmlparse($r,'tex',$day)); } + # -------------------------------------------------------- Get course personnel my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum); if ($target ne 'tex') { @@ -220,7 +177,9 @@ ENDDOCUMENT # ----------------------------------------------------- Only if not public call if ($env{'user.environment'}) { # does this user have privileges to post, etc? - if ($env{'request.course.id'}) { + if ($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; if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) {