Sindbad~EG File Manager

Current Path : /home/admin/aya.blog.lppelm.o2switch.site/wp-content/plugins/gutenix-wizard/src/
Upload File :
Current File : /home/admin/aya.blog.lppelm.o2switch.site/wp-content/plugins/gutenix-wizard/src/Plugin.php

<?php

namespace zw;

use zw\components\Manager;

class Plugin
{
    public static $instance = null;
    const PREFIX = 'zw';
    public $components = null;
    public $filesManager = null;
    public $settings = null;
    public $externalConfig = [];


    /**
     * Plugin constructor.
     */
    private function __construct()
    {
        add_action('admin_init', array($this, 'pluginRedirects'));
        add_action('admin_menu', array($this, 'adminMenu'));
        add_action('admin_enqueue_scripts', array($this, 'registerAssets'));
        add_filter('plugin_action_links_' . ZW_PLUGIN_BASE, array($this, 'pluginActionLinks'));
        add_filter('upload_mimes', array($this, 'allowUploadXml'));

        $this->filesManager = new \zw\FilesManager(array(
            'baseSlug' => self::PREFIX
        ));
        $this->components = new Manager();
        $this->settings = new Settings();
    }

    /**
     * Add XML to alowed MIME types to upload
     *
     * @param array $mimes Allowed MIME-types.
     * @return array
     */
    public function allowUploadXml($mimes)
    {
        $mimes = array_merge($mimes, array('xml' => 'application/xml'));
        return $mimes;
    }

    /**
     * Plugin action links.
     * Adds ink to wizard strat page to the plugin list table
     * Fired by `plugin_action_links` filter.
     *
     * @param array $links An array of plugin action links.
     * @return array An array of plugin action links.
     */
    public function pluginActionLinks($links = array())
    {
        $start_page = sprintf(
            '<a href="%1$s">%2$s</a>',
            '/wp-admin/admin.php?page=gutenix-wizard',
            __('Start Page', 'zw')
        );
        array_unshift($links, $start_page);
        return $links;
    }

    /**
     * @return bool
     */
    public function registerAssets()
    {
        $asset = (new \zw\AssetManager())->register();
    }

    public function adminMenu()
    {
        add_menu_page(
            __('Gutenix Wizard', 'zw'),
            __('Gutenix Wizard', 'zw'),
            'manage_options',
            'gutenix-wizard',
            array($this, 'adminPageView'),
            ZW_URL . 'assets/images/zw-icon.svg',
            81
        );
    }

    /**
     * Admin Page View
     */
    public function adminPageView()
    {
        include Plugin::instance()->get_view('layout');
    }

    /**
     * Returns path to view file
     * @param string $path
     * @return mixed
     */
    public function get_view($path = '')
    {
        return apply_filters(
            self::PREFIX . '/get-view',
            \zw\helpers\File::normalizePath(ZW_PATH . 'views/' . $path . '.php')
        );
    }

    public function getWizardUrl($step = '')
    {
        return admin_url("admin.php?page=gutenix-wizard#/". $step);
    }

    /**
     * @return Plugin|null
     */
    public static function instance()
    {
        if (is_null(self::$instance)) {
            self::$instance = new self();
            do_action(self::PREFIX . '/loaded');
        }
        return self::$instance;
    }


    public function pluginRedirects()
    {
        if (!get_transient('gutenixWizardActivationRedirect')) {
            return;
        }
        delete_transient('gutenixWizardActivationRedirect');
        $storage = \zw\OptionStorage::get();
        $storage["wizardCompleted"] = isset($storage["wizardCompleted"]) ? $storage["wizardCompleted"] : false;
        if (!$storage["wizardCompleted"]) {
            \zw\OptionStorage::set($storage);
            wp_redirect($this->getWizardUrl("welcome"));
            die();
        }
        wp_redirect($this->getWizardUrl("license"));
        die();
    }

    public function addExternalConfig($config){
        $this->externalConfig = array_merge( $this->externalConfig, $config );
    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists