aboutsummaryrefslogtreecommitdiff
path: root/actions/photos/admin
diff options
context:
space:
mode:
Diffstat (limited to 'actions/photos/admin')
-rw-r--r--actions/photos/admin/upgrade.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/actions/photos/admin/upgrade.php b/actions/photos/admin/upgrade.php
new file mode 100644
index 000000000..c9ae1da48
--- /dev/null
+++ b/actions/photos/admin/upgrade.php
@@ -0,0 +1,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);