/** * Receives a message event object from moodletxt+ * and sens an SMS to the destination user as per their * preferences * @param object $messageObject Message event object * @version 2012062401 * @since 2012062401 */ function send_moodletxt_plus_message($messageObject) { $accountDAO = new TxttoolsAccountDAO(); $userDAO = new MoodletxtMoodleUserDAO(); $messageDAO = new TxttoolsSentMessageDAO(); // moodletxt requires a ConnectTxt account to be specified // for this message to transition via $defaultAccountId = (int) get_config('moodletxt', 'Event_Messaging_Account'); if ($defaultAccountId > 0) { $connectTxtAccount = $accountDAO->getTxttoolsAccountById($defaultAccountId); // Check that the specified account has outbound enabled if ($connectTxtAccount->isOutboundEnabled()) { $sender = $userDAO->getUserById($messageObject->from_id); $recipient = $userDAO->getUserById($messageObject->to_id); $message = new MoodletxtOutboundMessage($connectTxtAccount, $sender, $messageObject->smallmessage, time(), MoodletxtOutboundMessage::$MESSAGE_CHARGE_TYPE_BULK); $message->addMessageRecipient($recipient); $message->setEventCreated(true); // Send message to ConnectTxt try { $connector = MoodletxtOutboundControllerFactory::getOutboundController(MoodletxtOutboundControllerFactory::$CONTROLLER_TYPE_XML); $message->setSentSMSMessages($connector->sendMessage($message)); $messageDAO->saveSentMessage($message); } catch (MoodletxtRemoteProcessingException $ex) { // Die silently, for now } } } }
/** * Takes the vanilla object returned as a database row and creates a full-fledged * sent message object from it, complete with dependent beans, methods, the works * @param stdClass $stdObject Raw database-level data object * @return MoodletxtOutboundMessage Constructed message object * @version 2015062901 * @since 2011081101 */ private function convertStandardClassToBean($stdObject) { $defaultUser = new MoodletxtBiteSizedUser($stdObject->defaultuser, $stdObject->defaultusername, $stdObject->defaultfirst, $stdObject->defaultlast); $txttoolsAccount = new TxttoolsAccount($stdObject->txttoolsuser, $stdObject->description, $defaultUser, $stdObject->url, $stdObject->location); if (isset($stdObject->encrypted)) { $txttoolsAccount->setEncryptedPassword($stdObject->encrypted); } $messageOwner = new MoodletxtBiteSizedUser($stdObject->moodleuserid, $stdObject->moodleuser, $stdObject->firstname, $stdObject->lastname); $outboundMessage = new MoodletxtOutboundMessage($txttoolsAccount, $messageOwner, $stdObject->messagetext, $stdObject->timesent, $stdObject->type); if (isset($stdObject->scheduledfor)) { $outboundMessage->setScheduledTime($stdObject->scheduledfor); } if (isset($stdObject->id)) { $outboundMessage->setId($stdObject->id); } $eventCreated = $stdObject->fromevent == '1' ? true : false; $outboundMessage->setEventCreated($eventCreated); return $outboundMessage; }