コード例 #1
0
 public function Save($xData, $sName, $aTags = array(), $nTimeLife = false)
 {
     $xValue = F::Serialize($xData);
     self::$aStore[$sName] = array('tags' => (array) $aTags, 'data' => $xValue, 'time' => $nTimeLife ? time() + intval($nTimeLife) : false);
 }
コード例 #2
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;
 }
コード例 #3
0
ファイル: ViewerAsset.class.php プロジェクト: AntiqS/altocms
 /**
  * Save cache and check-file of current asset pack
  */
 protected function _saveAssets()
 {
     $sCheckFileName = $this->GetAssetsCheckName();
     F::File_PutContents($sCheckFileName, time(), LOCK_EX, true);
     $sCacheFileName = $this->GetAssetsCacheName();
     F::File_PutContents($sCacheFileName, F::Serialize($this->aAssets), LOCK_EX, true);
     F::File_Delete($sCacheFileName . '.tmp');
 }
コード例 #4
0
ファイル: Config.class.php プロジェクト: ZeoNish/altocms
 /**
  * Сохраняет в файловом кеше кастомную конфигурацию
  *
  * @param $aConfig
  * @param $bReset
  */
 protected static function _putCustomCfg($aConfig, $bReset = false)
 {
     if (is_array($aConfig) && ($sFile = self::_checkCustomCfg())) {
         $aConfig['_timestamp_'] = time();
         if (!$bReset) {
             // Объединяем текущую конфигурацию с сохраняемой
             $aOldConfig = self::_getCustomCfg();
             if ($aOldConfig) {
                 $aConfig = F::Array_Merge($aOldConfig, $aConfig);
             }
         }
         F::File_PutContents($sFile, F::Serialize($aConfig));
     }
 }
コード例 #5
0
ファイル: ViewerAsset.class.php プロジェクト: AlexSSN/altocms
 /**
  * Save cache and check-file of current asset pack
  */
 protected function _saveAssets()
 {
     F::File_PutContents($this->GetAssetsCheckName(), time());
     $sFile = $this->GetAssetsCacheName();
     F::File_PutContents($sFile, F::Serialize($this->aAssets));
     F::File_Delete($sFile . '.tmp');
 }
コード例 #6
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);
 }
コード例 #7
0
ファイル: ActionSearch.class.php プロジェクト: anp135/altocms
 /**
  * @param array $aLastSearchQueries
  */
 protected function _statSave($aLastSearchQueries)
 {
     $sData = F::Serialize($aLastSearchQueries, true);
     if (C::Get('module.search.limit.check_ip')) {
         if (E::ModuleCache()->CacheTypeAvailable('memory')) {
             $sCacheType = 'memory';
         } else {
             $sCacheType = 'file';
         }
         E::ModuleCache()->Set($sData, $this->_statKey(), array(), false, ',' . $sCacheType);
     } else {
         E::ModuleSession()->Set('last_search_queries', $sData);
     }
 }
コード例 #8
0
ファイル: Config.class.php プロジェクト: anp135/altocms
 /**
  * Сохраняет в файловом кеше кастомную конфигурацию
  *
  * @param array $aConfig
  * @param bool  $bReset
  */
 protected static function _putFileCfg($aConfig, $bReset = false)
 {
     if (is_array($aConfig) && ($sFile = self::_checkFileCfg())) {
         if (!$bReset) {
             // Объединяем текущую конфигурацию с сохраняемой
             $aOldConfig = self::_getFileCfg();
             if ($aOldConfig) {
                 $aData = new DataArray($aOldConfig);
                 foreach ($aConfig as $sKey => $xVal) {
                     $aData[$sKey] = $xVal;
                 }
                 $aConfig = $aData->getArrayCopy();
             }
         }
         $aConfig['_timestamp_'] = time();
         $aConfig['_alto_hash_'] = self::_getHash();
         F::File_PutContents($sFile, F::Serialize($aConfig), LOCK_EX);
     }
 }