--- loncom/interface/lonsimplepage.pm 2012/11/08 21:15:02 1.99
+++ loncom/interface/lonsimplepage.pm 2025/01/28 19:49:20 1.108
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Simple Page Editor
#
-# $Id: lonsimplepage.pm,v 1.99 2012/11/08 21:15:02 raeburn Exp $
+# $Id: lonsimplepage.pm,v 1.108 2025/01/28 19:49:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -33,8 +33,7 @@ use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lontemplate;
use Apache::lonnet;
-use Apache::lontexconvert;
-use Apache::lonfeedback;
+use Apache::lonhtmlgateway;
use Apache::lonlocal;
use Apache::lonprintout;
use Apache::lonxml;
@@ -44,14 +43,18 @@ use HTML::Entities();
use LONCAPA;
sub get_db_name {
- my ($url) = @_;
- my ($udom,$uname,$marker)=(split(m{/},$url))[2,3,4];
- my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
- my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
-
+ my ($url,$marker,$cdom,$cnum) = @_;
+ my ($udom,$uname,$timemark)=(split(m{/},$url))[2,3,4];
+ if ($marker eq '') {
+ $marker = $timemark;
+ }
+ if (($cdom eq '') || ($cnum eq '')) {
+ $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+ }
my $db_name;
- if ($dom && $crs && ($udom eq $dom) && ($uname eq $crs)) {
+ if ($cdom && $cnum && ($udom eq $cdom) && ($uname eq $cnum)) {
$marker =~ s/\W//g;
$db_name = 'grppage_'.$marker;
} else {
@@ -59,7 +62,6 @@ sub get_db_name {
$db_name = 'smppage_'.$marker;
}
return if (!defined($marker));
-
return $db_name;
}
@@ -84,7 +86,8 @@ sub handler {
return OK;
}
- my $db_name = &get_db_name($r->uri);
+ my $marker = (split(m{/},$r->uri))[4];
+ my $db_name = &get_db_name($r->uri,$marker);
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
@@ -93,7 +96,7 @@ sub handler {
my %curr_group = ();
my %groupinfo = ();
if ($db_name =~ /^grppage_/) {
- $group = (split(m{/},$r->uri))[4];
+ $group = $marker;
$group =~ s/\W//g;
my %curr_groups = &Apache::longroup::coursegroups($dom,$crs,$group);
if (!%curr_groups) {
@@ -122,7 +125,7 @@ sub handler {
# ------------------------------------------------------------ Get query string
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['forceedit',
+ ($ENV{'QUERY_STRING'},['forceedit','todocs',
'register','ref']);
# --------------------------------------------------------------- Force Student
my ($forceedit,$forcestudent);
@@ -139,10 +142,15 @@ sub handler {
my %syllabus=&Apache::lonnet::dump($db_name,$dom,$crs);
# --------------------------------------- There is such a user, get environment
- my ($group_view_perm,$group_edit_perm,$group_home_view,$group_home_edit,
- $has_group_access);
- my $brcrum = [];
- if ($group ne '') {
+ my ($registered,$group_view_perm,$group_edit_perm,$group_home_view,
+ $group_home_edit,$has_group_access);
+ my $brcrum = [];
+ if ($group eq '') {
+ $registered = $env{'form.register'};
+ } else {
+ unless ($env{'form.ref'} eq 'grouplist') {
+ $registered = $env{'form.register'};
+ }
$group_view_perm =
&Apache::lonnet::allowed('vcg',$env{'request.course.id'}.
($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
@@ -157,23 +165,20 @@ sub handler {
$group_home_edit || &Apache::longroup::check_group_access($group)) {
$has_group_access = 1;
if (($env{'form.ref'} eq 'grouplist') && ($target ne 'tex') &&
- (!$env{'form.register'})) {
+ (!$registered)) {
$brcrum = &grouppage_breadcrumbs($dom,$crs,$group,$group_desc);
}
}
}
if ($target ne 'tex') {
- my $title = 'Simple Course Page';
- if ($group ne '') {
- $title = 'Simple Group Page';
- }
+ my $title = ($group eq '')? 'Simple Course Page':'Simple Group Page';
my $start_page =
&Apache::loncommon::start_page($title,undef,
{'domain' => $dom,
'group' => $group,
'bread_crumbs' => $brcrum,
- 'force_register' => $env{'form.register'},
+ 'force_register' => $registered,
});
$r->print($start_page);
}
@@ -182,7 +187,8 @@ sub handler {
if ($has_group_access) {
if ((!$group_home_edit) && (!$group_home_view) &&
(!$group_view_perm) && (!$group_edit_perm)) {
- &display_group_links($r,$target,$group,'view',$refarg,%groupinfo);
+ $r->print(&Apache::longroup::display_group_links($r,$env{'form.grade_target'},$group,
+ 'view',$refarg,undef,undef,%groupinfo));
if ($env{'form.grade_target'} ne 'tex') {
$r->print(&Apache::loncommon::end_page());
} else {
@@ -201,8 +207,9 @@ sub handler {
}
return OK;
}
+ my $clientip = &Apache::lonnet::get_requestor_ip($r);
my ($blocked,$blocktext) =
- &Apache::loncommon::blocking_status('groups');
+ &Apache::loncommon::blocking_status('groups',$clientip);
if ($blocked) {
$r->print($blocktext);
$r->print(&Apache::loncommon::end_page());
@@ -231,10 +238,12 @@ sub handler {
}
if ($group ne '') {
$syllabus{'uploaded.photourl'}=&Apache::lonnet::userfileupload(
- 'uploaddoc','coursedoc',"grouppage/$group");
+ 'uploaddoc','coursedoc',
+ "grouppage/$group");
} else {
$syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userfileupload('uploaddoc','coursedoc','simplepage');
+ &Apache::lonnet::userfileupload('uploaddoc','coursedoc',
+ "simplepage/$marker");
}
}
$syllabus{'uploaded.lastmodified'}=time;
@@ -251,10 +260,8 @@ sub handler {
foreach my $syl_field (keys(%syllabusfields)) {
my $field=$env{'form.'.$syl_field};
chomp($field);
- $field=~s/\s+$//s;
- $field=~s/^\s+//s;
- $field=~s/\
$//s;
- $field=&Apache::lonfeedback::clear_out_html($field,1);
+ my $gateway = Apache::lonhtmlgateway->new();
+ $field = $gateway->process_incoming_html($field,1);
$syllabus{$syl_field}=$field;
}
$syllabus{'uploaded.lastmodified'}=time;
@@ -286,12 +293,13 @@ sub handler {
if ($env{'form.grade_target'} ne 'tex') {
#editbox for title
$r->print('