// Clear editing button $addressbookNav = new moodle_url('/blocks/moodletxt/addressbooks.php', array('course' => $courseId, 'instance' => $instanceId)); $addressbookEditNav = new moodle_url('/blocks/moodletxt/addressbook_view.php', array('course' => $courseId, 'instance' => $instanceId, 'addressbook' => $addressbook->getId())); $PAGE->navbar->add(get_string('navmoodletxt', 'block_moodletxt'), null, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->navbar->add(get_string('navaddressbooks', 'block_moodletxt'), $addressbookNav, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->navbar->add($addressbook->getName(), $addressbookEditNav, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->navbar->add(get_string('navcontactadd', 'block_moodletxt'), null, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->requires->jquery(); $PAGE->requires->js('/blocks/moodletxt/js/lib.js', true); $PAGE->requires->js('/blocks/moodletxt/js/lib/qfamsHandler.js', true); $PAGE->requires->js('/blocks/moodletxt/js/addressbook_groups.js', true); // SETUP FORMS WITH INITIAL DATA $output = $PAGE->get_renderer('block_moodletxt'); $initialFormData = array('course' => $courseId, 'instance' => $instanceId, 'addressbook' => $addressbook->getId()); $customFormData = array('existingGroups' => array(), 'potentialContacts' => array()); $groupList = $addressbookDAO->getAddressbookGroupsForUser($USER->id, $addressbook->getId()); $contactList = $addressbookDAO->getAddressbookContactsForUser($USER->id, $addressbook->getId()); foreach ($groupList as $group) { $customFormData['existingGroups'][$group->getId()] = $group->getName(); } foreach ($contactList as $contact) { $customFormData['potentialContacts'][$contact->getContactId()] = $contact->getFullNameForDisplay(); } $GLOBALS['_HTML_QuickForm_default_renderer'] = new QuickFormRendererWithSlides(); // Override renderer for multi-select $notifications = ''; // POST PROCESSING FOR ADD FORM $addForm = new MoodletxtGroupAddForm(null, $customFormData); // Already have this data out, so pass it for inline validation $addData = $addForm->get_data(); if ($addData != null) {
$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) { if ($user->hasPhoneNumber()) { $potentialRecipients['u#' . $user->getId()] = array($user->getFullNameForDisplay(), array('class' => 'userRecipient')); } } foreach ($moodleGroups as $group) {
$PAGE->set_button(''); // Clear editing button $addressbookNav = new moodle_url('/blocks/moodletxt/addressbooks.php', array('course' => $courseId, 'instance' => $instanceId)); $addressbookEditNav = new moodle_url('/blocks/moodletxt/addressbook_view.php', array('course' => $courseId, 'instance' => $instanceId, 'addressbook' => $addressbook->getId())); $PAGE->navbar->add(get_string('navmoodletxt', 'block_moodletxt'), null, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->navbar->add(get_string('navaddressbooks', 'block_moodletxt'), $addressbookNav, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->navbar->add($addressbook->getName(), $addressbookEditNav, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->navbar->add(get_string('navcontactadd', 'block_moodletxt'), null, navigation_node::TYPE_CUSTOM, 'moodletxt'); $PAGE->requires->jquery(); $PAGE->requires->js('/blocks/moodletxt/js/lib.js', true); $PAGE->requires->js('/blocks/moodletxt/js/lib/qfamsHandler.js', true); // SETUP FORM $output = $PAGE->get_renderer('block_moodletxt'); $initialFormData = array('course' => $courseId, 'instance' => $instanceId, 'addressbook' => $addressbook->getId()); $customFormData = array('potentialGroups' => array()); $groupList = $addressbookDAO->getAddressbookGroupsForUser($USER->id, $addressbook->getId()); foreach ($groupList as $group) { $customFormData['potentialGroups'][$group->getId()] = $group->getName(); } $GLOBALS['_HTML_QuickForm_default_renderer'] = new QuickFormRendererWithSlides(); // Override renderer for multi-select $contactForm = new MoodletxtContactAddForm(null, $customFormData); $notifications = ''; // POST PROCESSING $formData = $contactForm->get_data(); if ($formData != null) { $formData = $contactForm->cleanupFormData($formData); // Create contact, add groups, save to DB $newContact = new MoodletxtAddressbookRecipient(new MoodletxtPhoneNumber($formData->phoneNumber), $formData->firstName, $formData->lastName, $formData->company, 0, $addressbook->getId()); foreach ($formData->groups as $groupId) { $newContact->addGroup($addressbookDAO->getAddressbookGroupById($formData->addressbook, $groupId));