private function processingUpgradeList() { $upgrades = Ibos::app()->setting->get("setting/upgrade"); if (!$upgrades) { return array("isHaveUpgrade" => false, "msg" => Ibos::lang("Upgrade latest version")); } else { $upgradeStep = array("cachekey" => "upgrade_step", "cachevalue" => serialize(array("curversion" => UpgradeUtil::getVersionPath(), "currelease" => VERSION_DATE)), "dateline" => TIMESTAMP); Cache::model()->add($upgradeStep, false, true); $upgradeRow = array(); $charset = str_replace("-", "", strtoupper(CHARSET)); $dbVersion = Ibos::app()->db->getServerVersion(); $locale = ""; if ($charset == "BIG5") { $locale = "TC"; } elseif ($charset == "GBK") { $locale = "SC"; } elseif ($charset == "UTF8") { $language = Ibos::app()->getLanguage(); if ($language == "zh_cn") { $locale = "SC"; } elseif ($language == "zh_tw") { $locale = "TC"; } } foreach ($upgrades as $type => $upgrade) { $unUpgrade = 0; if (0 < version_compare($upgrade["phpversion"], PHP_VERSION) || 0 < version_compare($upgrade["mysqlversion"], $dbVersion)) { $unUpgrade = 1; } $baseDesc = "IBOS " . $upgrade["latestversion"] . "_" . $locale . "_" . $charset . " [" . $upgrade["latestrelease"] . "]"; if ($unUpgrade) { $this->render("upgradeError", array("msg" => Ibos::lang("Upgrade require config", "", array("phpVersion" => PHP_VERSION, "dbVersion" => $dbVersion)))); exit; } else { $params = array("op" => $type, "version" => $upgrade["latestversion"], "locale" => $locale, "charset" => $charset, "release" => $upgrade["latestrelease"]); $linkUrl = $this->createUrl("upgrade/index", $params); $upgradeRow[] = array("desc" => $baseDesc, "upgrade" => true, "link" => $linkUrl, "upgradeDesc" => $upgrade["upgradeDesc"], "official" => $upgrade["official"]); } } return array("isHaveUpgrade" => true, "list" => $upgradeRow); } }