diff --git a/filter.php b/filter.php index 8c907ee325f1b096cfb1ae225a6a6b53c98ccf38..62d28f43b484f14c181d152de183562b7f2f0fd7 100644 --- a/filter.php +++ b/filter.php @@ -44,7 +44,7 @@ class filter_opencast extends moodle_text_filter { * @throws dml_exception */ public function filter($text, array $options = []) { - global $CFG, $PAGE; + global $PAGE, $OUTPUT; $i = 0; if (stripos($text, '</video>') === false) { @@ -134,28 +134,34 @@ class filter_opencast extends moodle_text_filter { $mustachedata->height = $height; $mustachedata->modplayerpath = (new moodle_url('/mod/opencast/player.html'))->out(); - if (count($data['streams']) === 1) { - $sources = $data['streams'][0]['sources']; - $res = $sources[array_key_first($sources)][0]['res']; - $resolution = $res['w'] . '/' . $res['h']; - $mustachedata->resolution = $resolution; - - if ($width xor $height) { - if ($width) { - $mustachedata->height = $width * ($res['h'] / $res['w']); - } else if ($height) { - $mustachedata->width = $height * ($res['w'] / $res['h']); + if (isset($data['streams'])) { + if (count($data['streams']) === 1) { + $sources = $data['streams'][0]['sources']; + $res = $sources[array_key_first($sources)][0]['res']; + $resolution = $res['w'] . '/' . $res['h']; + $mustachedata->resolution = $resolution; + + if ($width xor $height) { + if ($width) { + $mustachedata->height = $width * ($res['h'] / $res['w']); + } else if ($height) { + $mustachedata->width = $height * ($res['w'] / $res['h']); + } + } + } else { + if ($width && $height) { + $mustachedata->width = $width; + $mustachedata->height = $height; } } + $newtext = $renderer->render_player($mustachedata); } else { - if ($width && $height) { - $mustachedata->width = $width; - $mustachedata->height = $height; - } + $newtext = $OUTPUT->render(new \core\output\notification( + get_string('erroremptystreamsources', 'mod_opencast'), + \core\output\notification::NOTIFY_ERROR + )); } - $newtext = $renderer->render_player($mustachedata); - // Replace video tag. $text = preg_replace('/<video(?:(?!<\/video>).)*?' . preg_quote($match, '/') . '.*?<\/video>/', $newtext, $text, 1);