--- loncom/interface/lontemplate.pm 2009/06/08 18:04:46 1.36
+++ loncom/interface/lontemplate.pm 2010/01/31 06:03:55 1.43
@@ -1,7 +1,7 @@
# The LearningOnline Network
# "Template" Functions to generate html output
#
-# $Id: lontemplate.pm,v 1.36 2009/06/08 18:04:46 bisitz Exp $
+# $Id: lontemplate.pm,v 1.43 2010/01/31 06:03:55 faziophi Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -43,6 +43,13 @@ use Apache::lonlocal;
use Apache::lonmsgdisplay();
use HTML::Entities();
+use constant {
+ RICH_TEXT_ALWAYS_ON => 'LC_richAlwaysOn',
+ RICH_TEXT_ALWAYS_OFF => 'LC_richAlwaysOff',
+ RICH_TEXT_DEFAULT_ON => 'LC_richDefaultOn',
+ RICH_TEXT_DETECT_HTML => 'LC_richDetectHtml',
+ RICH_TEXT_DEFAULT_OFF => 'LC_richDefaultOff'
+};
sub start_columnSection {
my ($r) = @_;
@@ -62,35 +69,29 @@ sub print_aboutme_content_template {
foreach my $field (sort(keys(%syllabusfields))) {
if (($syllabus{$field}) || ($allowed)) {
my $message=$syllabus{$field};
- &Apache::lonfeedback::newline_to_br(\$message);
- $message
- =~s/(http\:\/\/[^\s]+)/\\$1\<\/tt\>\<\/a\>/g;
+ 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') {
- if ($allowed) {
- $r->print('');
- }
-
if($field eq 'aaa_contactinfo') {
$r->print('
');
&print_template($r,$syllabusfields{$field},$message,$allowed,'LC_Box');
} else {
&print_template($r,$syllabusfields{$field},$message,$allowed,'LC_Box');
}
+ if($allowed) {
+ &print_editbox_template($r,$syllabus{$field},$field);
+ }
} else {
$r->print('\\\\\textbf{'.$syllabusfields{$field}.'}\\\\'.
&Apache::lonxml::xmlparse($r,'tex',$message).'\\\\');
}
- if ($allowed) {
- &print_editbox_template($r,$syllabus{$field},$field);
- if ($target ne 'tex') {
- $r->print('
');
- }
- }
}
}
@@ -98,10 +99,10 @@ sub print_aboutme_content_template {
sub send_message {
my ($r,$cnum,$cdom) = @_;
- my $s;
- my $image = qq{
};
- $s=&Apache::loncommon::messagewrapper($image,$cnum,$cdom).' '.&Apache::loncommon::messagewrapper(&mt('Send me a message'),$cnum,$cdom);
- return $s;
+ my $linktext = &mt('Send message to [_1]',
+ &Apache::loncommon::plainname($cnum,$cdom));
+ my $image = qq{
};
+ return &Apache::loncommon::messagewrapper($image,$cnum,$cdom).' '.&Apache::loncommon::messagewrapper($linktext,$cnum,$cdom);
}
sub print_template {
@@ -131,23 +132,64 @@ sub print_editbox_template {
&mt('Save All').'" />');
}
-# Functionslist: List of functions
-# Typically used to display a list of available functions at top of page
-sub start_functionslist {
- my($legendtext)=@_;
- $legendtext=&mt('Functions') if !$legendtext;
- return '';
+sub print_textarea_template {
+ my ($r, $content, $field, $wysiwyg) = @_;
+ $r->print('
');
+}
+
+sub print_saveall_template {
+ my ($r) = @_;
+ $r->print('');
+}
+
+sub print_template_fields {
+ my ($r, $data_ref, $fields_ref, $target, $allowed, $default_rich_text, $custom_handlers_ref, $group) = @_;
+ my @html_ids = ();
+ my %data = %{$data_ref};
+ my %fields = %{$fields_ref};
+ my %custom_handlers = %{$custom_handlers_ref};
+
+ foreach my $field (sort(keys(%fields))) {
+ my $message = $data{$field} if (($data{$field}=~/\w/) || ($allowed));
+ if ((%custom_handlers) && ($custom_handlers{$field})) {
+ $custom_handlers{$field}->($r, $field, $message, $group, $data_ref, $fields_ref, $target, $allowed);
+ } else {
+ if (($data{$field}=~/\w/) || ($allowed)) {
+ 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,$fields{$field},'LC_Box');
+ $r->print($message);
+ if ($allowed) {
+ $r->print("
");
+ &Apache::lontemplate::print_textarea_template($r, $data{$field},
+ $field, $default_rich_text);
+ &Apache::lontemplate::print_saveall_template($r);
+ $r->print("
");
+ }
+ &Apache::lontemplate::print_end_template($r);
+ } else {
+ my $safeinit;
+ $r->print(&Apache::lonxml::xmlparse($r,'tex',''.$fields{$field}.'
'));
+ $r->print(&Apache::lonxml::xmlparse($r,'tex',$message));
+ }
+ push(@html_ids,$field);
+ }
+ }
+ }
+
+ return @html_ids;
}
1;