aboutsummaryrefslogtreecommitdiff
path: root/actions/admin/plugins/simple_update_states.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/admin/plugins/simple_update_states.php')
-rw-r--r--actions/admin/plugins/simple_update_states.php38
1 files changed, 17 insertions, 21 deletions
diff --git a/actions/admin/plugins/simple_update_states.php b/actions/admin/plugins/simple_update_states.php
index 7d01e4a46..216a458f4 100644
--- a/actions/admin/plugins/simple_update_states.php
+++ b/actions/admin/plugins/simple_update_states.php
@@ -1,48 +1,44 @@
<?php
/**
- * Bulk enable and disable for plugins appearing in the "simple" interface.
+ * Bulk activate/deactivate for plugins appearing in the "simple" interface.
*
- * Plugins marked as using the "simple" interface can be enabled and disabled
- * en masse by passing the enabled plugins as an array of their plugin ids
- * (directory names) through $_REQUEST['enabled_plugins']. All "simple" plugins
- * not in this array will be disabled.
+ * Plugins marked as using the "simple" interface can be activated/deactivated
+ * en masse by passing the plugins to activate as an array of their plugin guids
+ * in $_REQUEST['enabled_plugins']. All "simple" plugins not in this array will be
+ * deactivated.
*
* Simplecache and views cache are reset.
*
- * @uses array $_REQUEST['enabled_plugins'] An array of plugin ids (directory names) to enable.
+ * @uses array $_REQUEST['activated_plugin_guids'] Array of plugin guids to activate.
*
* @since 1.8
* @package Elgg.Core
- * @subpackage Administration.Site
+ * @subpackage Administration.Plugins
*/
-$installed_plugins = get_installed_plugins();
-$enabled_plugins = get_input('enabled_plugins', array());
-
+$active_plugin_guids = get_input('active_plugin_guids', array());
+$installed_plugins = elgg_get_plugins('any');
$success = TRUE;
-foreach ($installed_plugins as $plugin => $info) {
+foreach ($installed_plugins as $plugin) {
// this is only for simple plugins.
- $interface_type = elgg_get_array_value('admin_interface', $info['manifest'], NULL);
- if (!$interface_type || $interface_type != 'simple') {
+ if ($plugin->manifest->getAdminInterface() != 'simple') {
continue;
}
- $plugin_enabled = is_plugin_enabled($plugin);
-
// only effect changes to plugins not already in that state.
- if ($plugin_enabled && !in_array($plugin, $enabled_plugins)) {
- $success = $success && disable_plugin($plugin);
- } elseif (!$plugin_enabled && in_array($plugin, $enabled_plugins)) {
- $success = $success && enable_plugin($plugin);
+ if ($plugin->isActive() && !in_array($plugin->guid, $active_plugin_guids)) {
+ $success = $success && $plugin->deactivate();
+ } elseif (!$plugin->isActive() && in_array($plugin->guid, $active_plugin_guids)) {
+ $success = $success && $plugin->activate();
}
}
if ($success) {
elgg_delete_admin_notice('first_installation_plugin_reminder');
- system_message(elgg_echo('admin:plugins:simple_simple_success'));
+ //system_message(elgg_echo('admin:plugins:simple_simple_success'));
} else {
- register_error(elgg_echo('admins:plugins:simple_simple_fail'));
+ register_error(elgg_echo('admin:plugins:simple_simple_fail'));
}
// don't regenerate the simplecache because the plugin won't be