update.class.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. class update {
  3. var $modules;
  4. var $update_url;
  5. var $http;
  6. function __construct() {
  7. $this->db = pc_base::load_model('admin_model');
  8. $this->update_url = 'http://update.v9.phpcms.cn/index.php';
  9. $this->http = pc_base::load_sys_class('http','',1);
  10. $this->uuid = $this->check_uuid();
  11. }
  12. function check(){
  13. $url = $this->url('check');
  14. if(!$this->http->get($url)) return false;
  15. return $this->http->get_data();
  16. }
  17. function url($action = 'check') {
  18. $modules = '';
  19. $site = getcache('sitelist','commons');
  20. $sitename = $site['1']['name'];
  21. $siturl = $site['1']['domain'];
  22. foreach ($site as $list) $sitelist .= $list['domain'].',';
  23. $pars = array(
  24. 'action'=>$action,
  25. 'phpcms_username'=>'',
  26. 'sitename'=>$sitename,
  27. 'siteurl'=>$siturl,
  28. 'charset'=>CHARSET,
  29. 'version'=>PC_VERSION,
  30. 'release'=>PC_RELEASE,
  31. 'os'=>PHP_OS,
  32. 'php'=>phpversion(),
  33. 'mysql'=>$this->db->version(),
  34. 'browser'=>urlencode($_SERVER['HTTP_USER_AGENT']),
  35. 'username'=>urlencode(param::get_cookie('admin_username')),
  36. 'email'=> urlencode(param::get_cookie('admin_email')),
  37. 'modules'=>ROUTE_M,
  38. 'sitelist'=>urlencode($sitelist),
  39. 'uuid'=>urlencode($this->uuid),
  40. );
  41. $data = http_build_query($pars);
  42. $verify = md5($this->uuid);
  43. if($s = $this->module()) {
  44. $p = '&p='.$s;
  45. }
  46. return $this->update_url.'?'.$data.'&verify='.$verify.$p;
  47. }
  48. function notice() {
  49. return $this->url('notice');
  50. }
  51. function module($type = '') {
  52. $string = '';
  53. $db = pc_base::load_model('pay_payment_model');
  54. $result = $db->select('','pay_code');
  55. if(is_array($result) && count($result) > 0) {
  56. foreach($result as $v=>$r) {
  57. $string .= strtolower($r['pay_code']).'|';
  58. }
  59. return base64_encode($string);
  60. } else {
  61. return $string;
  62. }
  63. }
  64. function check_uuid(){
  65. $site_db = pc_base::load_model('site_model');
  66. $info = $site_db->get_one(array('siteid'=>1),'uuid');
  67. if($info['uuid']) {
  68. return $info['uuid'];
  69. } else {;
  70. $uuid = $this->uuid($site_db);
  71. if($site_db->update(array('uuid'=>$uuid),array('siteid'=>1))) return $uuid;
  72. }
  73. }
  74. function uuid(&$db){
  75. $r = $db->get_one('',"UUID() as uuid");
  76. return $r['uuid'];
  77. }
  78. }
  79. ?>