81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace WpAssetCleanUp;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class PluginsManager
 | 
						|
 * @package WpAssetCleanUp
 | 
						|
 */
 | 
						|
class PluginsManager
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var array
 | 
						|
     */
 | 
						|
    public $data = array();
 | 
						|
 | 
						|
	/**
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	public function page()
 | 
						|
    {
 | 
						|
    	// Get active plugins and their basic information
 | 
						|
	    $this->data['active_plugins'] = self::getActivePlugins();
 | 
						|
	    $this->data['plugins_icons']  = Misc::getAllActivePluginsIcons();
 | 
						|
 | 
						|
	    $wpacuSubPage = (isset($_GET['wpacu_sub_page']) && $_GET['wpacu_sub_page']) ? $_GET['wpacu_sub_page'] : 'manage_plugins_front';
 | 
						|
	    $this->data['wpacu_sub_page'] = $wpacuSubPage;
 | 
						|
 | 
						|
	    Main::instance()->parseTemplate('admin-page-plugins-manager', $this->data, true);
 | 
						|
    }
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public static function getActivePlugins()
 | 
						|
	{
 | 
						|
		$activePluginsFinal = array();
 | 
						|
 | 
						|
        // Get active plugins and their basic information
 | 
						|
        $activePlugins = wp_get_active_and_valid_plugins();
 | 
						|
 | 
						|
		// Also check any network activated plugins in case we're dealing with a MultiSite setup
 | 
						|
		if ( is_multisite() ) {
 | 
						|
			$activeNetworkPlugins = wp_get_active_network_plugins();
 | 
						|
 | 
						|
			if ( ! empty( $activeNetworkPlugins ) ) {
 | 
						|
				foreach ( $activeNetworkPlugins as $activeNetworkPlugin ) {
 | 
						|
					$activePlugins[] = $activeNetworkPlugin;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		$activePlugins = array_unique($activePlugins);
 | 
						|
 | 
						|
		foreach ($activePlugins as $pluginPath) {
 | 
						|
			// Skip Asset CleanUp as it's obviously needed for the functionality
 | 
						|
			if (strpos($pluginPath, 'wp-asset-clean-up') !== false) {
 | 
						|
				continue;
 | 
						|
			}
 | 
						|
 | 
						|
			$networkActivated = isset($activeNetworkPlugins) && in_array($pluginPath, $activeNetworkPlugins);
 | 
						|
 | 
						|
			$pluginRelPath = trim(str_replace(WP_PLUGIN_DIR, '', $pluginPath), '/');
 | 
						|
 | 
						|
			$pluginData = get_plugin_data($pluginPath);
 | 
						|
 | 
						|
			$activePluginsFinal[] = array(
 | 
						|
                'title'             => $pluginData['Name'],
 | 
						|
                'path'              => $pluginRelPath,
 | 
						|
                'network_activated' => $networkActivated
 | 
						|
			);
 | 
						|
		}
 | 
						|
 | 
						|
        if ( ! empty($activePluginsFinal) ) {
 | 
						|
	        usort( $activePluginsFinal, static function( $a, $b ) {
 | 
						|
		        return strcmp( $a['title'], $b['title'] );
 | 
						|
	        } );
 | 
						|
        }
 | 
						|
 | 
						|
		return $activePluginsFinal;
 | 
						|
	}
 | 
						|
}
 |