$48 GRAYBYTE WORDPRESS FILE MANAGER $50

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

/home/bravrvjk/itiministry.org/wp-content/plugins/give/src/DonorDashboards/Tabs/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/DonorDashboards/Tabs//TabsRegister.php
<?php

namespace Give\DonorDashboards\Tabs;

use Give\DonorDashboards\Exceptions\DuplicateTabException;
use Give\DonorDashboards\Exceptions\MissingTabException;
use Give\DonorDashboards\Tabs\Contracts\Tab;

/**
 * @since 2.10.0
 */
class TabsRegister
{
    /**
     * FQCN of Tab classes
     *
     * @since 2.10.0
     *
     * @var string[]
     */
    private $tabs = [];

    /**
     * Returns all of the registered tabs
     *
     * @since 2.10.0
     *
     * @return string[]
     */
    public function getTabs()
    {
        return $this->tabs;
    }

    /**
     * Checks to see if a tab is registered with the given ID
     *
     * @since 2.10.0
     *
     * @param string $id
     *
     * @return bool
     */
    public function hasTab($id)
    {
        return isset($this->tabs[$id]);
    }

    /**
     * Returns a tab with the given ID
     *
     * @since 2.10.0
     *
     * @param string $id
     *
     * @return string
     */
    public function getTab($id)
    {
        if ( ! $this->hasTab($id)) {
            throw new MissingTabException($id);
        }

        return $this->tabs[$id];
    }

    /**
     * Returns all of the registered tab ids
     *
     * @since 2.10.0
     *
     * @return string[]
     */
    public function getRegisteredIds()
    {
        return array_keys($this->tabs);
    }

    /**
     * Add a tab to the list of tabs
     *
     * @since 2.10.0
     *
     * @param string $tabClass FQCN of the Tab Class
     */
    public function addTab($tabClass)
    {
        if ( ! is_subclass_of($tabClass, Tab::class)) {
            throw new \InvalidArgumentException('Class must extend the ' . Tab::class . ' class');
        }

        $tabId = $tabClass::id();

        if ($this->hasTab($tabId)) {
            throw new DuplicateTabException();
        }

        $this->tabs[$tabId] = $tabClass;
    }

    /**
     * Helper for adding a bunch of tabs at once
     *
     * @since 2.10.0
     *
     * @param string[] $tabClasses
     */
    public function addTabs(array $tabClasses)
    {
        foreach ($tabClasses as $tabClass) {
            $this->addTab($tabClass);
        }
    }

    public function registerTabRoutes()
    {
        foreach (give()->donorDashboardTabs->tabs as $tabClass) {
            $tab = new $tabClass;
            $tab->registerRoutes();
        }
    }

    public function enqueueTabAssets()
    {
        foreach (give()->donorDashboardTabs->tabs as $tabClass) {
            (new $tabClass)->enqueueAssets();
        }
    }
}


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
Contracts
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
DonationHistoryTab
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
EditProfileTab
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
TabsRegister.php
2.477 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF