/** * 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; }
$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) {