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); $outboundMessage->setMessageRecipients($destinations); try { $connector = MoodletxtOutboundControllerFactory::getOutboundController(MoodletxtOutboundControllerFactory::$CONTROLLER_TYPE_XML); $outboundMessage->setSentSMSMessages($connector->sendMessage($outboundMessage));
$accountList = $accountDAO->getAllTxttoolsAccounts(false, true, false, true); // Create form and initialise data $customData = array('filterAccountList' => array(0 => '')); foreach ($accountList as $account) { $customData['filterAccountList'][$account->getId()] = $account->getUsername(); } $filterForm = new MoodletxtFiltersForm(null, $customData); $formData = $filterForm->get_data(); // Form processing if ($formData != null) { $formData = $filterForm->cleanupFormData($formData); $usersOnFilter = array(); // Run over the users selected for the filter and ensure they // are ready for saving if (isset($formData->usersOnFilter) && is_array($formData->usersOnFilter)) { $usersOnFilter = $userDAO->getUsersById($formData->usersOnFilter); } // Create or fetch filter object if ($formData->newKeywordFilter != '' || $formData->newPhoneNumberFilter != '') { $type = $formData->newKeywordFilter != '' ? MoodletxtInboundFilter::$FILTER_TYPE_KEYWORD : MoodletxtInboundFilter::$FILTER_TYPE_PHONE_NUMBER; $value = $formData->newKeywordFilter != '' ? $formData->newKeywordFilter : $formData->newPhoneNumberFilter; $filter = new MoodletxtInboundFilter($formData->filterAccountList, $type, $value); } else { $filterId = $formData->existingKeywordFilterList > 0 ? $formData->existingKeywordFilterList : $formData->existingPhoneNumberFilterList; $filter = $filterDAO->getFilterById($filterId); } // The easiest way of doing the filter links, rather than my old method // of finding the ones to remove and the ones to add, is simply to drop // them all and replace them with what's in the form. So let's do that! $filter->clearDestinationUsers(); $filter->setDestinationUsers($usersOnFilter);