/** * Get user information * * @param array $userids array of user ids * @return array An array of arrays describing users */ public static function get_users_by_id($userids) { global $CFG; require_once $CFG->dirroot . "/user/lib.php"; //required for customfields related function //TODO: move the functions somewhere else as //they are "user" related require_once $CFG->dirroot . "/user/profile/lib.php"; $params = self::validate_parameters(self::get_users_by_id_parameters(), array('userids' => $userids)); //TODO: check if there is any performance issue: we do one DB request to retrieve // all user, then for each user the profile_load_data does at least two DB requests $users = user_get_users_by_id($params['userids']); $result = array(); foreach ($users as $user) { $context = get_context_instance(CONTEXT_USER, $user->id); require_capability('moodle/user:viewalldetails', $context); self::validate_context($context); if (empty($user->deleted)) { $userarray = array(); //we want to return an array not an object /// now we transfert all profile_field_xxx into the customfields // external_multiple_structure required by description $userarray['id'] = $user->id; $userarray['username'] = $user->username; $userarray['firstname'] = $user->firstname; $userarray['lastname'] = $user->lastname; $userarray['email'] = $user->email; $userarray['auth'] = $user->auth; $userarray['confirmed'] = $user->confirmed; $userarray['idnumber'] = $user->idnumber; $userarray['lang'] = $user->lang; $userarray['theme'] = $user->theme; $userarray['timezone'] = $user->timezone; $userarray['mailformat'] = $user->mailformat; $userarray['description'] = $user->description; $userarray['descriptionformat'] = $user->descriptionformat; $userarray['city'] = $user->city; $userarray['country'] = $user->country; $userarray['customfields'] = array(); $customfields = profile_user_record($user->id); $customfields = (array) $customfields; foreach ($customfields as $key => $value) { $userarray['customfields'][] = array('type' => $key, 'value' => $value); } $result[] = $userarray; } } return $result; }
function groups_send_invitation($grouporid, $userorid) { global $DB, $USER, $CFG; 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 false; } $user_info = user_get_users_by_id(array($userid)); $groupname = groups_get_group_name($groupid); $code = uniqid(); $invitation = new stdClass(); $invitation->code = $code; $invitation->userid = $userid; $invitation->groupid = $groupid; $DB->insert_record('groups_invitation', $invitation); $email_subject = 'Invitación de ser participe del grupo ' . $groupname; $message = "Si quieres ser participe del grupo " . $groupname . " haz click en la siguiente url: " . $CFG->wwwroot . "/group/members.php?group=" . $groupid . "&invitation=" . $userid . "&code=" . $code; $from = new stdClass(); $from->firstname = $USER->firstname . " " . $USER->lastname; $from->lastname = ''; $from->email = $USER->email; $from->alternatename = ''; $from->middlename = ''; $from->firstnamephonetic = ''; $from->lastnamephonetic = ''; $from->maildisplay = 1; $emailsubject = $email_subject; $emailmessage = $message; //$attachment->AddAttachment($CFG->wwwroot.'/tcpdf/examples/folder/BHIForm.pdf'); // attachments here foreach ($user_info as $user) { email_to_user($user, $from, $emailsubject, $emailmessage, ''); } return true; }
$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; $email = $user_detail->email; } $line = array(); $buttons = html_writer::link("#", $OUTPUT->pix_icon('t/approve', $strapprove, 'core', array('class' => 'iconsmall', 'id' => 'addrequest' . $request_detail->id, 'groupid' => $request->groupid)), array('title' => $strapprove, 'id' => "link_addrequest" . $request_detail->id)); $buttons .= html_writer::link("#", $OUTPUT->pix_icon('t/delete', $strdelete, 'core', array('class' => 'iconsmall', 'id' => 'deleterequest' . $request_detail->id, 'groupid' => $request->groupid)), array('title' => $strdelete, 'id' => "link_deleterequest" . $request_detail->id)); $line[0] = $name; $line[1] = $email; $line[2] = $request_detail->description; $line[3] = $buttons; $data[] = $line; } } else { $line = array();
/** * Gets emails for all contributors to discussion (where post not deleted) * If email is already in list to notify then ignore * @param object $discussion * @param array $emails * @return array */ function get_posts_discussion_email_details($discussion, $emails) { global $CFG; require_once $CFG->dirroot . '/user/lib.php'; $contribemails = array(); $userids = get_contributor_ids($discussion); // Get contributor details. $users = user_get_users_by_id($userids); foreach ($users as $user) { if (!in_array($user->email, $emails)) { $details = array(); $details['email'] = $user->email; $details['mailformat'] = $user->mailformat; $details['username'] = $user->username; $contribemails[] = $details; } } return $contribemails; }
/** * This function looks up the given set of user IDs and returns an array containing * their full names. * * @param array $ids List of user IDs to lookup. * @return array List of names corresponding to IDs. * */ function block_skills_group_retrieve_names($ids) { $names = array(); $users = user_get_users_by_id($ids); // Explicit sort here is needed to preserve ID ordering. sort($users); foreach ($users as $user) { $names[] = $user->firstname . ' ' . $user->lastname; } return $names; }
/** * This function draws the table header - the student's names. * * @param object $members List of group members * */ function draw_table_header($members) { echo html_writer::start_tag('thead', array('class' => 'yui3-datatable-columns')); echo html_writer::start_tag('tr'); echo html_writer::nonempty_tag('th', get_string('skillheader', BLOCK_SG_LANG_TABLE), array('class' => 'yui3-datatable-header')); foreach ($members as $member) { $user = user_get_users_by_id(array($member->userid)); $username = $user[$member->userid]->firstname . ' ' . $user[$member->userid]->lastname; echo html_writer::nonempty_tag('th', $username, array('class' => 'yui3-datatable-header')); } echo html_writer::nonempty_tag('th', get_string('skillcount', BLOCK_SG_LANG_TABLE), array('class' => 'yui3-datatable-header')); echo html_writer::end_tag('tr'); echo html_writer::end_tag('thead'); }