/** * Try to get platform hash. * If it's upgrade it try to read database (searches old config/preference tables) * If this fails it returns 'OXP_upgrade-unknown_platform_hash' * If it's fresh install then it checks if there is already generated * platformHash by previous call of this method, or use suggested one, or generate new one. * New platform hash is stored as already generated. * * @param string $suggestedPlatformHash * @param boolean $forceCheck should check be done once again (or we can use cached results) * @return string platform Hash */ public function getPlatformHash($suggestedPlatformHash = null, $forceCheck = false) { if (!$forceCheck && isset(self::$foundPlatformHash)) { return self::$foundPlatformHash; } // is it upgrade? $oUpgrader = new OA_Upgrade(); if (!$oUpgrader->isFreshInstall()) { // YES: // prepare database connection data $oUpgrader->canUpgradeOrInstall(); $oUpgrader->initDatabaseConnection(); // try read platform hash from database (3 possible locations) $platformHash = $this->readPlatformHashFromDatabase(); // if can't find platformHash - set 'OXP_upgrade-unknown_platform_hash' $platformHash = $platformHash ? $platformHash : self::$UNKNOWN_PLATFORM_HASH; } else { // NO: // is already set generatedPlatformHash if (isset(self::$generatedPlatformHash)) { $platformHash = self::$generatedPlatformHash; } else { // use sugested or generate new one (and remember) if (isset($suggestedPlatformHash)) { $platformHash = $suggestedPlatformHash; } else { $platformHash = OA_Dal_ApplicationVariables::generatePlatformHash(); } // remember genereted platform hash self::$generatedPlatformHash = $platformHash; } } self::$foundPlatformHash = $platformHash; return $platformHash; }