--- loncom/interface/lonsyllabus.pm	2009/11/26 05:21:43	1.101
+++ 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.101 2009/11/26 05:21:43 faziophi 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,67 +383,53 @@ ENDSCRIPT
             '<input type="hidden" name="forceedit" value="edit" />');
         }
         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='<img src="'.$filelink.'" />';
+				}
+				if ($output ne '') {
+					   if ($target ne 'tex') {
+						   $message.='<p>'.$output.'</p>';
+					   } else {
+						   $message.=' '.&Apache::lonxml::xmlparse($r,'tex','<p>'.$output.'</p>').' ';
+					   }
+				}
+			}
+			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("<br /><div>");
+				 &Apache::lontemplate::print_textarea_template($r, $data{$field},
+					$field, Apache::lontemplate->RICH_TEXT_ALWAYS_OFF);
+				 &Apache::lontemplate::print_saveall_template($r);                         
+				 $r->print("</div>");
+				 &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='<img src="'.$filelink.'" />';
-                        }
-                        if ($output ne '') {
-                               if ($target ne 'tex') {
-                                   $message.='<p>'.$output.'</p>';
-                               } else {
-                                   $message.=' '.&Apache::lonxml::xmlparse($r,'tex','<p>'.$output.'</p>').' ';
-                               }
-                        }
-                    }
-                    if ($allowed) {
-                        $r->print('<h3>'.$syllabusfields{$field}.
-                        &Apache::loncommon::help_open_topic('Syllabus_URLs').'</h3>');
-                    } else {
-                        $r->print($message);
-                    }
-                } else {
-                    if (!&Apache::lonfeedback::contains_block_html($message)) {
-                    	&Apache::lonfeedback::newline_to_br(\$message);
-                    }
-                    $message =~s|(https?\://[^\s]+)|<a href="$1"><tt>$1</tt></a>|g;
-                    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('</form>'.
             &Apache::lonhtmlcommon::htmlareaselectactive(@htmlids));
         }
-      # 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.'));