/** * Проверяет на сервере актуальность текущей системы. * $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); }
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; } }