Skip to content
Snippets Groups Projects
hook_adminmenu.php 1007 B
<?php

declare(strict_types=1);

use SimpleSAML\Locale\Translate;
use SimpleSAML\Module\accounting\Helpers\Routes;
use SimpleSAML\Module\accounting\ModuleConfiguration;
use SimpleSAML\XHTML\Template;

/** @noinspection PhpParameterByRefIsNotUsedAsReferenceInspection Reference is actually used by SimpleSAMLphp */
function accounting_hook_adminmenu(Template &$template): void
{
    $menuKey = 'menu';

    $moduleRoutesHelper = new Routes();

    $profilePageEntry = [
        ModuleConfiguration::MODULE_NAME => [
            'url' => $moduleRoutesHelper->getUrl(Routes::PATH_USER_PERSONAL_DATA),
            'name' => Translate::noop('Profile Page'),
        ],
    ];

    if (!isset($template->data[$menuKey]) || !is_array($template->data[$menuKey])) {
        return;
    }

    // Use array_splice to put our entry before the "Log out" entry.
    array_splice($template->data[$menuKey], -1, 0, $profilePageEntry);

    $template->getLocalization()->addModuleDomain(ModuleConfiguration::MODULE_NAME);
}