コード例 #1
0
ファイル: externallib.php プロジェクト: vuchannguyen/web
 /**
  * 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;
 }
コード例 #2
0
ファイル: lib.php プロジェクト: edmiranda/group
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;
}
コード例 #3
0
ファイル: request.php プロジェクト: edmiranda/group
    $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();
コード例 #4
0
/**
 * 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;
}
コード例 #5
0
/**
 * 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;
}
コード例 #6
0
/**
 * 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');
}