on-demand release 4.0dev+
[moodle.git] / contentbank / classes / form / edit_content.php
CommitLineData
c49d8663
VDF
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/**
18 * Provides {@see \core_contentbank\form\edit_content} class.
19 *
20 * @package core_contentbank
21 * @copyright 2020 Victor Deniz <victor@moodle.com>
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace core_contentbank\form;
26
27use moodleform;
28
29defined('MOODLE_INTERNAL') || die();
30
31require_once($CFG->libdir.'/formslib.php');
32
33/**
34 * Defines the form for editing a content.
35 *
36 * @package core_contentbank
37 * @copyright 2020 Victor Deniz <victor@moodle.com>
38 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
39 */
40abstract class edit_content extends moodleform {
41
42 /** @var int Context the content belongs to. */
43 protected $contextid;
44
45 /** @var string Content type plugin name. */
46 protected $plugin;
47
48 /** @var int Content id in the content bank. */
49 protected $id;
50
51 /**
52 * Constructor.
53 *
54 * @param string $action The action attribute for the form.
55 * @param array $customdata Data to set during instance creation.
56 * @param string $method Form method.
57 */
58 public function __construct(string $action = null, array $customdata = null, string $method = 'post') {
59 parent::__construct($action, $customdata, $method);
60 $this->contextid = $customdata['contextid'];
61 $this->plugin = $customdata['plugin'];
62 $this->id = $customdata['id'];
63
64 $mform =& $this->_form;
65 $mform->addElement('hidden', 'contextid', $this->contextid);
66 $this->_form->setType('contextid', PARAM_INT);
67
68 $mform->addElement('hidden', 'plugin', $this->plugin);
69 $this->_form->setType('plugin', PARAM_PLUGIN);
70
71 $mform->addElement('hidden', 'id', $this->id);
72 $this->_form->setType('id', PARAM_INT);
73 }
74
75 /**
76 * Overrides formslib's add_action_buttons() method.
77 *
78 *
79 * @param bool $cancel
80 * @param string|null $submitlabel
81 *
82 * @return void
83 */
84 public function add_action_buttons($cancel = true, $submitlabel = null): void {
85 if (is_null($submitlabel)) {
86 $submitlabel = get_string('save');
87 }
88 parent::add_action_buttons($cancel, $submitlabel);
89 }
90}