Example #1
0
 /**
  * Получить список просмотром/чтения топиков по списку айдишников, но используя единый кеш
  *
  * @param array $aTopicId Список ID топиков
  * @param int $sUserId ID пользователя
  * @return array
  */
 public function GetTopicsReadByArraySolid($aTopicId, $sUserId)
 {
     if (!is_array($aTopicId)) {
         $aTopicId = array($aTopicId);
     }
     $aTopicId = array_unique($aTopicId);
     $aTopicsRead = array();
     $s = join(',', $aTopicId);
     if (false === ($data = $this->Cache_Get("topic_read_{$sUserId}_id_{$s}"))) {
         $data = $this->oMapperTopic->GetTopicsReadByArray($aTopicId, $sUserId);
         foreach ($data as $oTopicRead) {
             $aTopicsRead[$oTopicRead->getTopicId()] = $oTopicRead;
         }
         $this->Cache_Set($aTopicsRead, "topic_read_{$sUserId}_id_{$s}", array("topic_read_user_{$sUserId}"), 60 * 60 * 24 * 1);
         return $aTopicsRead;
     }
     return $data;
 }
Example #2
0
 /**
  * Получить список просмотров/чтения топиков по списку ID, но используя единый кеш
  *
  * @param array $aTopicsId    - Список ID топиков
  * @param int   $nUserId      - ID пользователя
  *
  * @return array
  */
 public function GetTopicsReadByArraySolid($aTopicsId, $nUserId)
 {
     if (!is_array($aTopicsId)) {
         $aTopicsId = array($aTopicsId);
     }
     $aTopicsId = array_unique($aTopicsId);
     $aTopicsRead = array();
     $sCacheKey = "topic_read_{$nUserId}_id_" . join(',', $aTopicsId);
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = $this->oMapper->GetTopicsReadByArray($aTopicsId, $nUserId);
         foreach ($data as $oTopicRead) {
             $aTopicsRead[$oTopicRead->getTopicId()] = $oTopicRead;
         }
         E::ModuleCache()->Set($aTopicsRead, $sCacheKey, array("topic_read_user_{$nUserId}"), 'P1D');
         return $aTopicsRead;
     }
     return $data;
 }