diff --git a/classes/Report.php b/classes/Report.php index bac31e4..38a14cb 100644 --- a/classes/Report.php +++ b/classes/Report.php @@ -568,8 +568,6 @@ public function generate_full_page(int $attemptid, array $sections, bool $fix_re $html .= \quiz_archiver\coversheet\create_coversheet::get_coversheet($attemptid); $html .= self::generate($attemptid, $sections); $html .= $OUTPUT->footer(); - \local_debugger\performance\debugger::print_debug('archiver', 'HTML output', $html); - // Parse HTML as DOMDocument but supress consistency check warnings libxml_use_internal_errors(true); @@ -589,7 +587,7 @@ public function generate_full_page(int $attemptid, array $sections, bool $fix_re // We need to inject custom CSS to hide elements since the DOM generated by // Moodle can be corrupt which causes the PHP DOMDocument parser to die... $cssHacksNode = $dom->createElement("style", " - nav.navbar { + nav.navbar, bycs-topbar { display: none !important; } diff --git a/classes/coversheet/create_coversheet.php b/classes/coversheet/create_coversheet.php index 60ee6be..ed7481d 100644 --- a/classes/coversheet/create_coversheet.php +++ b/classes/coversheet/create_coversheet.php @@ -47,6 +47,7 @@ class create_coversheet { * @return string */ public static function get_coversheet(int $attemptid): string { + global $OUTPUT; $config = get_config('quiz_archiver'); @@ -68,34 +69,24 @@ public static function get_coversheet(int $attemptid): string { $replacement = self::check_class_and_method($classpath, $method, $attemptmetadata); $html = preg_replace('/' . $placeholder . '/', $replacement, $html); } - $styles = ['page-break-after: always;']; + \local_debugger\performance\debugger::print_debug('test', 'html', $html); $filename = !empty($config->pdfcoversheetbackgroundimage) ? $config->pdfcoversheetbackgroundimage : null; $fs = get_file_storage(); $context = \context_system::instance(); + $templatecontext = []; + $backgroundimage = $fs->get_file($context->id, 'quiz_archiver', 'pdfcoversheetbackgroundimage', 0, '/', $filename); - \local_debugger\performance\debugger::print_debug('test', 'backgroundimage', $backgroundimage); if (!empty($backgroundimage)) { - $url = \moodle_url::make_pluginfile_url( - $backgroundimage->get_contextid(), - $backgroundimage->get_component(), - $backgroundimage->get_filearea(), - $backgroundimage->get_itemid(), - $backgroundimage->get_filepath(), - $backgroundimage->get_filename() - )->out(); - - $styles[] = 'background-image: url(\'' . $url . '\');'; - $styles[] = 'width: 100%;'; - $styles[] = 'height: 100vh;'; - $styles[] = 'background-position: center;'; - $styles[] = 'background-repeat: no-repeat;'; - $styles[] = 'background-size: cover'; + $imgdata64 = base64_encode($backgroundimage->get_content()); + $templatecontext['backgroundimage64'] = 'data:image/png;base64,' . $imgdata64; } + $templatecontext['html'] = $html; + $templatecontext['styles'] = 'page-break-after: always; width: 100%; height: 100vh;'; - $html = '
' . $html . '
'; - \local_debugger\performance\debugger::print_debug('test', 'get_coversheet', $html); + $html = $OUTPUT->render_from_template('quiz_archiver/pdfcoversheet_html_sceleton', $templatecontext); + // $html = '
' . $html . '
'; return $html; } diff --git a/classes/coversheet/placeholder/profile.php b/classes/coversheet/placeholder/profile.php index 4cc364e..cec4e88 100644 --- a/classes/coversheet/placeholder/profile.php +++ b/classes/coversheet/placeholder/profile.php @@ -180,4 +180,24 @@ public static function language( object $params): string { $user = \core_user::get_user($params->userid); return $user->lang; } + + /** + * Get user idnumber. + * @param object $params + * @return string + */ + public static function idnumber(object $params): string { + $user = \core_user::get_user($params->userid); + return $user->idnumber; + } + + /** + * Get user matricel number. + * @param object $params + * @return string + */ + public static function matricelnumber(object $params): string { + return self::idnumber($params); + } + } diff --git a/lib.php b/lib.php index 69cd47d..06d3177 100644 --- a/lib.php +++ b/lib.php @@ -58,9 +58,9 @@ function quiz_archiver_pluginfile($course, $cm, $context, $filearea, $args, $for } // Validate course - // if ($args[1] !== $course->id) { - // send_file_not_found(); - // } + if ($args[1] !== $course->id) { + send_file_not_found(); + } // Try to serve file $fs = get_file_storage(); diff --git a/settings_coversheet.php b/settings_coversheet.php index 69d7087..0f6f807 100644 --- a/settings_coversheet.php +++ b/settings_coversheet.php @@ -22,14 +22,10 @@ */ require_once(dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/config.php'); - global $PAGE, $USER, $DB, $OUTPUT; -// $courseid = required_param('courseid', PARAM_INT); - $thisurl = new moodle_url('/mod/quiz/report/archiver/settings_coversheet.php'); $PAGE->set_url($thisurl); -// $PAGE->set_pagelayout('incourse'); $action = optional_param('action', '', PARAM_RAW); @@ -41,14 +37,6 @@ } } -// $category = $DB->get_record('course_categories', array('id' => $ccatid), '*', MUST_EXIST); -// $courseurl = new moodle_url('/course/view.php', array('id' => $courseid)); - -// require_login($courseid, false); -// $coursecontext = context_course::instance($courseid); - -// $template = $DB->get_record('block_mbsteachshare_template', array('courseid' => $courseid), '*', MUST_EXIST); - $PAGE->set_context(\context_system::instance()); $pagetitle = get_string('define_pdfcoversheet', 'quiz_archiver'); $PAGE->set_title($pagetitle); @@ -59,26 +47,6 @@ $templatecontext = []; -// $helper = new quiz_archiver\helper(); -// $plugininfo = new quiz_archiver\plugininfo\aitool(); -// $enabledtools = $plugininfo->get_enabled_plugins(); - -// // $options = ['' => get_string('pleaseselect', 'quiz_archiver')]; -// $options = []; -// foreach ($enabledtools as $tool) { -// $options[] = ['tool' => $tool, 'toolname' => get_string('pluginname', 'aitool_' . $tool), 'apikey' => "testkey"]; -// } - -// $purposes = $helper->get_all_purposes(); -// foreach ($purposes as $purpose) { - -// $templatecontext['matching']['purposes'][] = [ -// 'purpose' => $purpose, -// 'purposename' => get_string('purpose_' . $purpose, 'quiz_archiver'), -// 'selectoptions' => $options, -// ]; -// } - $templatecontext['storedhtml'] = ' @@ -92,14 +60,6 @@ } $templatecontext['placeholderdata'] = \quiz_archiver\coversheet\create_coversheet::get_possible_placeholders(); -// print_r(get_config('quiz_archiver', 'dynamic_pdf_content'));die; echo $OUTPUT->header(); - -// $renderer = $PAGE->get_renderer('block_mbsteachshare'); -// template::add_template_management_info($template); - echo $OUTPUT->render_from_template('quiz_archiver/define_pdfcoversheet', $templatecontext); -// $logdata = log::get_template_history($template->id); -// echo $renderer->render_template_history($template, $logdata); - echo $OUTPUT->footer(); diff --git a/templates/pdfcoversheet_html_sceleton.mustache b/templates/pdfcoversheet_html_sceleton.mustache new file mode 100644 index 0000000..3b55769 --- /dev/null +++ b/templates/pdfcoversheet_html_sceleton.mustache @@ -0,0 +1,7 @@ +
+ + + + {{{html}}} + +