]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Refs #2871 filter plugins by active/inactive state
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 9 Jun 2011 17:50:25 +0000 (17:50 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 9 Jun 2011 17:50:25 +0000 (17:50 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@9152 36083f99-b078-4883-b0ff-0f9b5a30f544

languages/en.php
views/default/admin/plugins/advanced.php

index 46ac19a34b403d61fe0bbc75b577531d349e6339..a3ee4e4210690f33f3c1a4e431282d9ae31e5c4b 100644 (file)
@@ -594,6 +594,8 @@ $english = array(
        'admin:footer:blog' => 'Elgg Blog',
 
        'admin:plugins:category:all' => 'All plugins',
+       'admin:plugins:category:active' => 'Active plugins',
+       'admin:plugins:category:inactive' => 'Inactive plugins',
        'admin:plugins:category:admin' => 'Admin',
        'admin:plugins:category:bundled' => 'Bundled',
        'admin:plugins:category:content' => 'Content',
index 4cefa0b3ed88c3146b0905915d9a6c6ac464fc96..dad1b778d84f3c1291122aaa599f614f12ffa7a4 100644 (file)
@@ -10,7 +10,7 @@
 
 elgg_generate_plugin_entities();
 $installed_plugins = elgg_get_plugins('any');
-$show_category = get_input('category', null);
+$show_category = get_input('category', 'all');
 
 // Get a list of the all categories
 // and trim down the plugin list if we're not viewing all categories.
@@ -26,9 +26,28 @@ foreach ($installed_plugins as $id => $plugin) {
 
        // handle plugins that don't declare categories
        // unset them here because this is the list we foreach
-       if ($show_category && !in_array($show_category, $plugin_categories)) {
-               unset($installed_plugins[$id]);
+       switch ($show_category) {
+               case 'all':
+                       break;
+               case 'active':
+                       if (!$plugin->isActive()) {
+                               unset($installed_plugins[$id]);
+                       }
+                       break;
+               case 'inactive':
+                       if ($plugin->isActive()) {
+                               unset($installed_plugins[$id]);
+                       }
+                       break;
+               default:
+                       if (!in_array($show_category, $plugin_categories)) {
+                               unset($installed_plugins[$id]);
+                       }
+                       break;
        }
+       //if ($show_category && !in_array($show_category, $plugin_categories)) {
+       //      unset($installed_plugins[$id]);
+       //}
 
        if (isset($plugin_categories)) {
                foreach ($plugin_categories as $category) {
@@ -41,7 +60,13 @@ foreach ($installed_plugins as $id => $plugin) {
 
 asort($categories);
 
-$categories = array_merge(array('' => elgg_echo('admin:plugins:category:all')), $categories);
+$common_categories = array(
+       'all' => elgg_echo('admin:plugins:category:all'),
+       'active' => elgg_echo('admin:plugins:category:active'),
+       'inactive' => elgg_echo('admin:plugins:category:inactive'),
+);
+
+$categories = array_merge($common_categories, $categories);
 
 $category_dropdown = elgg_view('input/dropdown', array(
        'name' => 'category',
@@ -62,7 +87,7 @@ $category_form = elgg_view('input/form', array(
 ));
 
 // @todo Until "en/deactivate all" means "All plugins on this page" hide when not looking at all.
-if (!isset($show_category) || empty($show_category)) {
+if ($show_category == 'all') {
        $activate_url = "action/admin/plugins/activate_all";
        $activate_url = elgg_add_action_tokens_to_url($activate_url);
        $deactivate_url = "action/admin/plugins/deactivate_all";