aboutsummaryrefslogtreecommitdiff
path: root/actions/photos/admin/upgrade.php
blob: c9ae1da483c0431f4f5f9da4c9db24d483378253 (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
40
41
42
43
44
45
46
47
48
49
50
<?php
/**
 * Tidypics upgrade action
 */

$plugins_path = elgg_get_plugins_path();

require_once "{$plugins_path}tidypics/version.php";

$local_version = elgg_get_plugin_setting('version', 'tidypics');

if ($version <= $local_version) {
	register_error('No upgrade required');
	forward(REFERER);
}

set_time_limit(0);

$base_dir = "{$plugins_path}tidypics/upgrades";

// taken from engine/lib/version.php
if ($handle = opendir($base_dir)) {
	$upgrades = array();

	while ($updatefile = readdir($handle)) {
		// Look for upgrades and add to upgrades list
		if (!is_dir("$base_dir/$updatefile")) {
			if (preg_match('/^([0-9]{10})\.(php)$/', $updatefile, $matches)) {
				$plugin_version = (int) $matches[1];
				if ($plugin_version > $local_version) {
					$upgrades[] = "$base_dir/$updatefile";
				}
			}
		}
	}

	// Sort and execute
	asort($upgrades);

	if (sizeof($upgrades) > 0) {
		foreach ($upgrades as $upgrade) {
			include($upgrade);
		}
	}
}

elgg_set_plugin_setting('version', $version, 'tidypics');

system_message("Tidypics has been upgraded");
forward(REFERER);