original_string: public static function get_groupings($groupingids, $returngroups = false) {
          global $CFG, $DB;
          require_once("$CFG->dirroot/group/lib.php");
          require_once("$CFG->libdir/filelib.php");
  
          $params = self::validate_parameters(self::get_groupings_parameters(),
                                              array('groupingids' => $groupingids,
                                                    'returngroups' => $returngroups));
  
          $groupings = array();
          foreach ($params['groupingids'] as $groupingid) {
              // Validate params.
              $grouping = groups_get_grouping($groupingid, '*', MUST_EXIST);
  
              // Now security checks.
              $context = context_course::instance($grouping->courseid);
              try {
                  self::validate_context($context);
              } catch (Exception $e) {
                  $exceptionparam = new stdClass();
                  $exceptionparam->message = $e->getMessage();
                  $exceptionparam->courseid = $grouping->courseid;
                  throw new moodle_exception('errorcoursecontextnotvalid' , 'webservice', '', $exceptionparam);
              }
              require_capability('moodle/course:managegroups', $context);
  
              list($grouping->description, $grouping->descriptionformat) =
                  external_format_text($grouping->description, $grouping->descriptionformat,
                          $context->id, 'grouping', 'description', $grouping->id);
  
              $groupingarray = (array)$grouping;
  
              if ($params['returngroups']) {
                  $grouprecords = $DB->get_records_sql("SELECT * FROM {groups} g INNER JOIN {groupings_groups} gg ".
                                                 "ON g.id = gg.groupid WHERE gg.groupingid = ? ".
                                                 "ORDER BY groupid", array($groupingid));
                  if ($grouprecords) {
                      $groups = array();
                      foreach ($grouprecords as $grouprecord) {
                          list($grouprecord->description, $grouprecord->descriptionformat) =
                          external_format_text($grouprecord->description, $grouprecord->descriptionformat,
                          $context->id, 'group', 'description', $grouprecord->groupid);
                          $groups[] = array('id' => $grouprecord->groupid,
                                            'name' => $grouprecord->name,
                                            'idnumber' => $grouprecord->idnumber,
                                            'description' => $grouprecord->description,
                                            'descriptionformat' => $grouprecord->descriptionformat,
                                            'enrolmentkey' => $grouprecord->enrolmentkey,
                                            'courseid' => $grouprecord->courseid
                                            );
                      }
                      $groupingarray['groups'] = $groups;
                  }
              }
              $groupings[] = $groupingarray;
          }
  
          return $groupings;
      }
code: public static function get_groupings($groupingids, $returngroups = false) {
          global $CFG, $DB;
          require_once("$CFG->dirroot/group/lib.php");
          require_once("$CFG->libdir/filelib.php");
  
          $params = self::validate_parameters(self::get_groupings_parameters(),
                                              array('groupingids' => $groupingids,
                                                    'returngroups' => $returngroups));
  
          $groupings = array();
          foreach ($params['groupingids'] as $groupingid) {
              // Validate params.
              $grouping = groups_get_grouping($groupingid, '*', MUST_EXIST);
  
              // Now security checks.
              $context = context_course::instance($grouping->courseid);
              try {
                  self::validate_context($context);
              } catch (Exception $e) {
                  $exceptionparam = new stdClass();
                  $exceptionparam->message = $e->getMessage();
                  $exceptionparam->courseid = $grouping->courseid;
                  throw new moodle_exception('errorcoursecontextnotvalid' , 'webservice', '', $exceptionparam);
              }
              require_capability('moodle/course:managegroups', $context);
  
              list($grouping->description, $grouping->descriptionformat) =
                  external_format_text($grouping->description, $grouping->descriptionformat,
                          $context->id, 'grouping', 'description', $grouping->id);
  
              $groupingarray = (array)$grouping;
  
              if ($params['returngroups']) {
                  $grouprecords = $DB->get_records_sql("SELECT * FROM {groups} g INNER JOIN {groupings_groups} gg ".
                                                 "ON g.id = gg.groupid WHERE gg.groupingid = ? ".
                                                 "ORDER BY groupid", array($groupingid));
                  if ($grouprecords) {
                      $groups = array();
                      foreach ($grouprecords as $grouprecord) {
                          list($grouprecord->description, $grouprecord->descriptionformat) =
                          external_format_text($grouprecord->description, $grouprecord->descriptionformat,
                          $context->id, 'group', 'description', $grouprecord->groupid);
                          $groups[] = array('id' => $grouprecord->groupid,
                                            'name' => $grouprecord->name,
                                            'idnumber' => $grouprecord->idnumber,
                                            'description' => $grouprecord->description,
                                            'descriptionformat' => $grouprecord->descriptionformat,
                                            'enrolmentkey' => $grouprecord->enrolmentkey,
                                            'courseid' => $grouprecord->courseid
                                            );
                      }
                      $groupingarray['groups'] = $groups;
                  }
              }
              $groupings[] = $groupingarray;
          }
  
          return $groupings;
      }
