Skip to content
Snippets Groups Projects
Select Git revision
  • 21390cb11511c2c773a734950b71c98166b0884b
  • master default protected
  • hsh_v4.5
  • hsh_v4-4
  • hsh_v4.4
  • hsh_v4.3
  • hsh_v4.1.x
  • hsh_v4.2
  • hsh_v4.1
  • hsh_v3.11
  • hsh_3.10
  • v3.11-r2-hsh
  • v3.11-r2
  • v3.11-r1
  • v3.10-r1
  • v3.9-r1
  • v3.8-r2
  • v3.8-r1
  • v3.7-r1
19 results

activeprocesses.php

  • 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) {