aboutsummaryrefslogtreecommitdiff
path: root/actions/admin/plugins/set_priority.php
blob: edd735371b2e91ef5164bcbd14ac89c01b367e82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
/**
 * Changes the load priority of a plugin.
 *
 * Plugin priority affects view, action, and page handler
 * overriding as well as the order of view extensions.  Plugins with higher
 * priority are loaded after and override plugins with lower priorities.
 *
 * NOTE: When viewing the plugin admin page, plugins LOWER on the page
 * have HIGHER priority and will override views, etc from plugins above them.
 *
 * @package Elgg.Core
 * @subpackage Administration.Plugins
 */

$plugin_guid = get_input('plugin_guid');
$priority = get_input('priority');

$plugin = get_entity($plugin_guid);

if (!($plugin instanceof ElggPlugin)) {
	register_error(elgg_echo('admin:plugins:set_priority:no', array($plugin_guid)));
	forward(REFERER);
}

if ($plugin->setPriority($priority)) {
	//system_message(elgg_echo('admin:plugins:set_priority:yes', array($plugin->getManifest()->getName())));
} else {
	$msg = $plugin->getError();
	$string = ($msg) ? 'admin:plugins:set_priority:no_with_msg' : 'admin:plugins:set_priority: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_invalidate_simplecache();
elgg_reset_system_cache();

forward(REFERER);