diff options
| -rw-r--r-- | actions/photos/admin/upgrade.php (renamed from actions/admin/upgrade.php) | 16 | ||||
| -rw-r--r-- | lib/tidypics.php | 32 | ||||
| -rw-r--r-- | start.php | 2 | ||||
| -rw-r--r-- | views/default/admin/settings/tidypics.php | 12 | 
4 files changed, 54 insertions, 8 deletions
diff --git a/actions/admin/upgrade.php b/actions/photos/admin/upgrade.php index 334e9588e..c9ae1da48 100644 --- a/actions/admin/upgrade.php +++ b/actions/photos/admin/upgrade.php @@ -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); diff --git a/lib/tidypics.php b/lib/tidypics.php index 0a4586c29..4e56ae829 100644 --- a/lib/tidypics.php +++ b/lib/tidypics.php @@ -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 @@ -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'; diff --git a/views/default/admin/settings/tidypics.php b/views/default/admin/settings/tidypics.php index aaaebd371..2e7d79942 100644 --- a/views/default/admin/settings/tidypics.php +++ b/views/default/admin/settings/tidypics.php @@ -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');  | 
