--- loncom/interface/lonsyllabus.pm 2010/01/28 17:22:34 1.105
+++ loncom/interface/lonsyllabus.pm 2010/01/31 06:03:55 1.106
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.105 2010/01/28 17:22:34 raeburn Exp $
+# $Id: lonsyllabus.pm,v 1.106 2010/01/31 06:03:55 faziophi Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -58,7 +58,7 @@ sub handler {
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;
}
@@ -383,83 +383,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("");
+ &Apache::lontemplate::print_textarea_template($r, $data{$field},
+ $field, Apache::lontemplate->RICH_TEXT_ALWAYS_OFF);
+ &Apache::lontemplate::print_saveall_template($r);
+ $r->print("
");
+ &Apache::lontemplate::print_end_template($r);
- foreach my $field (sort(keys(%syllabusfields))) {
- if (($syllabus{$field}=~/\w/) || ($allowed)) {
- my $message=$syllabus{$field};
- if ($field eq 'lll_includeurl') { # this is the "included" field
- 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,$syllabusfields{$field}.
- &Apache::loncommon::help_open_topic('Syllabus_URLs'),'LC_Box');
- $r->print($urls);
- $r->print("");
- &Apache::lontemplate::print_textarea_template($r, $syllabus{$field},
- $field, Apache::lontemplate->RICH_TEXT_ALWAYS_OFF);
- &Apache::lontemplate::print_saveall_template($r);
- $r->print("
");
- &Apache::lontemplate::print_end_template($r);
-
- } else {
- $r->print($message);
- }
- } else {
- if (!&Apache::lonfeedback::contains_block_html($message)) {
- &Apache::lonfeedback::newline_to_br(\$message);
- } else {
- $message = &Apache::lonfeedback::tidy_html($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_start_template($r,$syllabusfields{$field},'LC_Box');
- $r->print($message);
- if ($allowed) {
- $r->print("");
- &Apache::lontemplate::print_textarea_template($r, $syllabus{$field},
- $field, Apache::lontemplate->RICH_TEXT_DETECT_HTML);
- &Apache::lontemplate::print_saveall_template($r);
- $r->print("
");
- }
- &Apache::lontemplate::print_end_template($r);
- } else {
- $r->print('\\\\\textbf{'.$syllabusfields{$field}.'}\\\\'.
- &Apache::lonxml::xmlparse($r,'tex',$message).'\\\\');
- }
- push(@htmlids,$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.'));