. namespace core_user\hook; /** * Hook to modify user menu. * * @package core_user * @copyright 2024 Guillaume Barat * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @property-read \renderer_base $renderer The page renderer object */ #[\core\attribute\tags('user')] #[\core\attribute\label('Allows plugins to add any elements to the user menu')] final class extend_user_menu { /** * Hook to modify user menu. * * @param array $navitems Menu item to add. */ public function __construct( /** @var array The navigation items */ public array $navitems = [], ) { } /** * Add navigation item. * * @param null|\stdClass $output */ public function add_navitem(?\stdClass $output): void { if ($output) { if (property_exists($output, 'itemtype')) { $this->navitems[] = $output; } } } /** * Returns a class with the detail for the menu. * * @return array */ public function get_navitems(): array { return $this->navitems; } }