Select Git revision
filter.php
-
Tamara Gunkel authoredTamara Gunkel authored
filter.php 6.69 KiB
<?php
// 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/>.
/**
* Opencast filtering
*
* This filter will replace any links to opencast videos with the selected player from opencast.
*
* @package filter_opencast
* @copyright 2018 Tamara Gunkel
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
use mod_opencast\local\paella_transform;
defined('MOODLE_INTERNAL') || die();
/**
* Automatic opencast videos filter class.
*
* @package filter_opencast
* @copyright 2018 Tamara Gunkel
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_opencast extends moodle_text_filter
{
/**
* Replaces Opencast videos embedded in <video> tags by the paella player.
* @param string $text
* @param array $options
* @return array|mixed|string|string[]|null
* @throws dml_exception
*/
public function filter($text, array $options = array()) {
global $CFG, $PAGE;
$i = 0;
if (stripos($text, '</video>') === false) {
// Performance shortcut - if there is no </video> tag, nothing can match.
return $text;
}
foreach (\tool_opencast\local\settings_api::get_ocinstances() as $ocinstance) {
$episodeurl = get_config('filter_opencast', 'episodeurl_' . $ocinstance->id);
if (!$episodeurl) {
continue;
}
$urlparts = parse_url($episodeurl);
$baseurl = $urlparts['scheme'] . '://' . $urlparts['host'];
if (isset($urlparts['port'])) {
$baseurl .= $urlparts['port'];
}
if (empty($episodeurl) || stripos($text, $baseurl) === false) {