/** * Create a link that allows for displaying embedded Jasper reports * on an HTML page * * @param $uri The resource id of the necessary report * @param $parameters Additional parameters to be passed to the report * @param $print If true, prints iframe on page * @return The HTML of the iframe containing the report * */ function embeddedreports_generate_link($uri, $parameters = array(), $print = true) { global $USER; $parameters['elisembedded'] = 'true'; if (!is_enabled_auth('mnet')) { error('mnet is disabled'); } // check remote login permissions if (!has_capability('moodle/site:mnetlogintoremote', get_context_instance(CONTEXT_SYSTEM)) or is_mnet_remote_user($USER) or $USER->username == 'guest' or empty($USER->id)) { print_error('notpermittedtojump', 'mnet'); } $mnet_auth = get_auth_plugin('mnet'); // check for SSO publish permission first if ($mnet_auth->has_service(jasper_mnet_hostid(), 'sso_sp') == false) { print_error('hostnotconfiguredforsso', 'mnet'); } $mnet_link = jasper_mnet_link(jasper_report_link($uri, $parameters)); $result = '<iframe id="reportframe" name="reportframe" src="' . $mnet_link . '"></iframe>'; if ($print) { echo $result; } return $result; }
function get_moodle_url() { if (isset($this->params['report'])) { $reportdata = jasperreportpage::$reports[$this->params['report']]; if (isset($this->params['id'])) { // only handle user forms for now if ($reportdata['type'] == 'user') { return new moodle_url(jasper_mnet_link(jasper_report_link($this->params['report'], array('userid' => $this->params['id'])))); } } return new moodle_url(jasper_mnet_link(jasper_report_link($this->params['report']))); } else { if (isset(jasperreportpage::$js_pages[$this->params['action']])) { return new moodle_url(jasper_mnet_link(jasperreportpage::$js_pages[$this->params['action']])); } else { return newpage::get_moodle_url(); } } }