--- loncom/interface/lonsyllabus.pm 2009/12/22 06:31:02 1.104
+++ loncom/interface/lonsyllabus.pm 2010/04/14 14:15:15 1.109
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Syllabus
#
-# $Id: lonsyllabus.pm,v 1.104 2009/12/22 06:31:02 faziophi Exp $
+# $Id: lonsyllabus.pm,v 1.109 2010/04/14 14:15:15 bisitz 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
@@ -288,10 +282,20 @@ ENDSCRIPT
#----------Print last update
my $lastmod=$syllabus{'uploaded.lastmodified'};
$lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
- my $who = &Apache::loncommon::aboutmewrapper(
- &Apache::loncommon::plainname($syllabus{'uploaded.name'},
- $syllabus{'uploaded.domain'}),$syllabus{'uploaded.name'},
- $syllabus{'uploaded.domain'});
+ my $who;
+ if (($env{'user.name'} ne 'public') && ($env{'user.domain'} ne 'public')) {
+ $who = &Apache::loncommon::aboutmewrapper(
+ &Apache::loncommon::plainname($syllabus{'uploaded.name'},
+ $syllabus{'uploaded.domain'}),$syllabus{'uploaded.name'},
+ $syllabus{'uploaded.domain'});
+ } else {
+ # Public user?
+ # Only display name of user, but no link to personal information page
+ $who = &Apache::loncommon::plainname(
+ $syllabus{'uploaded.name'},
+ $syllabus{'uploaded.domain'});
+ }
+
if ($target ne 'tex') {
$r->print('
'.&mt('Last updated').': '.
$lastmod . ' '.
@@ -362,13 +366,13 @@ ENDSCRIPT
&Apache::lonannounce::readcalendar($cdom.'_'.$cnum));
if ($target ne 'tex') {
if ($allowed) {
- &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_Box');
+ &Apache::lontemplate::print_start_template($r,&mt('RSS Feeds and Blogs'),'LC_Box');
$r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit));
my $editurl= &Apache::lonnet::absolute_url().'/adm/'.$cdom.'/'.$cnum.'/_rss.html';
$r->print( '
'.&mt('New RSS Feed or Blog').' ');
&Apache::lontemplate::print_end_template($r);
} elsif (&Apache::lonrss::advertisefeeds($cnum,$cdom) ne '') {
- &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_Box');
+ &Apache::lontemplate::print_start_template($r,&mt('RSS Feeds and Blogs'),'LC_Box');
$r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit));
&Apache::lontemplate::print_end_template($r);
}
@@ -383,84 +387,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 =~s|(https?\://[^\s]+)|
$1 |g;
- $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.'));