]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
updated the upgrade system
authorcash <cash.costello@gmail.com>
Mon, 2 Jan 2012 22:01:18 +0000 (17:01 -0500)
committercash <cash.costello@gmail.com>
Mon, 2 Jan 2012 22:01:18 +0000 (17:01 -0500)
actions/photos/admin/upgrade.php [moved from actions/admin/upgrade.php with 71% similarity]
lib/tidypics.php
start.php
views/default/admin/settings/tidypics.php

similarity index 71%
rename from actions/admin/upgrade.php
rename to actions/photos/admin/upgrade.php
index 334e9588ec73546b08e50f8df65782322ddba60a..c9ae1da483c0431f4f5f9da4c9db24d483378253 100644 (file)
@@ -2,18 +2,21 @@
 /**
  * Tidypics upgrade action
  */
-require_once "{$CONFIG->pluginspath}tidypics/version.php";
 
-$local_version = get_plugin_setting('version', 'tidypics');
+$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($_SERVER['HTTP_REFERER']);
+       forward(REFERER);
 }
 
 set_time_limit(0);
 
-$base_dir = $CONFIG->pluginspath . 'tidypics/upgrades';
+$base_dir = "{$plugins_path}tidypics/upgrades";
 
 // taken from engine/lib/version.php
 if ($handle = opendir($base_dir)) {
@@ -41,8 +44,7 @@ if ($handle = opendir($base_dir)) {
        }
 }
 
-set_plugin_setting('version', $version, 'tidypics');
+elgg_set_plugin_setting('version', $version, 'tidypics');
 
 system_message("Tidypics has been upgraded");
-
-forward($_SERVER['HTTP_REFERER']);
+forward(REFERER);
index 0a4586c291b96b2fd6ced3f8f0bafcba9293b674..4e56ae829cde7f171a3c2e62893d1374a9284f99 100644 (file)
@@ -109,6 +109,38 @@ function tidypics_get_image_libraries() {
        return $options;
 }
 
+/**
+ * Are there upgrade scripts to be run?
+ *
+ * @return bool 
+ */
+function tidypics_is_upgrade_available() {
+       // sets $version based on code
+       require_once elgg_get_plugins_path() . "tidypics/version.php";
+
+       $local_version = elgg_get_plugin_setting('version', 'tidypics');
+       if ($local_version === false) {
+               // no version set so either new install or really old one
+               if (!get_subtype_class('object', 'image') || !get_subtype_class('object', 'album')) {
+                       $local_version = 0;
+               } else {
+                       // set initial version for new install
+                       elgg_set_plugin_setting('version', $version, 'tidypics');
+                       $local_version = $version;
+               }
+       } elseif ($local_version === '1.62') {
+               // special work around to handle old upgrade system
+               $local_version = 2010010101;
+               elgg_set_plugin_setting('version', $local_version, 'tidypics');
+       }
+
+       if ($local_version == $version) {
+               return false;
+       } else {
+               return true;
+       }
+}
+
 /*********************************************************************
  * the functions below replace broken core functions or add functions 
  * that could/should exist in the core
index a81c1d8544d0f90e34cd52bb0e63dd2dfc89ef7d..6300688740fac0097396071b54de301cb4ded107 100644 (file)
--- a/start.php
+++ b/start.php
@@ -100,7 +100,7 @@ function tidypics_init() {
        //register_action("tidypics/deletetag", false, "$base_dir/deletetag.php");
 
        elgg_register_action("photos/admin/settings", "$base_dir/admin/settings.php", 'admin');
-       //register_action("tidypics/admin/upgrade", false, "$base_dir/admin/upgrade.php", true);
+       elgg_register_action("photos/admin/upgrade", "$base_dir/admin/upgrade.php", 'admin');
 
        // Register libraries
        $base_dir = elgg_get_plugins_path() . 'tidypics/lib';
index aaaebd371c2ba4a55396c584f7840626bb44c1b8..2e7d79942e0c54199d29feab7393ba9e03fb8e04 100644 (file)
@@ -6,6 +6,18 @@
  * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
  */
 
+if (tidypics_is_upgrade_available()) {
+       echo '<div class="elgg-admin-notices">';
+       echo '<p>';
+       echo elgg_view('output/url', array(
+               'text' => elgg_echo('tidypics:upgrade'),
+               'href' => 'action/photos/admin/upgrade',
+               'is_action' => true,
+       ));
+       echo '</p>';
+       echo '</div>';
+}
+
 echo elgg_view('output/longtext', array('value' => elgg_echo('tidypics:admin:instructions')));
 
 echo elgg_view_form('photos/admin/settings');