0byt3m1n1
Path:
/
data
/
applications
/
aps
/
gallery
/
2.3-2
/
standard
/
scripts
/
[
Home
]
File: upgrade-app.php
<?php require_once('app-util.php'); require_once('file-util.php'); global $root_dir; $root_dir = fetch_env_var("WEB___DIR"); ini_set('include_path', '.:'.$root_dir); require_once($root_dir.'/init.inc'); require_once($root_dir.'/upgrade/UpgradeStep.class'); require_once($root_dir.'/upgrade/StatusTemplate.class'); require_once($root_dir.'/bootstrap.inc'); require_once($root_dir.'/modules/core/classes/GalleryUtilities.class'); require_once($root_dir.'/lib/support/GallerySetupUtilities.class'); require_once($root_dir.'/modules/core/CoreModuleExtras.inc'); require_once($root_dir.'/modules/core/classes/GalleryCoreApi.class'); require_once($root_dir.'/modules/core/classes/GalleryModule.class'); require_once($root_dir.'/modules/core/module.inc'); require_once($root_dir.'/upgrade/steps/SystemChecksStep.class'); require_once($root_dir.'/upgrade/steps/UpgradeOtherModulesStep.class'); require_once($root_dir.'/upgrade/steps/CleanCacheStep.class'); function upgrade_app($from_ver, $from_rel, $config_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash){ // $upgrade_schema_files = get_upgrade_schema_files($argv[2], $argv[3]); $upgrade_schema_files = array('upgrade.sql' => 'main'); // array('upgrade-1.0-1.sql' => 'main') configure($config_files, $upgrade_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $additional_modify_hash); $ret = upgrade_gallery2(); fix_config($psa_modify_hash['@@ROOT_URL@@']); return $ret; } function upgrade_gallery2() { global $gallery; global $root_dir; GalleryDataCache::setFileCachingEnabled(false); GalleryInitFirstPass(array('noDatabase' => 1)); $gallery->guaranteeTimeLimit(300); $storage =& $gallery->getStorage(); # Remove obsoleted files $statusMonitor = null; $manifest = SystemChecksStep::CheckManifest($statusMonitor, function_exists('set_time_limit')); foreach ($manifest['shouldRemove'] as $f) { $file = $root_dir.'/'.$f; if (!is_dir($file)) { unlink ($file); } } # Core Module Upgrade $core = new CoreModule(); $versions = $core->getInstalledVersions(); /* We didn't have these values before 2.0-alpha-3 when the core version was 0.8 */ if (!isset($versions['core'])) { $versions['core'] = '0.8'; } if (!isset($versions['gallery'])) { $versions['gallery'] = '2.0-alpha-3'; } $isConfigUpgradeRequired = CoreModuleExtras::isConfigUpgradeRequired($versions['core']); $template = new StatusTemplate(); $ret = $core->installOrUpgrade(true, $template); if ($ret) { return $ret; } list ($ret, $ignored) = $core->activate(); if (!$ret) { $ret = $storage->commitTransaction(); if (!$ret && $isConfigUpgradeRequired) { $ret = CoreModuleExtras::performConfigUpgrade($versions['core']); } } if ($ret) { return $ret; } # Other Modules upgrade $modulesUpgrade = new UpgradeOtherModulesStep(); $template = new StatusTemplate(); $templateData = array(); $templateData['errors'] = array(); $modulesUpgrade->loadTemplateData($templateData); $deactivatedPlugins = $templateData['deactivatedPlugins']; foreach (array('theme' => 'MockTheme', 'module' => 'MockModule') as $type => $className) { if (empty($deactivatedPlugins[$type])) { continue; } foreach ($deactivatedPlugins[$type] as $pluginId) { $plugin = new $className($pluginId); list ($ret, $ignored) = $plugin->deactivate(false); } } $pluginIsUpgradeable = $templateData['pluginIsUpgradeable']; $_REQUEST['upgrade'] = 1; $transaction_in_progress = 0; foreach (array('theme','module') as $plugin_type) { foreach ($pluginIsUpgradeable[$plugin_type] as $plugin_id => $isUpgradable) { $isCompatible = $templateData['pluginIsCompatible'][$plugin_type][$plugin_id]; if ($isUpgradable && $isCompatible) { list ($ret, $module) = GalleryCoreApi::loadPlugin($plugin_type, $plugin_id, true); if ($ret) { # error loading continue; } $ret = $module->installOrUpgrade(); if ($ret) { # upgrade error continue; } $ret = $storage->checkPoint(); if (!$ret) { $transaction_in_progress = 1; } } } } if ($transaction_in_progress) { $ret = $storage->commitTransaction(); } # Clean Cache $cleanCache = new CleanCacheStep(); $templateData = array(); $cleanCache->loadTemplateData($templateData); return 0; } function fix_config($base_uri) { global $root_dir; $contents = read_file($root_dir.'/config.php'); if (strlen($base_uri)) { $contents = preg_replace("#setConfig\('baseUri', 'https?://.*?'#", "setConfig('baseUri', '$base_uri/main.php'", $contents); } else { $contents = preg_replace("#setConfig\('baseUri', 'https?://.*?'#", "setConfig('baseUri', ''", $contents); } write_file($root_dir.'/config.php', $contents); } ?>