// Build destination list, indexed by phone number to prevent duplicates // Fetch additional contacts first (lowest priority for linking) $destinations += $additionalContacts; // Addressbook contacts and groups next if (count($addressBookGroups) > 0) { foreach ($addressBookGroups as $addressBookGroup) { $destinations += $addressbookDAO->getAddressbookContactsInGroup($addressBookGroup, 'phone'); } } if (count($addressBookContacts) > 0) { $destinations += $addressbookDAO->getAddressbookContactsById($addressBookContacts, 'phone'); } // Merge Moodle users last - higher priority in linking than other contact type if (count($moodleUserGroups) > 0) { foreach ($moodleUserGroups as $userGroup) { $destinations += $userDAO->getUsersInGroup($userGroup, 'phone'); } } if (count($moodleUsers) > 0) { $destinations += $userDAO->getUsersById($moodleUsers, 'phone'); } // If there are valid destinations, send the message if (count($destinations) > 0) { $txttoolsAccount = $accountDAO->getTxttoolsAccountById($formData->txttoolsaccount); $thisUser = new MoodletxtBiteSizedUser($USER->id, $USER->username, $USER->firstname, $USER->lastname); if ($formData->schedule == 'schedule') { $scheduletime = usertime(gmmktime($formData->scheduletime['H'], $formData->scheduletime['i'], 0, $formData->scheduletime['M'], $formData->scheduletime['d'], $formData->scheduletime['Y'])); } else { $scheduletime = time(); } $outboundMessage = new MoodletxtOutboundMessage($txttoolsAccount, $thisUser, $formData->messageText, time(), MoodletxtOutboundMessage::$MESSAGE_CHARGE_TYPE_BULK, $scheduletime, $formData->suppressUnicode);