コード例 #1
0
 public function Load($sName, $bNotTestCacheValidity = false)
 {
     if (isset(self::$aStore[$sName])) {
         $aData = self::$aStore[$sName];
         if (is_array($aData) && array_key_exists('data', $aData)) {
             return F::Unserialize($aData['data'], false);
         }
     }
     return false;
 }
コード例 #2
0
ファイル: ViewerAsset.class.php プロジェクト: AntiqS/altocms
 /**
  * Checks cache for current asset pack
  * If cache is present then returns one
  *
  * @return int|array
  */
 protected function _checkAssets()
 {
     $xResult = 0;
     $sFile = $this->GetAssetsCacheName();
     $sTmpFile = $sFile . '.tmp';
     if (is_file($sTmpFile)) {
         // tmp file cannot live more than 1 minutes
         $nTime = filectime($sTmpFile);
         if (!$nTime) {
             $nTime = F::File_GetContents($sTmpFile);
         }
         if (time() < $nTime + self::TMP_TIME) {
             $xResult = 1;
         }
     } elseif (is_file($sFile)) {
         if ($xData = F::File_GetContents($sFile)) {
             $xResult = F::Unserialize($xData);
         }
     }
     return $xResult;
 }
コード例 #3
0
ファイル: ActionSearch.class.php プロジェクト: Azany/altocms
 protected function _checkLimits()
 {
     $iLimitQueries = intval(C::Get('module.search.limit.queries'));
     $iLimitPeriod = F::ToSeconds(C::Get('module.search.limit.period'));
     $iLimitInterval = F::ToSeconds(C::Get('module.search.limit.interval'));
     if (!F::GetRequest('q') || !$iLimitQueries || !$iLimitPeriod) {
         return true;
     }
     $sLastSearchQueries = E::ModuleSession()->Get('last_search_queries');
     if (empty($sLastSearchQueries)) {
         $aLastSearchQueries = array();
     } else {
         $aLastSearchQueries = F::Unserialize($sLastSearchQueries);
     }
     $iCount = 0;
     if (!empty($aLastSearchQueries)) {
         $iTimeLimit = time() - $iLimitPeriod;
         //echo date('H:i:s', time()), '--', date('H:i:s', $iTimeLimit), '<br>';
         foreach ($aLastSearchQueries as $iIndex => $aQuery) {
             //echo $iIndex, ' - ', date('H:i:s', $aQuery['time']);
             if ($aQuery['time'] >= $iTimeLimit) {
                 $iCount += 1;
                 //echo ' * ';
             }
             //echo '<br>';
         }
         $aLastQuery = end($aLastSearchQueries);
     } else {
         $aLastQuery = null;
     }
     if (count($aLastSearchQueries) > $iLimitQueries) {
         $aLastSearchQueries = array_slice($aLastSearchQueries, -$iLimitQueries);
     }
     $aLastSearchQueries[] = array('time' => time(), 'query' => F::GetRequest('q'));
     E::ModuleSession()->Set('last_search_queries', F::Serialize($aLastSearchQueries));
     //die('iCount:' . $iCount);
     if ($iCount > $iLimitQueries) {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('search_err_frequency', array('num' => $iLimitQueries, 'sec' => $iLimitPeriod)));
         return false;
     }
     if (!empty($aLastQuery['time']) && $iLimitInterval && $aLastQuery['time'] > time() - $iLimitInterval) {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('search_err_interval', array('sec' => $iLimitInterval)));
         return false;
     }
     return true;
 }
コード例 #4
0
ファイル: Config.class.php プロジェクト: ZeoNish/altocms
 /**
  * Читает из файлового кеша кастомную конфигурацию
  *
  * @param string $sKeyPrefix
  *
  * @return  array
  */
 protected static function _getCustomCfg($sKeyPrefix = null)
 {
     if (($sFile = self::_checkCustomCfg()) && ($sData = F::File_GetContents($sFile))) {
         $aConfig = F::Unserialize($sData);
         if (is_array($aConfig)) {
             return $aConfig;
         }
     }
     $aConfig = array();
     return $aConfig;
 }
コード例 #5
0
ファイル: Router.class.php プロジェクト: hard990/altocms
 /**
  * Запускает весь процесс :)
  *
  */
 public function Exec()
 {
     $this->ParseUrl();
     $this->DefineActionClass();
     // Для возможности ДО инициализации модулей определить какой action/event запрошен
     $this->oEngine = E::getInstance();
     $this->oEngine->Init();
     // Подгружаем предыдущий URL, если он был
     $sData = E::ModuleSession()->GetCookie(static::BACKWARD_COOKIE);
     if ($sData) {
         $aData = F::Unserialize($sData);
         if (is_array($aData)) {
             $this->aBackwardUrl = $aData;
         }
     }
     // И сохраняем текущий, если это не ajax-запрос
     if (!F::AjaxRequest()) {
         E::ModuleSession()->SetCookie(static::BACKWARD_COOKIE, F::Serialize($this->aCurrentUrl, true));
     }
     $this->ExecAction();
     $this->Shutdown(false);
 }
コード例 #6
0
ファイル: ActionSearch.class.php プロジェクト: anp135/altocms
 /**
  * @return array
  */
 protected function _statLoad()
 {
     if (C::Get('module.search.limit.check_ip')) {
         if (E::ModuleCache()->CacheTypeAvailable('memory')) {
             $sCacheType = 'memory';
         } else {
             $sCacheType = 'file';
         }
         $sData = E::ModuleCache()->Get($this->_statKey(), $sCacheType . ',');
     } else {
         $sData = E::ModuleSession()->Get('last_search_queries');
     }
     if (false === $sData) {
         $aLastSearchQueries = array();
     } else {
         $aLastSearchQueries = F::Unserialize($sData, array());
     }
     return $aLastSearchQueries;
 }
コード例 #7
0
ファイル: Config.class.php プロジェクト: anp135/altocms
 /**
  * Читает из файлового кеша кастомную конфигурацию
  *
  * @return array
  */
 protected static function _getFileCfg()
 {
     if (($sFile = self::_checkFileCfg()) && ($sData = F::File_GetContents($sFile))) {
         $aConfig = F::Unserialize($sData);
         if (is_array($aConfig)) {
             if (isset($aConfig['_alto_hash_']) && $aConfig['_alto_hash_'] == self::_getHash()) {
                 return $aConfig;
             }
         }
     }
     return array();
 }