Skip to content

Commit

Permalink
Fixes Opencast-Moodle#4 use mustache template for rendering the iframe
Browse files Browse the repository at this point in the history
  • Loading branch information
TamaraGunkel committed Feb 15, 2018
1 parent 23653b5 commit ff82234
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 12 deletions.
2 changes: 1 addition & 1 deletion amd/build/form.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 10 additions & 10 deletions filter.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public function filter($text, array $options = array()) {
$matches = preg_split('/(<[^>]*>)/i', $text, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

if ($matches) {
$renderer = $PAGE->get_renderer('filter_opencast');

// Login if user is not logged in yet.
$loggedin = true;
Expand Down Expand Up @@ -84,18 +85,17 @@ public function filter($text, array $options = array()) {
$id = substr($match, strpos($match, 'api/') + 4, 36);
$src = $CFG->wwwroot . '/filter/opencast/player/core.html?id=' . $id . '&ocurl=' . urlencode($apiurl);

if ($loggedin) {
// Set the source attribute directly.
$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>';
// Create link to video.
$link = $apiurl . '/engage/theodul/ui/core.html?id=' . $id;

}
// 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.
$text = preg_replace('/<video.*<\/video>/', $newtext, $text, 1);
}
Expand Down
48 changes: 48 additions & 0 deletions renderer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?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);
}
}
33 changes: 33 additions & 0 deletions templates/player.mustache
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{{!
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>

2 changes: 1 addition & 1 deletion version.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

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->component = 'filter_opencast'; // Full name of the plugin.
$plugin->dependencies = array('tool_opencast' => ANY_VERSION);

0 comments on commit ff82234

Please sign in to comment.