--- loncom/interface/lonhelper.pm 2005/10/17 21:17:59 1.127 +++ loncom/interface/lonhelper.pm 2005/11/22 12:49:50 1.128 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # .helper XML handler to implement the LON-CAPA helper # -# $Id: lonhelper.pm,v 1.127 2005/10/17 21:17:59 albertel Exp $ +# $Id: lonhelper.pm,v 1.128 2005/11/22 12:49:50 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2980,6 +2980,73 @@ sub end_section { } 1; +package Apache::lonhelper::group; + +=pod + +=head2 Element: groupX + +
allows the user to choose one or more groups from the current course. + +It takes the standard attributes "variable", "multichoice", and "nextstate", meaning what they do for most other elements. + +=cut + +no strict; +@ISA = ("Apache::lonhelper::choices"); +use strict; + +BEGIN { + &Apache::lonhelper::register('Apache::lonhelper::group', + ('group')); +} + +sub new { + my $ref = Apache::lonhelper::choices->new(); + bless($ref); +} + +sub start_group { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + + if ($target ne 'helper') { + return ''; + } + + $paramHash->{CHOICES} = []; + + $paramHash->{'variable'} = $token->[2]{'variable'}; + $helper->declareVar($paramHash->{'variable'}); + $paramHash->{'multichoice'} = $token->[2]{'multichoice'}; + if (defined($token->[2]{'nextstate'})) { + $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'}; + } + + # Populate the CHOICES element + my %choices; + + my $numgroups; + my %curr_groups; + if (&Apache::loncommon::coursegroups(\%curr_groups)) { + foreach my $group_name (keys %curr_groups) { + $choices{$group_name} = $group_name; + } + } + foreach my $group_name (sort(keys(%choices))) { + push @{$paramHash->{CHOICES}}, [$group_name, $group_name]; + } +} + +sub end_group { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + + if ($target ne 'helper') { + return ''; + } + Apache::lonhelper::group->new(); +} +1; + package Apache::lonhelper::string; =pod @@ -3566,6 +3633,11 @@ sub render { $result .= '
  • '.&mt('for section [_1]',"$section").'
  • '; $result .= "&\"") . "' />\n"; + } elsif ($vars->{TARGETS} eq 'group') { + my $group = $vars->{GROUP_NAME}; + $result .= '
  • '.&mt('for group [_1]',"$group").'
  • '; + $result .= "&\"") . "' />\n"; } else { # FIXME: This is probably wasteful! Store the name! my $classlist = Apache::loncoursedata::get_classlist();