]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Missed this file when committing categories for plugins.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 12 Apr 2010 14:25:51 +0000 (14:25 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 12 Apr 2010 14:25:51 +0000 (14:25 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@5697 36083f99-b078-4883-b0ff-0f9b5a30f544

admin/plugins.php

index 55035830a2e9532f24540264c6d5d294390fb2e1..39478f153000fc853c4dc4639089928f2cfb0b3e 100644 (file)
@@ -9,17 +9,40 @@
  * @link http://elgg.org/
  */
 
-// Get the Elgg framework
 require_once(dirname(dirname(__FILE__)) . "/engine/start.php");
-
-// Make sure only valid admin users can see this
 admin_gatekeeper();
-
-// Regenerate plugin list
 regenerate_plugin_list();
 
+$show_category = get_input('category', NULL);
+
+// Get a list of the all categories
+// and trim down the plugin list if we're not viewing all categories.
+// @todo this could be cached somewhere after have the manifest loaded
+$categories = array();
+$installed_plugins = get_installed_plugins();
+
+foreach ($installed_plugins as $i => $plugin) {
+       $plugin_categories = $plugin['manifest']['category'];
+
+       // handle plugins that don't declare categories
+       if ((!$plugin_categories && $show_category) || ($show_category && !in_array($show_category, $plugin_categories))) {
+               unset($installed_plugins[$i]);
+       }
+
+       foreach ($plugin_categories as $category) {
+               if (!array_key_exists($category, $categories)) {
+                       $categories[$category] = elgg_echo("admin:plugins:label:moreinfo:categories:$category");
+               }
+       }
+}
+
 // Display main admin menu
-$vars = array('installed_plugins' => get_installed_plugins());
+$vars = array(
+       'installed_plugins' => $installed_plugins,
+       'categories' => $categories,
+       'show_category' => $show_category
+);
+
 $main_box = elgg_view("admin/plugins", $vars);
 $content = elgg_view_layout("one_column_with_sidebar", $main_box);