Permalink
Browse files

MDL-32662 Added get_course_groupings method

  • Loading branch information...
1 parent ed849fb commit 85e42d221879a768b858be696e4fe790d9902d77 @jleyva jleyva committed Apr 30, 2012
Showing with 70 additions and 0 deletions.
  1. +70 −0 group/externallib.php
View
@@ -797,6 +797,76 @@ public static function get_groupings_returns() {
);
}
+ /**
+ * Returns description of method parameters
+ * @return external_function_parameters
+ */
+ public static function get_course_groupings_parameters() {
+ return new external_function_parameters(
+ array(
+ 'courseid' => new external_value(PARAM_INT, 'id of course'),
+ )
+ );
+ }
+
+ /**
+ * Get all groupings in the specified course
+ * @param int $courseid id of course
+ * @return array of grouping objects (id, courseid, name, enrolmentkey)
+ */
+ public static function get_course_groupings($courseid) {
+ global $CFG;
+ require_once("$CFG->dirroot/group/lib.php");
+
+ $params = self::validate_parameters(self::get_course_groupings_parameters(), array('courseid'=>$courseid));
+
+ // Now security checks.
+ $context = context_course::instance($params['courseid']);
+
+ try {
+ self::validate_context($context);
+ } catch (Exception $e) {
+ $exceptionparam = new stdClass();
+ $exceptionparam->message = $e->getMessage();
+ $exceptionparam->courseid = $params['courseid'];
+ throw new moodle_exception('errorcoursecontextnotvalid' , 'webservice', '', $exceptionparam);
+ }
+ require_capability('moodle/course:managegroups', $context);
+
+ $gs = groups_get_all_groupings($params['courseid']);
+
+ $groupings = array();
+ foreach ($gs as $grouping) {
+ $grouping->description = file_rewrite_pluginfile_urls($grouping->description, 'webservice/pluginfile.php', $context->id, 'grouping', 'description', $grouping->id);
+
+ $options = new stdClass;
+ $options->noclean = true;
+ $options->para = false;
+ $grouping->description = format_text($grouping->description, FORMAT_HTML, $options);
+
+ $groupings[] = (array)$grouping;
+ }
+
+ return $groupings;
+ }
+
+ /**
+ * Returns description of method result value
+ * @return external_description
+ */
+ public static function get_course_groupings_returns() {
+ return new external_multiple_structure(
+ new external_single_structure(
+ array(
+ 'id' => new external_value(PARAM_INT, 'grouping record id'),
+ 'courseid' => new external_value(PARAM_INT, 'id of course'),
+ 'name' => new external_value(PARAM_TEXT, 'multilang compatible name, course unique'),
+ 'description' => new external_value(PARAM_CLEANHTML, 'grouping description text')
+ )
+ )
+ );
+ }
+
}
/**

0 comments on commit 85e42d2

Please sign in to comment.