1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- /**
- * Activates all specified installed and inactive plugins.
- *
- * All specified plugins in the mod/ directory that aren't active are activated and the views
- * cache and simplecache are invalidated.
- *
- * @package Elgg.Core
- * @subpackage Administration.Plugins
- */
- $guids = get_input('guids');
- $guids = explode(',', $guids);
- $plugins = array();
- foreach ($guids as $guid) {
- $plugin = get_entity($guid);
- if (!$plugin->isActive()) {
- $plugins[$plugin->getId()] = $plugin;
- }
- }
- do {
- $additional_plugins_activated = false;
- foreach ($plugins as $key => $plugin) {
- if ($plugin->activate()) {
- $ids = array(
- 'cannot_start' . $plugin->getID(),
- 'invalid_and_deactivated_' . $plugin->getID()
- );
- foreach ($ids as $id) {
- elgg_delete_admin_notice($id);
- }
- $additional_plugins_activated = true;
- unset($plugins[$key]);
- }
- }
- if (!$additional_plugins_activated) {
- // no updates in this pass, break the loop
- break;
- }
- } while (count($plugins) > 0);
- if (count($plugins) > 0) {
- foreach ($plugins as $key => $plugin) {
- $msg = $plugin->getError();
- $string = ($msg) ? 'admin:plugins:activate:no_with_msg' : 'admin:plugins:activate:no';
- register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
- }
- }
- // don't regenerate the simplecache because the plugin won't be
- // loaded until next run. Just invalidate and let it regnerate as needed
- elgg_flush_caches();
- forward(REFERER);
|