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;
|
||
|
}
|
||
|
}
|