Sören Weber for submitting a fix for a display problem. Now sorts by plugin name instead of plugin file name as it had. Author: Andrew Chen Author URI: http://www.andrewsw.com Changelog follows: 0.1.11(2006-09-04): modified to sort by plugin name instead of file name 0.1.10(?): fix from Soeren Weber for display problem previous versions: fixes and improvements not documented */ global $myPluginFiles; $activePluginsResult = get_settings('active_plugins'); if (is_array($activePluginsResult)) { $pup_plugin_files = $activePluginsResult; } else { $pup_plugin_files = explode("\n",$activePluginsResult); }; $myPluginFiles = array_values($pup_plugin_files); if (is_array($myPluginFiles[0])) { // new style - used the keys, not the values $myPluginFiles = array_keys($pup_plugin_files); }; sort($myPluginFiles); // Alphabetize by filename. Better way? $myPluginFiles=array_unique($myPluginFiles); function pups_getPluginData($plugin_file) { if (trim($plugin_file) == "") return ''; if (!file_exists(ABSPATH . '/wp-content/plugins/' . $plugin_file)) return ''; if (!is_readable(ABSPATH . '/wp-content/plugins/' . $plugin_file)) return ''; $plugin_data = implode('', file(ABSPATH . '/wp-content/plugins/' . $plugin_file)); preg_match("|Plugin Name:(.*)|i", $plugin_data, $plugin_name); if ('' == $plugin_name[1]) return ''; preg_match("|Plugin URI:(.*)|i", $plugin_data, $plugin_uri); preg_match("|Description:(.*)|i", $plugin_data, $description); preg_match("|Author:(.*)|i", $plugin_data, $author_name); preg_match("|Author URI:(.*)|i", $plugin_data, $author_uri); if ( preg_match("|Version:(.*)|i", $plugin_data, $version) ) $version = $version[1]; else $version =''; $description = wptexturize($description[1]); $description = wp_kses($description, array('a' => array('href' => array(),'title' => array()),'abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array(),'strong' => array()) ); if ('' == $plugin_uri) { $plugin = $plugin_name[1]; } else { $plugin = __("{$plugin_name[1]}"); } if ('' == $author_uri) { $author = $author_name[1]; } else { $author = __("{$author_name[1]}"); } return array('plugin_name' => trim($plugin_name[1]), 'plugin_uri' => $plugin_uri[1], 'description' => $description, 'author_name' => $author_name[1], 'author_uri' => $author_uri[1], 'version' => $version, 'plugin' => $plugin, 'author' => $author ); }; function pups_sortPlugins($plug1, $plug2) { return strnatcasecmp($plug1['plugin_name'], $plug2['plugin_name']); }; function pups_getPlugins() { global $myPluginFiles; $result = array(); foreach($myPluginFiles as $plugin_file) { $current = pups_getPluginData($plugin_file); if ('' != $current) $result[$current['plugin_name']] = $current; }; uksort($result, 'pups_sortPlugins'); $myPluginFiles = $result; return $myPluginFiles; }; $myPluginFiles = pups_getPlugins(); function displayPluginsAsTable($tableId="none", $showDescription="1") { global $myPluginFiles; $style = ''; if ($tableId == "none") { $tableStr = ' width="100%" cellpadding="3" cellspacing="3" '; } else { $tableStr = ' id="'.$tableId.'" '; }; ?> > "; if($showDescription) { echo " "; }; echo " "; }; ?>
$plugin $version $author$description