--- loncom/interface/lonsyllabus.pm 2009/12/03 02:13:28 1.103
+++ loncom/interface/lonsyllabus.pm 2010/03/03 21:33:15 1.107
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.103 2009/12/03 02:13:28 www Exp $
+# $Id: lonsyllabus.pm,v 1.107 2010/03/03 21:33:15 droeschl Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -52,13 +52,13 @@ sub handler {
my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);
# ------------------------------------------------------------ Get query string
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['forcestudent','register','forceedit','wrapperdisplay']);
+ ($ENV{'QUERY_STRING'},['forcestudent','register','forceedit']);
# ----------------------------------------------------- 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;
- &Apache::loncommon::simple_error_page($r,'No syllabus available',
+ &Apache::loncommon::simple_error_page($r,'No syllabus available',
'No syllabus available');
return OK;
}
@@ -74,14 +74,8 @@ sub handler {
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;
+ $r->print( Apache::lonwrapper::wrapper($externalsyllabus) );
+ return OK;
}
# ------------------------------ The buck stops here: internal syllabus display
@@ -383,70 +377,53 @@ ENDSCRIPT
'');
}
my @htmlids=();
+ my $url_include_handler = sub {
+ my ($r, $field, $message, $group, $data_ref, $fields_ref, $target, $allowed) = @_;
+ my %data = %{$data_ref};
+ my %fields = %{$fields_ref};
+ my $urls=$message;
+ $message='';
+ foreach my $filelink (split(/\n/,$urls)) {
+ my $output='';
+ # embed style?
+ my ($curfext)=($filelink=~/\.([^\.]+)$/);
+ my $embstyle=&Apache::loncommon::fileembstyle($curfext);
+ if (($embstyle eq 'ssi') || ($curfext=~/\/$/)) {# make ssi call and remove everything but the body contents
+ $output=&Apache::lonnet::ssi_body($filelink);
+ } elsif ($embstyle eq 'img') {# embed as an image
+ $output='';
+ }
+ if ($output ne '') {
+ if ($target ne 'tex') {
+ $message.='
'.$output.'
'; + } else { + $message.=' '.&Apache::lonxml::xmlparse($r,'tex',''.$output.'
').' '; + } + } + } + if ($allowed) { + &Apache::lonfeedback::newline_to_br(\$urls); + &Apache::lontemplate::print_start_template($r,$fields{$field}. + &Apache::loncommon::help_open_topic('Syllabus_URLs'),'LC_Box'); + $r->print($urls); + $r->print("'.$output.'
'; - } else { - $message.=' '.&Apache::lonxml::xmlparse($r,'tex',''.$output.'
').' '; - } - } - } - if ($allowed) { - if (!&Apache::lonfeedback::contains_block_html($urls)) { - &Apache::lonfeedback::newline_to_br(\$urls); - } - &Apache::lontemplate::print_template($r, $syllabusfields{$field}. - &Apache::loncommon::help_open_topic('Syllabus_URLs'), $urls,$allowed,'LC_Box'); - } else { - $r->print($message); - } - } else { - if (!&Apache::lonfeedback::contains_block_html($message)) { - &Apache::lonfeedback::newline_to_br(\$message); - } - $message=&Apache::lonhtmlcommon::raw_href_to_link($message); - if ($allowed) { - $message=&Apache::lonspeller::markeduptext($message); - } - $message=&Apache::lontexconvert::msgtexconverted($message); - if ($target ne 'tex') { - #output of syllabusfields will be generated here. - &Apache::lontemplate::print_template($r, $syllabusfields{$field}, $message,$allowed,'LC_Box'); - } else { - $r->print('\\\\\textbf{'.$syllabusfields{$field}.'}\\\\'. - &Apache::lonxml::xmlparse($r,'tex',$message).'\\\\'); - } - push(@htmlids,$field); - } - if ($allowed) { - if ($target ne 'tex') { - &Apache::lontemplate::print_editbox_template($r, $syllabus{$field}, $field); - } - } - } - } + } else { + $r->print($message); + } + }; + my %custom_hash = ( 'lll_includeurl' => $url_include_handler ); + @htmlids = &Apache::lontemplate::print_template_fields($r, \%syllabus, \%syllabusfields, + $target, $allowed, Apache::lontemplate->RICH_TEXT_DETECT_HTML, \%custom_hash); if ($allowed) { $r->print(''. &Apache::lonhtmlcommon::htmlareaselectactive(@htmlids)); } - # if ($target ne 'tex') {$r->print('');} else {$r->print('\\\\');} } else { if ($target ne 'tex') {$r->print('');} else {$r->print('\par ');} $r->print(&mt('No syllabus information provided.'));