AutorÃa | Ultima modificación | Ver Log |
<?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 gradepenalty_duedate\output;use core_grades\output\action_bar;use core\output\notification;use core\output\single_button;use core\url;use gradepenalty_duedate\penalty_rule;/*** Renderable class for the action bar elements in the penalty rule page.** @package gradepenalty_duedate* @copyright 2024 Catalyst IT Australia Pty Ltd* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/class view_penalty_rule_action_bar extends action_bar {/** @var string $title The title of the page. */protected string $title;/** @var url $url The URL of the page. */protected url $url;/*** Constructor.** @param \context $context The context object.* @param string $title The title of the page.* @param url $url The URL of the page.*/public function __construct(\context $context, string $title, url $url) {parent::__construct($context);$this->title = $title;$this->url = $url;}#[\Override]public function get_template(): string {return 'gradepenalty_duedate/view_penalty_rule_action_bar';}#[\Override]public function export_for_template(\renderer_base $output): array {$data = [];$contextid = $this->context->id;// Title.$data['title'] = $output->heading($this->title);// If the context is not system context, show the reset button when rules are overridden.if (penalty_rule::is_overridden($contextid)) {// Show information about the overridden rules.$info = new notification(get_string('penaltyrule_overridden', 'gradepenalty_duedate'),notification::NOTIFY_INFO,);$data['info'] = $info->export_for_template($output);// Reset button.$reseturl = new url($this->url->out(), ['contextid' => $contextid,'reset' => 1,]);$resetbutton = new single_button($reseturl, get_string('reset'), 'get', single_button::BUTTON_DANGER);$data['resetbutton'] = $resetbutton->export_for_template($output);} else {if (penalty_rule::is_inherited($contextid)) {// Show information about the inherited rules.$info = new notification(get_string('penaltyrule_inherited', 'gradepenalty_duedate'),notification::NOTIFY_INFO,);$data['info'] = $info->export_for_template($output);} else {// No rules from parent context.$info = new notification(get_string('penaltyrule_not_inherited', 'gradepenalty_duedate'),notification::NOTIFY_INFO,);$data['info'] = $info->export_for_template($output);}}// Edit button.$editurl = new url($this->url->out(), ['contextid' => $contextid,'edit' => 1,]);$editbutton = new single_button($editurl, get_string('edit'), 'get', single_button::BUTTON_PRIMARY);$data['editbutton'] = $editbutton->export_for_template($output);return $data;}}