code_tokens: public static function get_groupings ( $ groupingids , $ returngroups = false ) { global $ CFG , $ DB ; require_once ( "$CFG->dirroot/group/lib.php" ) ; require_once ( "$CFG->libdir/filelib.php" ) ; $ params = self :: validate_parameters ( self :: get_groupings_parameters ( ) , array ( 'groupingids' => $ groupingids , 'returngroups' => $ returngroups ) ) ; $ groupings = array ( ) ; foreach ( $ params [ 'groupingids' ] as $ groupingid ) { // Validate params. $ grouping = groups_get_grouping ( $ groupingid , '*' , MUST_EXIST ) ; // Now security checks. $ context = context_course :: instance ( $ grouping -> courseid ) ; try { self :: validate_context ( $ context ) ; } catch ( Exception $ e ) { $ exceptionparam = new stdClass ( ) ; $ exceptionparam -> message = $ e -> getMessage ( ) ; $ exceptionparam -> courseid = $ grouping -> courseid ; throw new moodle_exception ( 'errorcoursecontextnotvalid' , 'webservice' , '' , $ exceptionparam ) ; } require_capability ( 'moodle/course:managegroups' , $ context ) ; list ( $ grouping -> description , $ grouping -> descriptionformat ) = external_format_text ( $ grouping -> description , $ grouping -> descriptionformat , $ context -> id , 'grouping' , 'description' , $ grouping -> id ) ; $ groupingarray = ( array ) $ grouping ; if ( $ params [ 'returngroups' ] ) { $ grouprecords = $ DB -> get_records_sql ( "SELECT * FROM {groups} g INNER JOIN {groupings_groups} gg " . "ON g.id = gg.groupid WHERE gg.groupingid = ? " . "ORDER BY groupid" , array ( $ groupingid ) ) ; if ( $ grouprecords ) { $ groups = array ( ) ; foreach ( $ grouprecords as $ grouprecord ) { list ( $ grouprecord -> description , $ grouprecord -> descriptionformat ) = external_format_text ( $ grouprecord -> description , $ grouprecord -> descriptionformat , $ context -> id , 'group' , 'description' , $ grouprecord -> groupid ) ; $ groups [ ] = array ( 'id' => $ grouprecord -> groupid , 'name' => $ grouprecord -> name , 'idnumber' => $ grouprecord -> idnumber , 'description' => $ grouprecord -> description , 'descriptionformat' => $ grouprecord -> descriptionformat , 'enrolmentkey' => $ grouprecord -> enrolmentkey , 'courseid' => $ grouprecord -> courseid ) ; } $ groupingarray [ 'groups' ] = $ groups ; } } $ groupings [ ] = $ groupingarray ; } return $ groupings ; }
docstring: Get groupings definition specified by ids
  
  @param array $groupingids arrays of grouping ids
  @param boolean $returngroups return the associated groups if true. The default is false.
  @return array of grouping objects (id, courseid, name)
  @since Moodle 2.3
docstring_tokens: Get groupings definition specified by ids