Skip to content
Snippets Groups Projects
Commit ff82234a authored by TamaraGunkel's avatar TamaraGunkel
Browse files

Fixes #4 use mustache template for rendering the iframe

parent 23653b52
No related branches found
No related tags found
No related merge requests found
define(["jquery"],function(a){var b={init:function(){a("#ltiLaunchForm").submit(function(b){b.preventDefault(),a.ajax({url:"http://localhost:8080/lti",crossDomain:!0,type:"post",xhrFields:{withCredentials:!0},data:a("#ltiLaunchForm").serialize(),complete:function(){a("iframe").each(function(){a(this).attr("src",a(this).data("framesrc"))})}})}),a("#ltiLaunchForm").submit()}};return b}); define(["jquery"],function(a){var b={init:function(){a("#ltiLaunchForm").submit(function(b){b.preventDefault();var c=decodeURIComponent(a(this).attr("action"));a.ajax({url:c,crossDomain:!0,type:"post",xhrFields:{withCredentials:!0},data:a("#ltiLaunchForm").serialize(),complete:function(){a(".ocplayer").each(function(){a(this).attr("src",a(this).data("framesrc"))})}})}),a("#ltiLaunchForm").submit()}};return b});
\ No newline at end of file \ No newline at end of file
...@@ -51,6 +51,7 @@ class filter_opencast extends moodle_text_filter { ...@@ -51,6 +51,7 @@ class filter_opencast extends moodle_text_filter {
$matches = preg_split('/(<[^>]*>)/i', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); $matches = preg_split('/(<[^>]*>)/i', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
if ($matches) { if ($matches) {
$renderer = $PAGE->get_renderer('filter_opencast');
// Login if user is not logged in yet. // Login if user is not logged in yet.
$loggedin = true; $loggedin = true;
...@@ -84,18 +85,17 @@ class filter_opencast extends moodle_text_filter { ...@@ -84,18 +85,17 @@ class filter_opencast extends moodle_text_filter {
$id = substr($match, strpos($match, 'api/') + 4, 36); $id = substr($match, strpos($match, 'api/') + 4, 36);
$src = $CFG->wwwroot . '/filter/opencast/player/core.html?id=' . $id . '&ocurl=' . urlencode($apiurl); $src = $CFG->wwwroot . '/filter/opencast/player/core.html?id=' . $id . '&ocurl=' . urlencode($apiurl);
if ($loggedin) { // Create link to video.
// Set the source attribute directly. $link = $apiurl . '/engage/theodul/ui/core.html?id=' . $id;
$player = '<iframe src="' . $src . '" width="95%" height="455px" class="ocplayer"></iframe>';
} else {
// Set the source attribute after login.
$player = '<iframe data-frameSrc="' . $src . '" width="95%" height="455px" class="ocplayer"></iframe>';
} // Collect the needed data being submitted to the template.
$mustachedata = new stdClass();
$mustachedata->loggedin = $loggedin;
$mustachedata->src = $src;
$mustachedata->link = $link;
$newtext = $renderer->render_player($mustachedata);
$link = $apiurl . '/engage/theodul/ui/core.html?id=' . $id;
// Add link to video.
$newtext = $player . '<a style="display:block;" target="_blank" href="' . $link . '">Zum Video</a>';
// Replace video tag. // Replace video tag.
$text = preg_replace('/<video.*<\/video>/', $newtext, $text, 1); $text = preg_replace('/<video.*<\/video>/', $newtext, $text, 1);
} }
......
<?php
// This file is part of a plugin for Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Renderer definition.
*
* @package filter_opencast
* @copyright 2018 Tamara Gunkel
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
require_once(__DIR__ . '/lib.php');
require_once($CFG->libdir . '/weblib.php');
/**
* Class for rendering opencast videos.
*
* @package filter_opencast
* @copyright 2018 Tamara Gunkel
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_opencast_renderer extends plugin_renderer_base {
/**
* Display the player.
*
* @param object $data The prepared variables.
* @return string
*/
public function render_player($data) {
return $this->render_from_template('filter_opencast/player', $data);
}
}
\ No newline at end of file
{{!
This file is part of Moodle - http://moodle.org/
Moodle is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Moodle is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Moodle. If not, see <http://www.gnu.org/licenses/>.
}}
{{!
@template filter_opencast/player
Opencast player template.
The purpose of this template is to render a opencast video.
}}
{{! Print the iframe. }}
{{# loggedin}}
<iframe src="{{src}}" width="95%" height="455px" class="ocplayer"></iframe>
{{/ loggedin}}
{{^loggedin}}
<iframe data-frameSrc="{{src}}" width="95%" height="455px" class="ocplayer"></iframe>
{{/loggedin}}
{{! Print the link to the video. }}
<a style="display:block;" target="_blank" href="{{link}}">Zum Video</a>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
$plugin->version = 2018021500; // The current plugin version (Date: YYYYMMDDXX). $plugin->version = 2018021501; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2017050500; // Requires this Moodle version. $plugin->requires = 2017050500; // Requires this Moodle version.
$plugin->component = 'filter_opencast'; // Full name of the plugin. $plugin->component = 'filter_opencast'; // Full name of the plugin.
$plugin->dependencies = array('tool_opencast' => ANY_VERSION); $plugin->dependencies = array('tool_opencast' => ANY_VERSION);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment