summaryrefslogtreecommitdiff
path: root/includes/install_upgrade.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/install_upgrade.php')
-rw-r--r--includes/install_upgrade.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/includes/install_upgrade.php b/includes/install_upgrade.php
new file mode 100644
index 0000000..6243aef
--- /dev/null
+++ b/includes/install_upgrade.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @version $Header$
+ * @package install
+ * @subpackage functions
+ */
+
+$gBitSmarty->assign( 'next_step', $step );
+
+$errors = $success = array();
+
+// load up all available package upgrades that we have
+$gBitInstaller->loadAllUpgradeFiles();
+
+if( !empty( $_REQUEST['upgrade_packages'] )) {
+ if( !empty( $gDebug ) || !empty( $_REQUEST['debug'] ) ) {
+ $gBitInstallDb->debug = 99;
+ }
+
+ if( !empty( $_REQUEST['packages'] ) && is_array( $_REQUEST['packages'] )) {
+ // ensure all packages are in the right order before we start applying upgrades
+ uasort( $_REQUEST['packages'], 'upgrade_package_sort' );
+
+ foreach( $_REQUEST['packages'] as $package ) {
+ if( $error = $gBitInstaller->upgradePackageVersions( $package )) {
+ $errors[$package] = $error;
+ } elseif( !empty( $gBitInstaller->mPackageUpgrades[$package] )) {
+ // copy the upgrade hash to success. next round this isn't available anymore from mPackageUpgrades since the package is up to date and the upgrade files aren't loaded anymore.
+ $success[$package] = $gBitInstaller->mPackageUpgrades[$package];
+ }
+ }
+ }
+
+ if( empty( $errors )) {
+ // display success page when done
+ $app = '_done';
+ $gBitSmarty->assign( 'next_step', $step + 1 );
+ }
+}
+
+$gBitSmarty->assign( 'requirements', $gBitInstaller->calculateRequirements() );
+$gBitSmarty->assign( 'requirementsMap', $gBitInstaller->drawRequirementsGraph( FALSE, 'cmapx', ( !empty( $_REQUEST['command'] ) ? $_REQUEST['command'] : 'dot' )));
+$gBitSmarty->assign( 'packageUpgrades', $gBitInstaller->mPackageUpgrades );
+$gBitSmarty->assign( 'schema', $gBitInstaller->mPackages );
+$gBitSmarty->assign( 'success', $success );
+$gBitSmarty->assign( 'errors', $errors );
+?>