Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
namespace core_h5p\form;
18
 
19
use core_h5p\editor;
20
 
21
/**
22
 * Form to edit an existing H5P content.
23
 *
24
 * @package    core_h5p
25
 * @copyright  2020 Victor Deniz <victor@moodle.com>
26
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
27
 */
28
class editcontent_form extends \moodleform {
29
 
30
    /** @var editor H5P editor object */
31
    private $editor;
32
 
33
    /**
34
     * The form definition.
35
     */
36
    public function definition() {
37
 
38
        $mform = $this->_form;
39
        $id = $this->_customdata['id'] ?? null;
40
        $contenturl = $this->_customdata['contenturl'] ?? null;
41
        $returnurl = $this->_customdata['returnurl'] ?? null;
42
 
43
        $editor = new editor();
44
 
45
        if ($id) {
46
            $mform->addElement('hidden', 'id', $id);
47
            $mform->setType('id', PARAM_INT);
48
 
49
            $editor->set_content($id);
50
        }
51
 
52
        if ($contenturl) {
53
            $mform->addElement('hidden', 'url', $contenturl);
54
            $mform->setType('url', PARAM_LOCALURL);
55
        }
56
 
57
        if ($returnurl) {
58
            $mform->addElement('hidden', 'returnurl', $returnurl);
59
            $mform->setType('returnurl', PARAM_LOCALURL);
60
        }
61
 
62
        $this->editor = $editor;
63
        $mformid = 'h5peditor';
64
        $mform->setAttributes(array('id' => $mformid) + $mform->getAttributes());
65
 
66
        $this->set_display_vertical();
67
 
68
        $this->add_action_buttons();
69
 
70
        $editor->add_editor_to_form($mform);
71
 
72
        $this->add_action_buttons();
73
    }
74
 
75
    /**
76
     * Updates an H5P content.
77
     *
78
     * @param \stdClass $data Object with all the H5P data.
79
     *
80
     * @return void
81
     */
82
    public function save_h5p(\stdClass $data): void {
83
        $this->editor->save_content($data);
84
    }
85
}