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 core\hook\output;/*** Class before_html_attributes** @package core* @copyright 2024 Andrew Lyons <andrew@nicols.co.uk>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @property-read \renderer_base $renderer The page renderer object* @property array $attributes The list of HTML attributes to be added to the tag.*/#[\core\attribute\tags('output')]#[\core\attribute\label('Allows plugins to add, remove or modify any attributes of the html tag.')]#[\core\attribute\hook\replaces_callbacks('add_htmlattributes')]final class before_html_attributes {/*** Constructor for the before_html_attributes hook.** @param \renderer_base $renderer The page renderer object* @param array $attributes The list of HTML attributes initially on the tag*/public function __construct(/** @var \renderer_base The page renderer */public readonly \renderer_base $renderer,/** @var array The list of HTML attributes initially on the tag */private array $attributes = [],) {}/*** Add an HTML attribute to the list.** @param string $name* @param string $value*/public function add_attribute(string $name, string $value): void {$this->attributes[$name] = $value;}/*** Get the list of attributes.** @return array*/public function get_attributes(): array {return $this->attributes;}/*** Remove an HTML attribute from the list.** @param string $name*/public function remove_attribute(string $name): void {unset($this->attributes[$name]);}/*** Process legacy callbacks.*/public function process_legacy_callbacks(): void {// Legacy callback 'add_htmlattributes' is deprecated since Moodle 4.4.// This function should return an array of html attribute names => values.$pluginswithfunction = get_plugins_with_function(function: 'add_htmlattributes',migratedtohook: true,);foreach ($pluginswithfunction as $plugins) {foreach ($plugins as $function) {$newattrs = $function();unset($newattrs['dir']);unset($newattrs['lang']);unset($newattrs['xmlns']);unset($newattrs['xml:lang']);foreach ($newattrs as $name => $value) {$this->add_attribute($name, $value);}}}}}