Server IP : 68.65.122.142 / Your IP : 18.221.61.135 Web Server : LiteSpeed System : Linux server167.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64 User : glenirhm ( 1318) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/glenirhm/lms.myglenbow.ca/old/question/engine/../../h5p/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?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/>. /** * Open the editor to modify an H5P content from a given H5P URL. * * @package core_h5p * @copyright 2021 Sara Arjona <sara@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once(__DIR__ . '/../config.php'); require_once("$CFG->libdir/formslib.php"); require_once("$CFG->libdir/filestorage/file_storage.php"); require_login(null, false); $contenturl = required_param('url', PARAM_LOCALURL); $returnurl = optional_param('returnurl', null, PARAM_LOCALURL); // If no returnurl is defined, use local_referer. if (empty($returnurl)) { $returnurl = get_local_referer(false); if (empty($returnurl)) { // If local referer is empty, returnurl will be set to default site page. $returnurl = new \moodle_url('/'); } } $contentid = null; $isreferenced = false; $context = \context_system::instance(); if (!empty($contenturl)) { list($originalfile, $h5p, $file) = \core_h5p\api::get_original_content_from_pluginfile_url($contenturl); $isreferenced = ($file !== false); if ($originalfile) { // Check if the user can edit the content behind the given URL. if (\core_h5p\api::can_edit_content($originalfile)) { if (!$h5p) { // This H5P file hasn't been deployed yet, so it should be saved to create the entry into the H5P DB. \core_h5p\local\library\autoloader::register(); $factory = new \core_h5p\factory(); $config = new \stdClass(); $onlyupdatelibs = !\core_h5p\helper::can_update_library($originalfile); $contentid = \core_h5p\helper::save_h5p($factory, $originalfile, $config, $onlyupdatelibs, false); } else { // The H5P content exists. Update the contentid value. $contentid = $h5p->id; } } if ($file) { list($context, $course, $cm) = get_context_info_array($file->get_contextid()); if ($course) { $context = \context_course::instance($course->id); } } else { list($context, $course, $cm) = get_context_info_array($originalfile->get_contextid()); if ($course) { $context = \context_course::instance($course->id); } } } } if (empty($contentid)) { throw new \moodle_exception('error:emptycontentid', 'core_h5p', $returnurl); } $pagetitle = get_string('h5peditor', 'core_h5p'); $url = new \moodle_url("/h5p/edit.php"); $PAGE->set_context($context); $PAGE->set_url($url); $PAGE->set_title($pagetitle); $PAGE->set_heading($pagetitle); $PAGE->set_pagelayout('course'); $values = [ 'id' => $contentid, 'contenturl' => $contenturl, 'returnurl' => $returnurl, ]; $form = new \core_h5p\form\editcontent_form(null, $values); if ($form->is_cancelled()) { redirect($returnurl); } else if ($data = $form->get_data()) { $form->save_h5p($data); if (!empty($returnurl)) { redirect($returnurl); } } echo $OUTPUT->header(); if ($isreferenced) { echo $OUTPUT->notification(get_string('contentinuse', 'core_h5p'), 'info'); } $form->display(); echo $OUTPUT->footer();