$PAGE->requires->strings_for_js(array('errorlabel', 'errornonumber', 'errornofirstname', 'errornolastname', 'errornorecipientsselected', 'errornomessage'), 'block_moodletxt'); $PAGE->requires->jquery(); $PAGE->requires->jquery_plugin('ui'); $PAGE->requires->jquery_plugin('ui-css'); $PAGE->requires->jquery_plugin('moodletxt-colour', 'block_moodletxt'); $PAGE->requires->jquery_plugin('moodletxt-selectboxes', 'block_moodletxt'); $PAGE->requires->jquery_plugin('moodletxt-json', 'block_moodletxt'); $PAGE->requires->jquery_plugin('moodletxt-detatchselect', 'block_moodletxt'); $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');
$PAGE->requires->js('/blocks/moodletxt/js/preferences.js', true); $output = $PAGE->get_renderer('block_moodletxt'); // Load custom data into form $customData = array('course' => $courseId, 'instance' => $instanceId, 'existingTemplate' => array()); $templates = $templateDAO->getAllTemplatesForUserId($USER->id); // Load again in case of change foreach ($templates as $template) { $customData['existingTemplate'][$template->getId()] = $template->getText(); } $preferencesForm = new UserPreferencesForm(null, $customData); // POST PROCESSING $formData = $preferencesForm->get_data(); $notifications = ''; if ($formData != null) { $formData = $preferencesForm->cleanFormData($formData); $userConfig = $userDAO->getUserConfig($USER->id); $templates = $templateDAO->getAllTemplatesForUserId($USER->id); // Process submitted signatures if ($formData->signature != $userConfig->getUserConfig('signature')) { $userConfig->setUserConfig('signature', $formData->signature); } if ($formData->hideSources != $userConfig->getUserConfig('hideSources')) { $userConfig->setUserConfig('hideSources', $formData->hideSources); } if ($formData->liveUpdateInterval != $userConfig->getUserConfig('liveUpdateInterval')) { $userConfig->setUserConfig('liveUpdateInterval', $formData->liveUpdateInterval); } // Save config to table if ($userDAO->saveUserConfig($userConfig)) { $notifications .= $output->notification(get_string('notifyprefsupdated', 'block_moodletxt'), 'notifysuccess'); } else {