HEX
Server: Apache/2.4.25
System: Linux ion14 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64
User: (10087)
PHP: 7.4.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,system, exec, shell_exec, passthru, popen, proc_open
Upload Files
File: /home/www/web115/wordpress/wp-content/plugins/digimember/system/controller/admin/tabbed.php
<?php

$load->controllerBaseClass( 'admin/multi_elements');

abstract class ncore_AdminTabbedController extends ncore_AdminMultiElementsController
{
    protected function renderPreContent()
    {
        $tabs = $this->tabs();
        if ($tabs)
        {
            $selected = $this->currentTab();
            $this->renderTabs( $tabs, $selected );
        }
    }


    protected function currentUrlArgs()
    {
        $args = parent::currentUrlArgs();

        $args[ 'tab'] = $this->currentTab();

        return $args;
    }

    protected function tabs()
    {
    }

    protected function currentTab()
    {
        $tabs = $this->tabs();
        if (!$tabs)
        {
            return false;
        }
        $requested_tab = ncore_retrieve( $_GET, 'tab' );
        $is_valid = isset( $tabs[$requested_tab] );
        if ($is_valid)
        {
            return $requested_tab;
        }

        return $this->defaultTab();
    }

    protected function defaultTab()
    {
        $tabs = $this->tabs();
        if (!$tabs)
        {
            return false;
        }

        $keys = array_keys( $tabs );
        $tab = $keys[0];

        return $tab;

    }

    protected function tabUrl( $tab, $args=array(), $seperator='&' )
    {
        $current_url = ncore_currentUrl();
        $base_url = ncore_removeArgs( $current_url, 'tab', $seperator );

        return ncore_addArgs( $base_url, $args, $seperator );
    }


    private function renderTabs( $tabs, $selected )
    {
        $args = array();

        foreach ($this->elementSelectorLevels() as $level)
        {
            $selected_element = $this->selectedElement( $level );
            if ($selected_element)
            {
                $args[ $this->elementSelectorName($level) ] = $selected_element;
            }
        }

        $metas = array();

        foreach ($tabs as $tab => $label_or_meta)
        {
            if (is_array($label_or_meta)) {
                $meta = $label_or_meta;
                $label = @$meta['label'];
                $url   = @$meta['url'];
            }
            else
            {
                $label = $label_or_meta;
                $url   = false;
            }

            $is_selected = $tab==$selected;

            $args['tab'] = $tab;

            if (empty($url))
            {
                $url = $this->tabUrl( $tab, $args, '&' );
            }
            else
            {
                $url = ncore_addArgs( $url, array( 'tab' => $tab ), '&', false );
            }

            $metas[] = array(
                'label' => $label,
                'selected' => $is_selected,
                'url' => $url,
            );
        }

        echo ncore_AdminTabs( $metas );
    }

}