version 1.50, 2006/03/21 21:50:49
|
version 1.56, 2006/10/23 20:25:45
|
Line 38 use Apache::lonannounce;
|
Line 38 use Apache::lonannounce;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Apache::lonspeller(); |
use Apache::lonspeller(); |
|
use HTML::Entities(); |
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 71 sub handler {
|
Line 72 sub handler {
|
if ($target eq 'tex') { |
if ($target eq 'tex') { |
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'})); |
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'})); |
} |
} |
# ----------------------------------------------------- Force menu registration |
|
my $addentries=''; |
|
if ($env{'form.register'}) { |
|
$addentries=' onLoad="'.&Apache::lonmenu::loadevents(). |
|
'" onUnload="'.&Apache::lonmenu::unloadevents().'"'; |
|
} |
|
# -------------------------------------------------- Let's see who handles this |
# -------------------------------------------------- Let's see who handles this |
my $externalsyllabus=$courseenv{'externalsyllabus'}; |
my $externalsyllabus=$courseenv{'externalsyllabus'}; |
|
|
Line 120 sub handler {
|
Line 115 sub handler {
|
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page("Syllabus", $rss_link, |
&Apache::loncommon::start_page("Syllabus", $rss_link, |
{'function' => $forcestudent, |
{'function' => $forcestudent, |
'add_entries' => $addentries, |
|
'domain' => $cdom, |
'domain' => $cdom, |
'force_register' => |
'force_register' => |
$env{'form.register'},}); |
$env{'form.register'},}); |
Line 135 sub handler {
|
Line 129 sub handler {
|
my $day = &Apache::lonannounce::showday(time,2, |
my $day = &Apache::lonannounce::showday(time,2, |
&Apache::lonannounce::readcalendar($cdom.'_'.$cnum)); |
&Apache::lonannounce::readcalendar($cdom.'_'.$cnum)); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print($day. &Apache::lonrss::advertisefeeds($cnum,$cdom)); |
$r->print($day. &Apache::lonrss::advertisefeeds($cnum,$cdom,$forceedit)); |
} else { |
} else { |
$r->print(&Apache::lonxml::xmlparse($r,'tex',$day)); |
$r->print(&Apache::lonxml::xmlparse($r,'tex',$day)); |
} |
} |
Line 184 sub handler {
|
Line 178 sub handler {
|
# ----------------------------------------------------- Only if not public call |
# ----------------------------------------------------- Only if not public call |
if ($env{'user.environment'}) { |
if ($env{'user.environment'}) { |
# does this user have privileges to post, etc? |
# does this user have privileges to post, etc? |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'} |
|
&& $cdom eq $env{'course.'.$env{'request.course.id'}.'.domain'} |
|
&& $cnum eq $env{'course.'.$env{'request.course.id'}.'.num'}) { |
$allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
$allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
$privileged=$allowed; |
$privileged=$allowed; |
if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) { |
if (($syllabus{'uploaded.lastmodified'}) && (!$forceedit)) { |
Line 210 sub handler {
|
Line 206 sub handler {
|
} |
} |
} |
} |
if (($allowed) && ($env{'form.storesyl'})) { |
if (($allowed) && ($env{'form.storesyl'})) { |
foreach (keys %syllabusfields) { |
foreach my $syl_field (keys(%syllabusfields)) { |
my $field=$env{'form.'.$_}; |
my $field=$env{'form.'.$syl_field}; |
chomp($field); |
chomp($field); |
$field=~s/\s+$//s; |
$field=~s/\s+$//s; |
$field=~s/^\s+//s; |
$field=~s/^\s+//s; |
$field=~s/\<br\s*\/*\>$//s; |
$field=~s/\<br\s*\/*\>$//s; |
$field=&Apache::lonfeedback::clear_out_html($field,1); |
$field=&Apache::lonfeedback::clear_out_html($field,1); |
$syllabus{$_}=$field; |
$syllabus{$syl_field}=$field; |
if ($_ eq 'lll_includeurl') { # clean up included URLs |
if ($syl_field eq 'lll_includeurl') { # clean up included URLs |
my $field=''; |
my $field=''; |
foreach (split(/\n/,$syllabus{$_})) { |
foreach my $value (split(/\n/,$syllabus{$syl_field})) { |
my $url=$_; |
my $url=$value; |
# get rid of leading and trailing spaces |
# get rid of leading and trailing spaces |
$url=~s/^\s+//; |
$url=~s/^\s+//; |
$url=~s/\s+$//; |
$url=~s/\s+$//; |
if ($url=~/^http\:\/\/([^\/]+)\/(.+)$/) { |
if ($url=~m|^http://([^/]+)/(.+)$|) { |
|
my $host = $1; |
my $remainder=$2; |
my $remainder=$2; |
# remove the hostname from internal URLs |
# remove the hostname from internal URLs |
foreach (keys %Apache::lonnet::hostname) { |
foreach my $possible_host (keys(%Apache::lonnet::hostname)) { |
if ($1=~/$Apache::lonnet::hostname{$_}/i) { |
if ($possible_host =~ |
|
/\Q$Apache::lonnet::hostname{$host}\E/i) { |
$url=$remainder; |
$url=$remainder; |
} |
} |
} |
} |
Line 243 sub handler {
|
Line 241 sub handler {
|
$field.=$url."\n"; |
$field.=$url."\n"; |
} |
} |
} |
} |
$syllabus{$_}=$field; |
$syllabus{$syl_field}=$field; |
} |
} |
} |
} |
$syllabus{'uploaded.domain'}=$env{'user.domain'}; |
$syllabus{'uploaded.domain'}=$env{'user.domain'}; |
Line 274 sub handler {
|
Line 272 sub handler {
|
'<input type="hidden" name="forceedit" value="edit" />'); |
'<input type="hidden" name="forceedit" value="edit" />'); |
} |
} |
my @htmlids=(); |
my @htmlids=(); |
foreach (sort keys %syllabusfields) { |
foreach my $field (sort(keys(%syllabusfields))) { |
if (($syllabus{$_}=~/\w/) || ($allowed)) { |
if (($syllabus{$field}=~/\w/) || ($allowed)) { |
my $message=$syllabus{$_}; |
my $message=$syllabus{$field}; |
if ($_ eq 'lll_includeurl') { # this is the "included" field |
if ($field eq 'lll_includeurl') { # this is the "included" field |
my $urls=$message; |
my $urls=$message; |
$message=''; |
$message=''; |
foreach my $filelink (split(/\n/,$urls)) { |
foreach my $filelink (split(/\n/,$urls)) { |
my $output=''; |
my $output=''; |
# embed style? |
# embed style? |
my ($curfext)=($filelink=~/\.([^\.]+)$/); |
my ($curfext)=($filelink=~/\.([^\.]+)$/); |
my $embstyle=&Apache::loncommon::fileembstyle($curfext); |
my $embstyle=&Apache::loncommon::fileembstyle($curfext); |
if (($embstyle eq 'ssi') || ($curfext=~/\/$/)) { |
if (($embstyle eq 'ssi') || ($curfext=~/\/$/)) { |
# make ssi call and remove everything but the body contents |
# make ssi call and remove everything but the body contents |
$output=&Apache::lonnet::ssi_body($filelink); |
$output=&Apache::lonnet::ssi_body($filelink); |
} elsif ($embstyle eq 'img') { |
} elsif ($embstyle eq 'img') { |
# embed as an image |
# embed as an image |
$output='<img src="'.$filelink.'" />'; |
$output='<img src="'.$filelink.'" />'; |
} |
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$message.='<p>'.$output.'</p>'; |
$message.='<p>'.$output.'</p>'; |
} else { |
} else { |
$message.=' '.&Apache::lonxml::xmlparse($r,'tex','<p>'.$output.'</p>').' '; |
$message.=' '.&Apache::lonxml::xmlparse($r,'tex','<p>'.$output.'</p>').' '; |
} |
} |
} |
} |
if ($allowed) { |
if ($allowed) { |
$r->print('<h3>'.$syllabusfields{$_}. |
$r->print('<h3>'.$syllabusfields{$field}. |
&Apache::loncommon::help_open_topic('Syllabus_URLs').'</h3>'. |
&Apache::loncommon::help_open_topic('Syllabus_URLs').'</h3>'. |
'<p><a href="'.$r->uri.'?forcestudent=1"><font size="+1">'.&mt('Show Public View').'</font></a>'. |
'<p><a href="'.$r->uri.'?forcestudent=1"><font size="+1">'.&mt('Show Public View').'</font></a>'. |
&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'</p>'); |
&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'</p>'); |
} else { |
} else { |
$r->print($message); |
$r->print($message); |
} |
} |
} else { |
} else { |
&Apache::lonfeedback::newline_to_br(\$message); |
&Apache::lonfeedback::newline_to_br(\$message); |
$message |
$message =~s|(https*://[^\s]+)|<a href="$1"><tt>$1</tt></a>|g; |
=~s/(https*\:\/\/[^\s]+)/\<a href=\"$1\"\>\<tt\>$1\<\/tt\>\<\/a\>/g; |
if ($allowed) { |
if ($allowed) { |
$message=&Apache::lonspeller::markeduptext($message); |
$message=&Apache::lonspeller::markeduptext($message); |
} |
} |
$message=&Apache::lontexconvert::msgtexconverted($message); |
$message=&Apache::lontexconvert::msgtexconverted($message); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print('<h3>'.$syllabusfields{$field}.'</h3><blockquote>'. |
$r->print('<h3>'.$syllabusfields{$_}.'</h3><blockquote>'. |
$message.'</blockquote>'); |
$message.'</blockquote>'); |
} else { |
} else { |
$r->print('\\\\\textbf{'.$syllabusfields{$field}.'}\\\\'. |
$r->print('\\\\\textbf{'.$syllabusfields{$_}.'}\\\\'. |
&Apache::lonxml::xmlparse($r,'tex',$message).'\\\\'); |
&Apache::lonxml::xmlparse($r,'tex',$message).'\\\\'); |
} |
} |
push(@htmlids,$field); |
push @htmlids,$_; |
} |
} |
if ($allowed) { |
if ($allowed) { |
$r->print('<br /><textarea cols="80" rows="12" name="'.$field.'" id="'.$field.'">'. |
$r->print( |
&HTML::Entities::encode($syllabus{$field},'"&<>'). |
'<br /><textarea cols="80" rows="12" name="'.$_.'" id="'.$_.'">'. |
'</textarea> <input type="submit" name="storesyl" value="Store" />'); |
$syllabus{$_}. |
} |
'</textarea> <input type="submit" name="storesyl" value="Store" />'); |
} |
} |
|
} |
|
} |
} |
if ($allowed) { |
if ($allowed) { |
$r->print('</form>'. |
$r->print('</form>'. |