<?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/>.
namespace mod_data\output;
> use core\output\select_menu;
use templatable;
use renderable;
/**
* Renderable class for the action bar elements in the template pages in the database activity.
*
* @package mod_data
* @copyright 2021 Mihail Geshoski <mihail@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class templates_action_bar implements templatable, renderable {
/** @var int $id The database module id. */
private $id;
< /** @var \url_select $urlselect The URL selector object. */
< private $urlselect;
> /** @var select_menu $selectmenu The URL selector object. */
> private $selectmenu;
< /** @var \single_button|null $urlselect The save as preset single button object. */
< private $saveaspresetbutton;
<
< /** @var \single_button|null $urlselect The export preset single button object. */
< private $exportpresetbutton;
> /** @var \action_menu $actionsselect The presets actions selector object. */
> private $actionsselect;
/**
* The class constructor.
*
* @param int $id The database module id.
< * @param \url_select $urlselect The URL selector object.
< * @param \single_button|null $saveaspresetbutton The save as preset single button object or null.
< * @param \single_button|null $exportpresetbutton The export preset single button object or null.
> * @param select_menu $selectmenu The URL selector object.
> * @param null $unused1 This parameter has been deprecated since 4.1 and should not be used anymore.
> * @param null $unused2 This parameter has been deprecated since 4.1 and should not be used anymore.
> * @param \action_menu $actionsselect The presets actions selector object.
*/
< public function __construct(int $id, \url_select $urlselect, ?\single_button $saveaspresetbutton,
< ?\single_button $exportpresetbutton) {
> public function __construct(int $id, select_menu $selectmenu, $unused1, $unused2, \action_menu $actionsselect) {
$this->id = $id;
< $this->urlselect = $urlselect;
< $this->saveaspresetbutton = $saveaspresetbutton;
< $this->exportpresetbutton = $exportpresetbutton;
> $this->selectmenu = $selectmenu;
> $this->actionsselect = $actionsselect;
}
/**
* Export the data for the mustache template.
*
* @param \renderer_base $output renderer to be used to render the action bar elements.
* @return array
*/
public function export_for_template(\renderer_base $output): array {
< $data = [
> return [
'd' => $this->id,
< 'urlselect' => $this->urlselect->export_for_template($output),
> 'selectmenu' => $this->selectmenu->export_for_template($output),
> 'actionsselect' => $this->actionsselect->export_for_template($output),
];
<
< $data['saveaspreset'] = $this->saveaspresetbutton;
<
< if ($this->exportpresetbutton) {
< $data['exportpreset'] = $this->exportpresetbutton->export_for_template($output);
< }
<
< return $data;
}
}