/**
  * Grabs a single Moodle user from the DB by its record ID
  * @global moodle_database $DB Moodle database manager
  * @param int $userId User record ID
  * @param boolean $includeConfig 
  * @return MoodletxtBiteSizedUser Moodle user
  * @version 2012060101
  * @since 2011062701
  */
 public function getUserById($userId, $includeConfig = false, $includeTemplates = false)
 {
     global $DB;
     $numberSource = get_config('moodletxt', 'Phone_Number_Source');
     $numberField = $numberSource == 'phone1' ? 'phone1' : 'phone2';
     // Protects against bad DB values and abstracts field name
     $fields = 'id, username, firstname, lastname, ' . $numberField;
     $moodleUser = $DB->get_record('user', array('id' => $userId), $fields);
     if (!is_object($moodleUser)) {
         throw new InvalidArgumentException(get_string('errorinvalidaccountid', 'block_moodletxt'));
     }
     $userObject = new MoodletxtBiteSizedUser($moodleUser->id, $moodleUser->username, $moodleUser->firstname, $moodleUser->lastname);
     try {
         $phoneObject = new MoodletxtPhoneNumber($moodleUser->{$numberField});
         $userObject->setRecipientNumber($phoneObject);
     } catch (InvalidPhoneNumberException $ex) {
         // Profile's phone number is invalid - not necessary to throw further
     }
     // Include optionals if requested
     if ($includeConfig) {
         $userObject->setConfig($this->getUserConfig($userObject->getId()));
     }
     if ($includeTemplates) {
         $userObject->setTemplates($this->templateDAO->getAllTemplatesForUserId($userObject->getId()));
     }
     return $userObject;
 }
Esempio n. 2
0
$PAGE->requires->js('/blocks/moodletxt/js/lib.js', true);
$PAGE->requires->js('/blocks/moodletxt/js/send.js', true);
$PAGE->requires->js('/blocks/moodletxt/js/lib/qfamsHandler.js', true);
// We don't need overrides for IE6, as Moodle 2 has dropped it!
// Oh, the happiness. The sheer unrelenting joy.
$PAGE->requires->css('/blocks/moodletxt/style/send.css');
// User's signature
$PAGE->requires->js_init_call('receiveUserSignature', array($userDAO->getUserConfig($USER->id)->getUserConfig('signature')));
// Set up send form and load in all our lovely data
$GLOBALS['_HTML_QuickForm_default_renderer'] = new QuickFormRendererWithSlides();
// Override renderer for slides
$output = $PAGE->get_renderer('block_moodletxt');
$potentialRecipients = array();
$initialData = array();
$customData = array('course' => $courseId, 'instance' => $instanceId, 'existingTemplates' => array(), 'potentialRecipients' => &$potentialRecipients, 'txttoolsAccounts' => array(), 'moodleUsers' => array(), 'moodleGroups' => array());
$templates = $templateDAO->getAllTemplatesForUserId($USER->id);
$accounts = $accountDAO->getAccessibleAccountsForUserId($USER->id, true, false);
$moodleUsers = $userDAO->getUsersOnCourse($courseId);
$moodleGroups = $userDAO->getUserGroupsOnCourse($courseId);
$abContacts = $addressbookDAO->getAddressbookContactsForUser($USER->id);
$abGroups = $addressbookDAO->getAddressbookGroupsForUser($USER->id);
if (count($accounts) === 0) {
    print_error('errornoaccountspresent', 'block_moodletxt');
}
foreach ($templates as $template) {
    $customData['existingTemplates'][$template->getId()] = $template->getText();
}
foreach ($accounts as $account) {
    $customData['txttoolsAccounts'][$account->getId()] = MoodletxtStringHelper::formatAccountForDisplay($account);
}
foreach ($moodleUsers as $user) {