/** * Get Calendar events * * @param array $events A list of events * @param array $options various options * @return array Array of event details * @since Moodle 2.5 */ public static function get_calendar_events($events = array(), $options = array()) { global $SITE, $DB, $USER, $CFG; require_once $CFG->dirroot . "/calendar/lib.php"; // Parameter validation. $params = self::validate_parameters(self::get_calendar_events_parameters(), array('events' => $events, 'options' => $options)); $funcparam = array('courses' => array(), 'groups' => array()); $hassystemcap = has_capability('moodle/calendar:manageentries', context_system::instance()); $warnings = array(); // Let us findout courses that we can return events from. if (!$hassystemcap) { $courses = enrol_get_my_courses(); $courses = array_keys($courses); foreach ($params['events']['courseids'] as $id) { if (in_array($id, $courses)) { $funcparam['courses'][] = $id; } else { $warnings[] = array('item' => $id, 'warningcode' => 'nopermissions', 'message' => 'you do not have permissions to access this course'); } } } else { $courses = $params['events']['courseids']; $funcparam['courses'] = $courses; } // Let us findout groups that we can return events from. if (!$hassystemcap) { $groups = groups_get_my_groups(); $groups = array_keys($groups); foreach ($params['events']['groupids'] as $id) { if (in_array($id, $groups)) { $funcparam['groups'][] = $id; } else { $warnings[] = array('item' => $id, 'warningcode' => 'nopermissions', 'message' => 'you do not have permissions to access this group'); } } } else { $groups = $params['events']['groupids']; $funcparam['groups'] = $groups; } // Do we need user events? if (!empty($params['options']['userevents'])) { $funcparam['users'] = array($USER->id); } else { $funcparam['users'] = false; } // Do we need site events? if (!empty($params['options']['siteevents'])) { $funcparam['courses'][] = $SITE->id; } // We treat 0 and null as no end. if (empty($params['options']['timeend'])) { $params['options']['timeend'] = PHP_INT_MAX; } $eventlist = calendar_get_events($params['options']['timestart'], $params['options']['timeend'], $funcparam['users'], $funcparam['groups'], $funcparam['courses'], true, $params['options']['ignorehidden']); // WS expects arrays. $events = array(); foreach ($eventlist as $id => $event) { $events[$id] = (array) $event; } // We need to get events asked for eventids. $eventsbyid = calendar_get_events_by_id($params['events']['eventids']); foreach ($eventsbyid as $eventid => $eventobj) { $event = (array) $eventobj; if (isset($events[$eventid])) { continue; } if ($hassystemcap) { // User can see everything, no further check is needed. $events[$eventid] = $event; } else { if (!empty($eventobj->modulename)) { $cm = get_coursemodule_from_instance($eventobj->modulename, $eventobj->instance); if (\core_availability\info_module::is_user_visible($cm, 0, false)) { $events[$eventid] = $event; } } else { // Can the user actually see this event? $eventobj = calendar_event::load($eventobj); if ($eventobj->courseid == $SITE->id || !empty($eventobj->groupid) && in_array($eventobj->groupid, $groups) || !empty($eventobj->courseid) && in_array($eventobj->courseid, $courses) || $USER->id == $eventobj->userid || calendar_edit_event_allowed($eventid)) { $events[$eventid] = $event; } else { $warnings[] = array('item' => $eventid, 'warningcode' => 'nopermissions', 'message' => 'you do not have permissions to view this event'); } } } } return array('events' => $events, 'warnings' => $warnings); }
/** * Adds a specified user to a group * * @param mixed $grouporid The group id or group object * @param mixed $userorid The user id or user object * @param string $component Optional component name e.g. 'enrol_imsenterprise' * @param int $itemid Optional itemid associated with component * @return bool True if user added successfully or the user is already a * member of the group, false otherwise. */ function groups_add_member($grouporid, $userorid, $component = null, $itemid = 0, $role = 2) { global $DB; if (is_object($userorid)) { $userid = $userorid->id; $user = $userorid; if (!isset($user->deleted)) { $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); } } else { $userid = $userorid; $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); } if ($user->deleted) { return false; } if (is_object($grouporid)) { $groupid = $grouporid->id; $group = $grouporid; } else { $groupid = $grouporid; $group = $DB->get_record('groups', array('id' => $groupid), '*', MUST_EXIST); } // Check if the user a participant of the group course. $context = context_course::instance($group->courseid); if (!is_enrolled($context, $userid)) { return false; } if (groups_is_member($groupid, $userid)) { return true; } $member = new stdClass(); $member->groupid = $groupid; $member->userid = $userid; $member->timeadded = time(); $member->component = ''; $member->itemid = 0; //UAIOPEN - se agrega el role a la tabla groups_members $member->roleid = $role; // Check the component exists if specified if (!empty($component)) { $dir = core_component::get_component_directory($component); if ($dir && is_dir($dir)) { // Component exists and can be used $member->component = $component; $member->itemid = $itemid; } else { throw new coding_exception('Invalid call to groups_add_member(). An invalid component was specified'); } } if ($itemid !== 0 && empty($member->component)) { // An itemid can only be specified if a valid component was found throw new coding_exception('Invalid call to groups_add_member(). A component must be specified if an itemid is given'); } $my_groups = groups_get_my_groups(); if (count($my_groups) != 0) { foreach ($my_groups as $group_data) { $groupid = $group_data->id; groups_remove_member($groupid, $userid); } } $DB->insert_record('groups_members', $member); // Update group info, and group object. $DB->set_field('groups', 'timemodified', $member->timeadded, array('id' => $groupid)); $group->timemodified = $member->timeadded; // Trigger group event. $params = array('context' => $context, 'objectid' => $groupid, 'relateduserid' => $userid, 'other' => array('component' => $member->component, 'itemid' => $member->itemid)); $event = \core\event\group_member_added::create($params); $event->add_record_snapshot('groups', $group); $event->trigger(); return true; }
* The main group management user interface. * * @copyright 2006 The Open University, N.D.Freear AT open.ac.uk, J.White AT open.ac.uk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @package core_group */ require_once '../config.php'; require_once 'lib.php'; global $USER; $courseid = required_param('id', PARAM_INT); $groupid = optional_param('group', false, PARAM_INT); $userid = optional_param('user', false, PARAM_INT); $action = groups_param_action(); $my_groupid = ""; //UAIOPEN - Trae los grupos de la persona en sesiĆ³n $my_groups = groups_get_my_groups(); foreach ($my_groups as $my_group) { $my_groupid = $my_group->groupid; } // Support either single group= parameter, or array groups[] if ($groupid) { $groupids = array($groupid); } else { $groupids = optional_param_array('groups', array(), PARAM_INT); } $singlegroup = count($groupids) == 1; $returnurl = $CFG->wwwroot . '/group/index.php?id=' . $courseid; // Get the course information so we can print the header and // check the course id is valid $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); $url = new moodle_url('/group/index.php', array('id' => $courseid));
$PAGE->navbar->add($strrequests); /// Print header $PAGE->set_title($strrequests); $PAGE->set_heading($course->fullname); $PAGE->set_pagelayout('standard'); $PAGE->requires->jquery(); $PAGE->requires->jquery_plugin('ui'); $PAGE->requires->jquery_plugin('ui-css'); echo $OUTPUT->header(); // Add tabs $currenttab = 'groupings'; require 'tabs.php'; if (has_capability('moodle/site:accessallgroups', $context)) { $group = groups_get_all_groups($courseid, $userid = 0, $groupingid = 0, $fields = 'g.*'); } else { $group = groups_get_my_groups(); } if (count($group) == 0) { echo get_string('errormygroup', 'group') . "<br>"; $groupid = ""; } foreach ($group as $group_data) { $groupid[] = $group_data->id; } $data = array(); if ($requests = $DB->get_records_list('groups_groups_requests', 'groupid', $groupid)) { foreach ($requests as $request) { $request_detail = $DB->get_record('groups_requests', array('id' => $request->requestid)); $user = user_get_users_by_id(array($request_detail->userid)); foreach ($user as $user_detail) { $name = $user_detail->firstname . " " . $user_detail->lastname;