-$titleinfo
+$titleinfo $dc_info
|
$ENV{'environment.firstname'}
@@ -2704,52 +2794,37 @@ Returns number of sections.
###############################################
sub get_sections {
my ($cdom,$cnum,$sectioncount,$possible_roles) = @_;
+ if (!($cdom && $cnum)) { return 0; }
my $cid = $cdom.'_'.$cnum;
my $numsections = 0;
- if ($cdom && $cnum) {
- if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) {
- my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum);
- my $sec_index = &Apache::loncoursedata::CL_SECTION();
- my $status_index = &Apache::loncoursedata::CL_STATUS();
- while (my ($student,$data) = each %$classlist) {
- my ($section,$status) = ($data->[$sec_index],
- $data->[$status_index]);
- unless ($section eq '' || $section =~ /^\s*$/) {
- if (!defined($$sectioncount{$section})) {
- $$sectioncount{$section} = 1;
- $numsections ++;
- } else {
- $$sectioncount{$section} ++;
- }
- }
- }
- }
- my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
- foreach my $user (sort keys %courseroles) {
- if ($user =~ /^(\w{2})/) {
- my $role = $1;
- if (!defined($possible_roles) || (grep/^$role$/,@$possible_roles)) {
- if ($role eq 'cr') {
- if ($user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) {
- if (!defined($$sectioncount{$1})) {
- $$sectioncount{$1} = 1;
- $numsections ++;
- } else {
- $$sectioncount{$1} ++;
- }
- }
- }
- if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) {
- if (!defined($$sectioncount{$1})) {
- $$sectioncount{$1} = 1;
- $numsections ++;
- } else {
- $$sectioncount{$1} ++;
- }
- }
- }
- }
- }
+
+ if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) {
+ my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum);
+ my $sec_index = &Apache::loncoursedata::CL_SECTION();
+ my $status_index = &Apache::loncoursedata::CL_STATUS();
+ while (my ($student,$data) = each %$classlist) {
+ my ($section,$status) = ($data->[$sec_index],
+ $data->[$status_index]);
+ unless ($section eq '-1' || $section =~ /^\s*$/) {
+ if (!defined($$sectioncount{$section})) { $numsections++; }
+ $$sectioncount{$section}++;
+ }
+ }
+ }
+ my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
+ foreach my $user (sort(keys(%courseroles))) {
+ if ($user !~ /^(\w{2})/) { next; }
+ my ($role) = ($user =~ /^(\w{2})/);
+ if ($possible_roles && !(grep(/^$role$/,@$possible_roles))) { next; }
+ my $section;
+ if ($role eq 'cr' &&
+ $user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) {
+ $section=$1;
+ }
+ if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) { $section=$1; }
+ if (!defined($section) || $section eq '-1') { next; }
+ if (!defined($$sectioncount{$section})) { $numsections++; }
+ $$sectioncount{$section}++;
}
return $numsections;
}
@@ -3361,6 +3436,9 @@ they are plotted. If undefined, default
=item @Values: An array of array references. Each array reference holds data
to be plotted in a stacked bar chart.
+=item If the final element of @Values is a hash reference the key/value
+pairs will be added to the graph definition.
+
=back
Returns:
@@ -3872,7 +3950,7 @@ sub escape_double {
# Escapes the last element of a full URL.
sub escape_url {
my ($url) = @_;
- my @urlslices = split(/\//, $url);
+ my @urlslices = split(/\//, $url,-1);
my $lastitem = &Apache::lonnet::escape(pop(@urlslices));
return join('/',@urlslices).'/'.$lastitem;
}
|