$plugin_name, 'Plugin_URI' => $plugin_uri, 'Description' => $description, 'Author' => $author, 'Author_URI' => $author_uri, 'Version' => $version ); } ### Function: WordPress Get Plugins function get_pluginsused() { global $wp_plugins; if ( isset( $wp_plugins ) ) { return $wp_plugins; } $wp_plugins = array(); $plugin_root = WP_PLUGIN_DIR; $plugins_dir = @dir( $plugin_root ); $plugin_files = array(); if ( $plugins_dir ) { while( ( $file = $plugins_dir->read() ) !== false ) { if ( $file[0] === '.' ) { continue; } if ( is_dir( $plugin_root . '/' . $file ) ) { $plugins_subdir = @dir( $plugin_root . '/' . $file ); if ( $plugins_subdir ) { while ( ( $subfile = $plugins_subdir->read()) !== false ) { if ( $subfile[0] === '.' ) { continue; } if ( substr( $subfile, -4 ) === '.php' ) { $plugin_files[] = $file .'/'. $subfile; } } } } else { if ( substr( $file, -4 ) === '.php' ) { $plugin_files[] = $file; } } } } if ( empty( $plugins_dir) || empty( $plugin_files ) ) { return $wp_plugins; } foreach ( $plugin_files as $plugin_file ) { if ( ! is_readable( $plugin_root . '/' . $plugin_file ) ) { continue; } $plugin_data = get_pluginsused_data( $plugin_root . '/' . $plugin_file ); if ( empty( $plugin_data['Plugin_Name'] ) ) { continue; } $wp_plugins[ plugin_basename( $plugin_file ) ] = $plugin_data; } uasort( $wp_plugins, 'pluginsused_sort' ); return $wp_plugins; } function pluginsused_sort($a, $b) { return strnatcasecmp( $a['Plugin_Name'], $b['Plugin_Name'] ); } ### Function: Process Plugins Used function process_pluginsused() { global $plugins_used, $pluginsused_hidden_plugins; if ( empty( $plugins_used ) ) { $plugins_used = array(); $active_plugins = get_option( 'active_plugins' ); $plugins = get_pluginsused(); $plugins_allowedtags = array( 'a' => array( 'href' => array(),'title' => array() ),'abbr' => array( 'title' => array() ),'acronym' => array( 'title' => array() ),'code' => array(),'em' => array(),'strong' => array() ); foreach ($plugins as $plugin_file => $plugin_data ) { if ( ! in_array( $plugin_data['Plugin_Name'], $pluginsused_hidden_plugins, true ) ) { $plugin_data['Plugin_Name'] = wp_kses( $plugin_data['Plugin_Name'], $plugins_allowedtags ); $plugin_data['Plugin_URI'] = wp_kses( $plugin_data['Plugin_URI'], $plugins_allowedtags ); $plugin_data['Description'] = wp_kses( $plugin_data['Description'], $plugins_allowedtags ); $plugin_data['Author'] = wp_kses( $plugin_data['Author'], $plugins_allowedtags ); $plugin_data['Author_URI'] = wp_kses( $plugin_data['Author_URI'], $plugins_allowedtags ); if ( PLUGINSUSED_SHOW_VERSION ) { $plugin_data['Version'] = wp_kses( $plugin_data['Version'], $plugins_allowedtags ); } else { $plugin_data['Version'] = ''; } if ( ! empty( $active_plugins ) && in_array( $plugin_file, $active_plugins, true ) ) { $plugins_used['active'][] = $plugin_data; } else { $plugins_used['inactive'][] = $plugin_data; } } } } } ### Function: Display Plugins function display_pluginsused($type, $display = false) { global $plugins_used; $temp = ''; if ( empty( $plugins_used ) ) { process_pluginsused(); } if ( $type === 'stats' ) { $total_active_pluginsused = ! empty( $plugins_used['active'] ) ? count( $plugins_used['active'] ) : 0; $total_inactive_pluginsused = ! empty( $plugins_used['inactive'] ) ? count( $plugins_used['inactive'] ) : 0; $total_pluginsused = ( $total_active_pluginsused + $total_inactive_pluginsused ); $temp = sprintf( _n( 'There is %s plugin used:', 'There are %s plugins used:', $total_pluginsused, 'wp-pluginsused' ), number_format_i18n( $total_pluginsused ) ) .' ' . sprintf( _n( '%s active plugin','%s active plugins', $total_active_pluginsused, 'wp-pluginsused' ), number_format_i18n( $total_active_pluginsused ) ) . ' ' . __( 'and', 'wp-pluginsused' ) . ' ' . sprintf( _n( '%s inactive plugin.', '%s inactive plugins.', $total_inactive_pluginsused, 'wp-pluginsused' ), number_format_i18n( $total_inactive_pluginsused ) ); } else if ( $type === 'active' ) { if ( ! empty( $plugins_used['active'] ) ) { foreach( (array) $plugins_used['active'] as $active_plugin ) { $temp .= pluginsused_format_display( $active_plugin ); } } } else { if ( ! empty( $plugins_used['inactive'] ) ) { foreach( (array) $plugins_used['inactive'] as $inactive_plugin ) { $temp .= pluginsused_format_display( $inactive_plugin, 'inactive' ); } } } if( $display ) { echo $temp; } else { return $temp; } } function pluginsused_format_display( $plugin, $plugin_type = 'active' ) { $plugin['Plugin_Name'] = strip_tags( $plugin['Plugin_Name'] ); $plugin['Plugin_URI'] = strip_tags( $plugin['Plugin_URI'] ); $plugin['Description'] = strip_tags( $plugin['Description'] ); $plugin['Version'] = strip_tags( $plugin['Version'] ); $plugin['Author'] = strip_tags( $plugin['Author'] ); $plugin['Author_URI'] = strip_tags( $plugin['Author_URI'] ); $plugin['Version'] = strip_tags( $plugin['Version'] ); $icon = plugins_url( 'wp-pluginsused/images/plugin_active.gif' ); if ( $plugin_type === 'inactive') { $icon = plugins_url( 'wp-pluginsused/images/plugin_inactive.gif' ); } return '
' . $plugin['Plugin_Name'] . ' ' . $plugin['Version'] . '
» ' . $plugin['Author'] . ' (' . __( 'url', 'wp-pluginsused' ) . ')
' . $plugin['Description'] . '