Esempio n. 1
0
 /**
  * Проверяет на сервере актуальность текущей системы.
  * $noerror - не позволяет вывести исключение перед версткой
  * @return  bool|array $result массив с описанием последней версии и ее номером.
  */
 public static function checkUpdata($noCache = false, $noerror = false)
 {
     $timeLastUpdata = MG::getSetting('timeLastUpdata');
     if (time() < $timeLastUpdata + 6 * 60 * 24 && !$noCache) {
         // интервал проверки обновления 2 с половиной часа.
         $res = MG::getSetting('currentVersion');
     } else {
         $row = DB::query('SELECT COUNT(`id`) as `count` FROM `' . PREFIX . 'product`');
         $res = DB::fetchArray($row);
         $count = $res['count'] ? $res['count'] : 0;
         $row2 = DB::query('SELECT SUM(  `summ` ) AS  `summ` FROM  `' . PREFIX . 'order` 
     WHERE  `status_id` =2 OR `status_id` =5');
         $res2 = DB::fetchArray($row2);
         $summ = $res2['summ'] ? $res2['summ'] : 0;
         $post = 'version=' . VER . '&sName=' . $_SERVER['SERVER_NAME'] . '&sIP=' . ($_SERVER['SERVER_ADDR'] == "::1" ? '127.0.0.1' : $_SERVER['SERVER_ADDR']) . '&sKey=' . MG::getSetting('licenceKey') . '&sSiteName=' . MG::getSetting('sitename') . '&sAdmin=' . MG::getSetting('adminEmail') . '&timeStartEngine=' . MG::getSetting('timeStartEngine') . '&timeFirstUpdate=' . MG::getSetting('timeFirstUpdate') . '&sPhone=' . MG::getSetting('shopPhone') . '&sAddress=' . MG::getSetting('shopAddress') . '&catalog=' . $count . '&orders=' . $summ;
         $res = self::sendCurl(self::$_updataServer . '/updataserver', $post);
         DB::query("\r\n        UPDATE `" . PREFIX . "setting`\r\n          SET `value`=" . DB::quote($res) . "\r\n        WHERE `option`='currentVersion'\r\n      ");
         DB::query("\r\n      UPDATE `" . PREFIX . "setting`\r\n        SET `value`=" . DB::quote(time()) . "\r\n      WHERE `option`='timeLastUpdata'\r\n      ");
         PM::checkPluginsUpdate();
     }
     // если curl запрос вернул false, значит он не удался.
     if (!$res && !$noerror) {
         echo "<div style='color:red; margin:10px;'>Невозможно выполнить CURL запрос, для проверки версии системы!</div>";
     }
     $data = json_decode($res, true);
     if (!empty($data['dateActivateKey'])) {
         MG::setOption(array('option' => 'dateActivateKey ', 'value' => $data['dateActivateKey']));
     }
     if ($data['last']) {
         $result['msg'] = '
   <ul class="system-version-list">
     <li> <b>Ближайшая версия для обновления: </b><span id="lVer">' . $data['last'] . '</span></li>
     <li> <b>Последняя версия системы: </b><span id="fVer">' . $data['final'] . '</span></li>
     <li> <b>Описание: </b>' . $data['disc'] . '</li>       
   </ul>';
         $result['lastVersion'] = $data['last'];
         $args = func_get_args();
         return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
     }
     $args = func_get_args();
     return MG::createHook(__CLASS__ . "_" . __FUNCTION__, false, $args);
 }
Esempio n. 2
0
 public function checkPluginsUpdate()
 {
     $this->messageSucces = $this->lang['ACT_PLUGIN_CHECK_UPD_SUCCESS'];
     $this->messageError = $this->lang['ACT_PLUGIN_CHECK_UPD_ERR'];
     if (!MG::libExists()) {
         return PM::checkPluginsUpdate();
     } else {
         $this->messageError = $this->lang['ACT_PLUGIN_CURL_NOT_INCLUDE'];
         return false;
     }
 }