示例#1
0
 /**
  * Checks latest version data
  *
  * @return stdClass {version, date, }
  */
 public static function check($force = false)
 {
     $upgrade = Wpjb_Project::getInstance()->conf("upgrade");
     if (time() - $upgrade->lastcheck < self::CHECK && !$force) {
         return $upgrade;
     }
     $id = Wpjb_Utility_Seal::id();
     $ck = Wpjb_Utility_Seal::checksum();
     $version = Wpjb_Project::getInstance()->conf("version");
     $url = self::URL . "release/id/" . $id . "/checksum/" . $ck;
     if (!function_exists("curl_init")) {
         return new stdClass();
     }
     $json = json_decode(self::_download($url));
     if (isset($json->error)) {
         // fail silently
         return new stdClass();
     }
     if (!is_array($json)) {
         // fail silently
         return new stdClass();
     }
     $available = array();
     $key = null;
     foreach ($json as $k => $ver) {
         if (version_compare($ver->version, $version) == 1) {
             $version = $ver->version;
             $key = $k;
         }
     }
     if ($key !== null) {
         $available = $json[$key];
     }
     $upgrade = new stdClass();
     $upgrade->lastcheck = time();
     $upgrade->available = $available;
     $instance = Wpjb_Project::getInstance();
     $instance->setConfigParam("upgrade", $upgrade);
     $instance->saveConfig();
     return $upgrade;
 }