$76 GRAYBYTE WORDPRESS FILE MANAGER $40

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/dantho.rw/wp-content/plugins/extendify/app/Shared/Services/

HOME
Current File : /home/bravrvjk/dantho.rw/wp-content/plugins/extendify/app/Shared/Services//AdminMenuList.php
<?php

namespace Extendify\Shared\Services;

class AdminMenuList
{
    public static $transient = 'extendify_admin_pages_menu';

    public static function init()
    {
        \add_action("admin_menu", [self::class, "populate"], 999);
        \add_action('upgrader_process_complete', [self::class, 'remove']);

        // Upgrader process completed does not fire on activating/deactivating a plugin,
        // so we need to regenerate the menu after activate/deactivate the plugin
        \add_action('activate_plugin', [self::class, 'remove']);
        \add_action('deactivate_plugin', [self::class, 'remove']);
    }

    /**
     * Retrieves all WordPress admin page slugs (menu and submenu items).
     * Results are cached for performance.
     *
     * @return void
     */
    public static function populate()
    {
        global $menu, $submenu;

        if (get_transient(self::$transient) !== false || !is_array($menu) || !is_array($submenu)) {
            return;
        }

        $adminUrl = admin_url();
        $allPages = [];

        foreach ($menu as $menuItem) {
            if (empty($menuItem[0]) || !isset($menuItem[2])) {
                continue;
            }
            $allPages[] = $menuItem[2];
        }

        foreach ($submenu as $parent => $submenuItems) {
            if (!isset($parent) || strpos($parent, '.php') === false) {
                $parent = 'admin.php';
            }

            $subItems = array_map(function ($item) use ($parent) {
                return strpos($item, '.php') === false ? sprintf('%s?page=%s', $parent, $item) : $item;
            }, array_column($submenuItems, 2));

            array_push($allPages, ...$subItems);
        }

        $allPages = array_values(array_filter($allPages, function ($page) {
            return strpos($page, 'http') === false;
        }));

        foreach ($allPages as &$page) {
            $page = str_replace($adminUrl, '', $page);

            if (strpos($page, '.php') === false) {
                $page = 'admin.php?page=' . $page;
            }
        }
        unset($page);

        set_transient(self::$transient, $allPages);
    }

    public static function remove($plugin)
    {
        \delete_transient(self::$transient);
    }
}


Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
ApexDomain
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
Import
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
PluginDependencies
--
6 Nov 2025 10.43 AM
bravrvjk / bravrvjk
0755
AdminMenuList.php
2.199 KB
25 Sep 2025 8.59 PM
bravrvjk / bravrvjk
0644
Escaper.php
0.735 KB
22 May 2025 10.26 PM
bravrvjk / bravrvjk
0644
HttpClient.php
4.732 KB
16 Jul 2025 7.39 PM
bravrvjk / bravrvjk
0644
Sanitizer.php
3.269 KB
27 Aug 2025 5.47 PM
bravrvjk / bravrvjk
0644
VersionMigrator.php
5 KB
22 May 2025 10.26 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF