balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

network-plugins.php (2228B)


      1 <?php
      2 namespace Elementor\Modules\System_Info\Reporters;
      3 
      4 if ( ! defined( 'ABSPATH' ) ) {
      5 	exit; // Exit if accessed directly.
      6 }
      7 
      8 /**
      9  * Elementor network plugins report.
     10  *
     11  * Elementor system report handler class responsible for generating a report for
     12  * network plugins.
     13  *
     14  * @since 1.0.0
     15  */
     16 class Network_Plugins extends Base {
     17 
     18 	/**
     19 	 * Network plugins.
     20 	 *
     21 	 * Holds the sites network plugins list.
     22 	 *
     23 	 * @since 1.0.0
     24 	 * @access private
     25 	 *
     26 	 * @var array
     27 	 */
     28 	private $plugins;
     29 
     30 	/**
     31 	 * Get network plugins reporter title.
     32 	 *
     33 	 * Retrieve network plugins reporter title.
     34 	 *
     35 	 * @since 1.0.0
     36 	 * @access public
     37 	 *
     38 	 * @return string Reporter title.
     39 	 */
     40 	public function get_title() {
     41 		return 'Network Plugins';
     42 	}
     43 
     44 	/**
     45 	 * Get active network plugins.
     46 	 *
     47 	 * Retrieve the active network plugins from the list of active site-wide plugins.
     48 	 *
     49 	 * @since 2.0.0
     50 	 * @access private
     51 	 *
     52 	 * @return array Active network plugins.
     53 	 */
     54 	private function get_network_plugins() {
     55 		if ( ! $this->plugins ) {
     56 			$active_plugins = get_site_option( 'active_sitewide_plugins' );
     57 			$this->plugins = array_intersect_key( get_plugins(), $active_plugins );
     58 		}
     59 
     60 		return $this->plugins;
     61 	}
     62 
     63 	/**
     64 	 * Is enabled.
     65 	 *
     66 	 * Whether there are active network plugins or not.
     67 	 *
     68 	 * @since 1.0.0
     69 	 * @access public
     70 	 *
     71 	 * @return bool True if the site has active network plugins, False otherwise.
     72 	 */
     73 	public function is_enabled() {
     74 		if ( ! is_multisite() ) {
     75 			return false;
     76 		};
     77 
     78 		return ! ! $this->get_network_plugins();
     79 	}
     80 
     81 	/**
     82 	 * Get network plugins report fields.
     83 	 *
     84 	 * Retrieve the required fields for the network plugins report.
     85 	 *
     86 	 * @since 1.0.0
     87 	 * @access public
     88 	 *
     89 	 * @return array Required report fields with field ID and field label.
     90 	 */
     91 	public function get_fields() {
     92 		return [
     93 			'network_active_plugins' => 'Network Plugins',
     94 		];
     95 	}
     96 
     97 	/**
     98 	 * Get active network plugins.
     99 	 *
    100 	 * Retrieve the sites active network plugins.
    101 	 *
    102 	 * @since 1.0.0
    103 	 * @access public
    104 	 *
    105 	 * @return array {
    106 	 *    Report data.
    107 	 *
    108 	 *    @type string $value The active network plugins list.
    109 	 * }
    110 	 */
    111 	public function get_network_active_plugins() {
    112 		return [
    113 			'value' => $this->get_network_plugins(),
    114 		];
    115 	}
    116 }