troodle-expcontent/classes/output/renderer.php
Kumi 131f84f5ef
feat: add renderer for dynamic modal and activity scripts
Introduced a new renderer class to manage the rendering of activity scripts
and modals in the exp360 module. Renderer ensures modals are loaded only
once, enhancing performance. Modified lib.php to utilize the new renderer
for appending necessary scripts and modal content to the course module info.
2024-07-05 12:18:34 +02:00

45 lines
No EOL
1.7 KiB
PHP

<?php
namespace mod_exp360\output;
defined('MOODLE_INTERNAL') || die();
use plugin_renderer_base;
class renderer extends plugin_renderer_base {
private static $modals_rendered = false;
public function render_activity($activity_id) {
$script = "<script data-activity-id='$activity_id' src='/mod/exp360/script.js'></script>";
return $script;
}
public function render_modals() {
if (self::$modals_rendered) {
return '';
}
self::$modals_rendered = true;
$modalHTML = '
<div id="fullScreenModal" class="modal" tabindex="-1"
aria-labelledby="modalLabel" aria-hidden="true">
<div style="background-color:#294084;" class="modal-dialog modal-fullscreen">
<div style="background-color:#294084;" class="modal-content">
<div style="background-color:#294084;" class="modal-body"><iframe style="background-color:#294084;" id="modal-iframe"></iframe></div>
</div>
</div>
</div>
<div id="regularModal" style="background: rgb(255,255,255,.7);" class="modal" tabindex="-2"
aria-labelledby="modalLabel" aria-hidden="true">
<div style="background-color:#294084;height:90%;" class="modal-dialog modal-lg">
<div style="background-color:#294084;height:100%;" class="modal-content">
<div style="background-color:#294084;" class="modal-body"><iframe style="background-color:#294084;width:100%;height:100%;" id="regular-modal-iframe"></iframe></div>
</div>
</div>
</div>
';
return $modalHTML;
}
}