version 1.43, 2010/01/31 06:03:55
|
version 1.52, 2025/01/28 19:49:20
|
Line 26
|
Line 26
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
|
|
|
|
package Apache::lontemplate; |
package Apache::lontemplate; |
|
|
|
|
use strict; |
use strict; |
|
use utf8; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::lonnet; |
use Apache::lonnet; |
Line 40 use Apache::lontexconvert;
|
Line 40 use Apache::lontexconvert;
|
use Apache::lonfeedback; |
use Apache::lonfeedback; |
use Apache::lonrss(); |
use Apache::lonrss(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Apache::lonhtmlgateway; |
use Apache::lonmsgdisplay(); |
use Apache::lonmsgdisplay(); |
use HTML::Entities(); |
use HTML::Entities(); |
|
|
Line 85 sub print_aboutme_content_template {
|
Line 86 sub print_aboutme_content_template {
|
&print_template($r,$syllabusfields{$field},$message,$allowed,'LC_Box'); |
&print_template($r,$syllabusfields{$field},$message,$allowed,'LC_Box'); |
} |
} |
if($allowed) { |
if($allowed) { |
&print_editbox_template($r,$syllabus{$field},$field); |
&print_editbox_template($r,$syllabus{$field},$field,$syllabusfields{$field}); |
} |
} |
|
|
} else { |
} else { |
Line 114 sub print_template {
|
Line 115 sub print_template {
|
} |
} |
|
|
sub print_start_template { |
sub print_start_template { |
my ($r,$topic,$boxclass) = @_; |
my ($r,$topic,$boxclass,$id,$display) = @_; |
$r->print('<div class="'.$boxclass.'">'); |
my $idattrib; |
|
if ($id ne '') { |
|
$idattrib = ' id="'.$id.'"'; |
|
} |
|
$r->print('<div class="'.$boxclass.'"'.$idattrib.$display.'>'); |
$r->print('<h4 class="LC_hcell">'.$topic.'</h4>'); |
$r->print('<h4 class="LC_hcell">'.$topic.'</h4>'); |
} |
} |
|
|
Line 125 sub print_end_template {
|
Line 130 sub print_end_template {
|
} |
} |
|
|
sub print_editbox_template { |
sub print_editbox_template { |
my ($r,$content,$field) = @_; |
my ($r,$content,$field,$fieldname) = @_; |
$r->print('<textarea cols="81" rows="6" name="'.$field.'">'. |
my $labeltext = &HTML::Entities::encode(&mt('Edit [_1]',$fieldname),'"&<>'); |
&HTML::Entities::encode($content,'"&<>'). |
$r->print('<textarea cols="81" rows="6" name="'.$field.'" aria-label="'.$labeltext.'">'. |
'</textarea><br /><input type="submit" name="storesyl" value="'. |
&HTML::Entities::encode($content,'"&<>'). |
&mt('Save All').'" />'); |
'</textarea><br />'."\n"); |
|
&print_saveall_template($r); |
} |
} |
|
|
sub print_textarea_template { |
sub print_textarea_template { |
my ($r, $content, $field, $wysiwyg) = @_; |
my ($r, $content, $field, $fieldname, $wysiwyg) = @_; |
$r->print('<textarea cols="81" rows="6" class="'.$wysiwyg.'" id="'.$field.'" name="'.$field.'">'. |
my $labeltext = &HTML::Entities::encode(&mt('Edit [_1]',$fieldname),'"&<>'); |
|
$r->print('<textarea cols="81" rows="6" class="'.$wysiwyg.'" id="'.$field.'" name="'.$field.'" aria-label="'.$labeltext.'">'. |
&HTML::Entities::encode($content, '"&<>'). |
&HTML::Entities::encode($content, '"&<>'). |
'</textarea><br />'); |
'</textarea><br />'); |
} |
} |
Line 145 sub print_saveall_template {
|
Line 152 sub print_saveall_template {
|
} |
} |
|
|
sub print_template_fields { |
sub print_template_fields { |
my ($r, $data_ref, $fields_ref, $target, $allowed, $default_rich_text, $custom_handlers_ref, $group) = @_; |
my ($r, $data_ref, $fields_ref, $target, $allowed, $default_rich_text, $custom_handlers_ref, $group, |
|
$displayref,$noshowref) = @_; |
my @html_ids = (); |
my @html_ids = (); |
my %data = %{$data_ref}; |
my %data = %{$data_ref}; |
my %fields = %{$fields_ref}; |
my %fields = %{$fields_ref}; |
my %custom_handlers = %{$custom_handlers_ref}; |
my %custom_handlers = %{$custom_handlers_ref}; |
|
my (%displays,%noshow); |
|
if (ref($displayref) eq 'HASH') { |
|
%displays = %{$displayref}; |
|
} |
|
if (ref($noshowref) eq 'HASH') { |
|
%noshow = %{$noshowref}; |
|
} |
foreach my $field (sort(keys(%fields))) { |
foreach my $field (sort(keys(%fields))) { |
my $message = $data{$field} if (($data{$field}=~/\w/) || ($allowed)); |
my $message = $data{$field} if (($data{$field}=~/\w/) || ($allowed)); |
if ((%custom_handlers) && ($custom_handlers{$field})) { |
my $legacy = 1; |
$custom_handlers{$field}->($r, $field, $message, $group, $data_ref, $fields_ref, $target, $allowed); |
my $display = $displays{$field}; |
|
unless ($allowed) { |
|
next if ($noshow{$field}); |
|
} |
|
my $gateway = Apache::lonhtmlgateway->new($target); |
|
$message = &Encode::decode('utf8', $message); |
|
$message = $gateway->process_outgoing_html($message, $legacy); |
|
if ((%custom_handlers) && ($custom_handlers{$field})) { |
|
$custom_handlers{$field}->($r, $field, $message, $group, $data_ref, $fields_ref, $target, $allowed, $display); |
} else { |
} else { |
if (($data{$field}=~/\w/) || ($allowed)) { |
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') { |
if ($target ne 'tex') { |
#output of syllabusfields will be generated here. |
#output of syllabusfields will be generated here. |
&Apache::lontemplate::print_start_template($r,$fields{$field},'LC_Box'); |
&Apache::lontemplate::print_start_template($r,$fields{$field},'LC_Box','box_'.$field,$display); |
$r->print($message); |
$r->print($message); |
if ($allowed) { |
if ($allowed) { |
$r->print("<br /><div>"); |
$r->print("<br /><div>"); |
&Apache::lontemplate::print_textarea_template($r, $data{$field}, |
&print_textarea_template($r, $data{$field}, |
$field, $default_rich_text); |
$field, $fields{$field}, $default_rich_text); |
&Apache::lontemplate::print_saveall_template($r); |
&print_saveall_template($r); |
$r->print("</div>"); |
$r->print("</div>"); |
} |
} |
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
} else { |
} else { |
my $safeinit; |
my $safeinit; |
$r->print(&Apache::lonxml::xmlparse($r,'tex','<h3>'.$fields{$field}.'</h3>')); |
if ($fields{$field}=~/\w/) { |
$r->print(&Apache::lonxml::xmlparse($r,'tex',$message)); |
$r->print(&Apache::lonxml::xmlparse($r,'tex','<h3>'.$fields{$field}.'</h3>')); |
|
} else { |
|
$r->print(&Apache::lonxml::xmlparse($r,'tex','<br />')); |
|
} |
|
$r->print(&Apache::lonxml::xmlparse($r,'tex',$message)); |
} |
} |
push(@html_ids,$field); |
push(@html_ids,$field); |
} |
} |
} |
} |
|
undef $gateway; |
} |
} |
|
|
return @html_ids; |
return @html_ids; |