/** * Renders the popup. * * @param renderer_base $renderer * @return string The HTML */ function message_popup_render_navbar_output(\renderer_base $renderer) { global $USER, $CFG; // Early bail out conditions. if (!isloggedin() || isguestuser() || user_not_fully_set_up($USER) || get_user_preferences('auth_forcepasswordchange') || $CFG->sitepolicy && !$USER->policyagreed && !is_siteadmin()) { return ''; } $output = ''; // Add the messages popover. if (!empty($CFG->messaging)) { $context = ['userid' => $USER->id, 'urls' => ['seeall' => (new moodle_url('/message/index.php'))->out(), 'writeamessage' => (new moodle_url('/message/index.php', ['contactsfirst' => 1]))->out(), 'preferences' => (new moodle_url('/message/edit.php', ['id' => $USER->id]))->out()]]; $output .= $renderer->render_from_template('message_popup/message_popover', $context); } // Add the notifications popover. $enabled = \core_message\api::is_processor_enabled("popup"); if ($enabled) { $context = ['userid' => $USER->id, 'urls' => ['seeall' => (new moodle_url('/message/output/popup/notifications.php'))->out(), 'preferences' => (new moodle_url('/message/notificationpreferences.php', ['userid' => $USER->id]))->out()]]; $output .= $renderer->render_from_template('message_popup/notification_popover', $context); } return $output; }
/** * Test method is_user_enabled. */ public function is_user_enabled() { $processors = get_message_processors(); if (empty($processors)) { $this->markTestSkipped("No message processors found"); } list($name, $testprocessor) = each($processors); // Enable. \core_message\api::update_processor_status($testprocessor, 1); $status = \core_message\api::is_processor_enabled($name); $this->assertEquals(1, $status); // Disable. \core_message\api::update_processor_status($testprocessor, 0); $status = \core_message\api::is_processor_enabled($name); $this->assertEquals(0, $status); // Enable again. \core_message\api::update_processor_status($testprocessor, 1); $status = \core_message\api::is_processor_enabled($name); $this->assertEquals(1, $status); }