'.
&help_open_topic($component_help,$help_text,$stayOnPage,
$width,$height).' | '.$template.
@@ -803,7 +804,7 @@ sub help_open_bug {
my $link='';
my $template='';
my $url=$Apache::lonnet::perlvar{'BugzillaHost'}.'enter_bug.cgi?product=LON-CAPA&bug_file_loc='.
- &Apache::lonnet::escape($ENV{'REQUEST_URI'}).'&component='.$topic;
+ &escape($ENV{'REQUEST_URI'}).'&component='.$topic;
if (!$stayOnPage)
{
$link = "javascript:void(open('$url', 'Bugzilla', 'menubar=0,toolbar=1,scrollbars=1,width=$width,height=$height,resizable=yes'))";
@@ -2024,10 +2025,11 @@ sub screenname {
# ------------------------------------------------------------- Message Wrapper
sub messagewrapper {
- my ($link,$username,$domain)=@_;
+ my ($link,$username,$domain,$subject,$text)=@_;
return
''.$link.'';
}
# --------------------------------------------------------------- Notes Wrapper
@@ -2394,7 +2396,7 @@ sub get_previous_attempt {
} else {
$value=$returnhash{$version.':'.$key};
}
- $prevattempts.=' | '.&Apache::lonnet::unescape($value).' | ';
+ $prevattempts.=''.&unescape($value).' | ';
}
}
}
@@ -2406,7 +2408,7 @@ sub get_previous_attempt {
} else {
$value=$lasthash{$key};
}
- $value=&Apache::lonnet::unescape($value);
+ $value=&unescape($value);
if ($key =~/$regexp$/ && (defined &$gradesub)) {$value = &$gradesub($value)}
$prevattempts.=''.$value.' | ';
}
@@ -2528,7 +2530,7 @@ sub submlink {
if (!$symb) { $symb=$cursymb; }
}
if (!$symb) { $symb=&Apache::lonnet::symbread(); }
- $symb=&Apache::lonnet::escape($symb);
+ $symb=&escape($symb);
if ($target) { $target="target=\"$target\""; }
return ''.
@@ -3547,7 +3554,6 @@ Inputs: $args - additional optio
sub end_page {
my ($args) = @_;
- #&Apache::lonnet::logthis("end_page ".join(':',caller(0)));
$env{'internal.end_page'}++;
my $result;
if ($args->{'discussion'}) {
@@ -3590,7 +3596,7 @@ sub js_ready {
$result =~ s/[\n\r]/ /xmsg;
$result =~ s/\\/\\\\/xmsg;
$result =~ s/'/\\'/xmsg;
- $result =~ s{}{}xmsg;
+ $result =~ s{}{<\\/}xmsg;
return $result;
}
@@ -3703,7 +3709,7 @@ specific user. Roles can be active, prev
Inputs:
user's domain, user's username, course's domain,
-course's number, optional section/group.
+course's number, optional section ID.
Outputs:
role status: active, previous or future.
@@ -3754,13 +3760,14 @@ sub check_user_status {
Determines all the sections for a course including
sections with students and sections containing other roles.
-Incoming parameters: domain, course number, reference to
-section hash (keys to be section/group IDs), reference to
-array containing roles for which sections should be gathered
-(optional). If the fourth argument is undefined, sections
-are gathered for any role.
+Incoming parameters: domain, course number,
+reference to array containing roles for which sections should
+be gathered (optional). If the third argument is undefined,
+sections are gathered for any role.
-Returns number of sections.
+Returns section hash (keys are section IDs, values are
+number of users in each section), subject to the
+optional roles filter.
=cut
@@ -3808,152 +3815,6 @@ sub get_sections {
}
###############################################
-
-=pod
-
-=item coursegroups
-
-Retrieve information about groups in a course,
-
-Input:
-1. Reference to hash to populate with group information.
-2. Optional course domain
-3. Optional course number
-4. Optional group name
-
-Course domain and number will be taken from user's
-environment if not supplied. Optional group name will'
-be passed to lonnet::get_coursegroups() as a regexp to
-use in the call to the dump function.
-
-Output
-Returns number of groups in the course (subject to the
-optional group name filter).
-
-Side effects:
-Populates the referenced curr_groups hash, with key,
-value pairs. Keys are group names, corresponding values
-are scalars containing group information in XML. This
-can be sent to &get_group_settings() to be parsed.
-
-=cut
-
-###############################################
-
-sub coursegroups {
- my ($cdom,$cnum,$group) = @_;
- if (!defined($cdom) || !defined($cnum)) {
- my $cid = $env{'request.course.id'};
-
- return if (!defined($cid));
-
- $cdom = $env{'course.'.$cid.'.domain'};
- $cnum = $env{'course.'.$cid.'.num'};
- }
- my %curr_groups = &Apache::lonnet::get_coursegroups($cdom,$cnum,$group);
- my ($tmp) = keys(%curr_groups);
- if ($tmp=~/^(con_lost|no_such_host|error: [^2] )/) {
- undef(%curr_groups);
- &logthis('Error retrieving groups: '.$tmp.' in '.$cnum.':'.$cdom);
- } elsif ($tmp=~/^error: 2 /) {
- undef(%curr_groups);
- }
- return %curr_groups;
-}
-
-###############################################
-
-=pod
-
-=item get_group_settings
-
-Uses TokeParser to extract group information from the
-XML used to describe course groups.
-
-Input:
-Scalar containing XML - as retrieved from &coursegroups().
-
-Output:
-Hash containing group information as key=values for (a), and
-hash of hashes for (b)
-
-Keys (in two categories):
-(a) groupname, creator, creation, modified, startdate,enddate.
-Corresponding values are name of the group, creator of the group
-(username:domain), UNIX time for date group was created, and
-settings were last modified, and default start and end access
-times for group members.
-
-(b) functions returned in hash of hashes.
-Outer hash key is functions.
-Inner hash keys are chat,discussion,email,files,homepage,roster.
-Corresponding values are either on or off, depending on
-whether this type of functionality is available for the group.
-
-=cut
-
-###############################################
-
-sub get_group_settings {
- my ($groupinfo)=@_;
- my $parser=HTML::TokeParser->new(\$groupinfo);
- my $token;
- my $tool = '';
- my $role = '';
- my %content=();
- while ($token=$parser->get_token) {
- if ($token->[0] eq 'S') {
- my $entry=$token->[1];
- if ($entry eq 'functions' || $entry eq 'autosec') {
- %{$content{$entry}} = ();
- $tool = $entry;
- } elsif ($entry eq 'role') {
- if ($tool eq 'autosec') {
- $role = $token->[2]{id};
- }
- } else {
- my $value=$parser->get_text('/'.$entry);
- if ($entry eq 'name') {
- if ($tool eq 'functions') {
- my $function = $token->[2]{id};
- $content{$tool}{$function} = $value;
- }
- } elsif ($entry eq 'groupname') {
- $content{$entry}=&Apache::lonnet::unescape($value);
- } elsif (($entry eq 'roles') || ($entry eq 'types') ||
- ($entry eq 'sectionpick') || ($entry eq 'defpriv')) {
- push(@{$content{$entry}},$value);
- } elsif ($entry eq 'section') {
- if ($tool eq 'autosec' && $role ne '') {
- push(@{$content{$tool}{$role}},$value);
- }
- } else {
- $content{$entry}=$value;
- }
- }
- } elsif ($token->[0] eq 'E') {
- if ($token->[1] eq 'functions' || $token->[1] eq 'autosec') {
- $tool = '';
- } elsif ($token->[1] eq 'role') {
- $role = '';
- }
-
- }
- }
- return %content;
-}
-
-sub check_group_access {
- my ($group) = @_;
- my $access = 1;
- my $now = time;
- my ($start,$end) = split(/\./,$env{'user.role.gr/'.$env{'request.course,id'}.'/'.$group});
- if (($end!=0) && ($end<$now)) { $access = 0; }
- if (($start!=0) && ($start>$now)) { $access=0; }
- return $access;
-}
-
-###############################################
=pod
@@ -4106,7 +3967,7 @@ sub get_unprocessed_cgi {
# $Apache::lonxml::debug=1;
foreach my $pair (split(/&/,$query)) {
my ($name, $value) = split(/=/,$pair);
- $name = &Apache::lonnet::unescape($name);
+ $name = &unescape($name);
if (!defined($possible_names) || (grep {$_ eq $name} @$possible_names)) {
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
@@ -4735,9 +4596,9 @@ sub DrawBarGraph {
$Title = '' if (! defined($Title));
$xlabel = '' if (! defined($xlabel));
$ylabel = '' if (! defined($ylabel));
- $ValuesHash{$id.'.title'} = &Apache::lonnet::escape($Title);
- $ValuesHash{$id.'.xlabel'} = &Apache::lonnet::escape($xlabel);
- $ValuesHash{$id.'.ylabel'} = &Apache::lonnet::escape($ylabel);
+ $ValuesHash{$id.'.title'} = &escape($Title);
+ $ValuesHash{$id.'.xlabel'} = &escape($xlabel);
+ $ValuesHash{$id.'.ylabel'} = &escape($ylabel);
$ValuesHash{$id.'.y_max_value'} = $Max;
$ValuesHash{$id.'.NumBars'} = $NumBars;
$ValuesHash{$id.'.NumSets'} = $NumSets;
@@ -4817,9 +4678,9 @@ sub DrawXYGraph {
$ylabel = '' if (! defined($ylabel));
my %ValuesHash =
(
- $id.'.title' => &Apache::lonnet::escape($Title),
- $id.'.xlabel' => &Apache::lonnet::escape($xlabel),
- $id.'.ylabel' => &Apache::lonnet::escape($ylabel),
+ $id.'.title' => &escape($Title),
+ $id.'.xlabel' => &escape($xlabel),
+ $id.'.ylabel' => &escape($ylabel),
$id.'.y_max_value'=> $Max,
$id.'.labels' => join(',',@$Xlabels),
$id.'.PlotType' => 'XY',
@@ -4914,9 +4775,9 @@ sub DrawXYYGraph {
$ylabel = '' if (! defined($ylabel));
my %ValuesHash =
(
- $id.'.title' => &Apache::lonnet::escape($Title),
- $id.'.xlabel' => &Apache::lonnet::escape($xlabel),
- $id.'.ylabel' => &Apache::lonnet::escape($ylabel),
+ $id.'.title' => &escape($Title),
+ $id.'.xlabel' => &escape($xlabel),
+ $id.'.ylabel' => &escape($ylabel),
$id.'.labels' => join(',',@$Xlabels),
$id.'.PlotType' => 'XY',
$id.'.NumSets' => 2,
@@ -4988,7 +4849,7 @@ Inputs:
sub chartlink {
my ($linktext, $sname, $sdomain) = @_;
my $link = ''.$linktext.'';
}
@@ -5018,6 +4879,7 @@ a hash ref describing the data to be sto
'chartoutputmode' => 'scalar',
'chartoutputdata' => 'scalar',
'Section' => 'array',
+ 'Group' => 'array',
'StudentData' => 'array',
'Maps' => 'array');
@@ -5051,11 +4913,11 @@ sub store_course_settings {
if (ref($env{'form.'.$setting})) {
$stored_form = join(',',
map {
- &Apache::lonnet::escape($_);
+ &escape($_);
} sort(@{$env{'form.'.$setting}}));
} else {
$stored_form =
- &Apache::lonnet::escape($env{'form.'.$setting});
+ &escape($env{'form.'.$setting});
}
# Determine if the array contents are the same.
if ($stored_form ne $env{$envname}) {
@@ -5089,7 +4951,7 @@ sub restore_course_settings {
} elsif ($type eq 'array') {
$env{'form.'.$setting} = [
map {
- &Apache::lonnet::unescape($_);
+ &unescape($_);
} split(',',$env{$envname})
];
}
@@ -5100,15 +4962,6 @@ sub restore_course_settings {
############################################################
############################################################
-sub propath {
- my ($udom,$uname)=@_;
- $udom=~s/\W//g;
- $uname=~s/\W//g;
- my $subdir=$uname.'__';
- $subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/;
- my $proname="$Apache::lonnet::perlvar{'lonUsersDir'}/$udom/$subdir/$uname";
- return $proname;
-}
sub icon {
my ($file)=@_;
@@ -5162,7 +5015,7 @@ sub escape_double {
sub escape_url {
my ($url) = @_;
my @urlslices = split(/\//, $url,-1);
- my $lastitem = &Apache::lonnet::escape(pop(@urlslices));
+ my $lastitem = &escape(pop(@urlslices));
return join('/',@urlslices).'/'.$lastitem;
}
=pod