當前位置: 首頁>>代碼示例>>PHP>>正文


PHP E::ModuleCache方法代碼示例

本文整理匯總了PHP中E::ModuleCache方法的典型用法代碼示例。如果您正苦於以下問題:PHP E::ModuleCache方法的具體用法?PHP E::ModuleCache怎麽用?PHP E::ModuleCache使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在E的用法示例。


在下文中一共展示了E::ModuleCache方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getPosts

 /**
  * @param int $iBlogId
  * @param int $iPageNum
  * @param int $iPageSize
  *
  * @return array
  */
 public function getPosts($iBlogId, $iPageNum, $iPageSize)
 {
     $sCacheKey = 'api_blog_' . $iBlogId;
     $oBlog = E::ModuleCache()->GetTmp($sCacheKey);
     if (!$oBlog) {
         $oBlog = E::ModuleBlog()->GetBlogById($iBlogId);
     }
     $oBlogType = $oBlog->GetBlogType();
     if ($oBlogType) {
         $bCloseBlog = !$oBlog->CanReadBy(E::User());
     } else {
         // if blog type not defined then it' open blog
         $bCloseBlog = false;
     }
     if ($bCloseBlog) {
         return array();
     }
     $aTopics = E::ModuleTopic()->GetTopicsByBlog($oBlog, $iPageNum, $iPageSize, 'newall', null);
     $aResult = array('total' => $aTopics['count'], 'list' => array());
     /** @var PluginAltoApi_ModuleApiPosts_EntityPost $oTopic */
     foreach ($aTopics['collection'] as $oTopic) {
         $aResult['list'][] = $oTopic->getApiData();
     }
     return $aResult;
 }
開發者ID:altocms,項目名稱:alto-plugin-api,代碼行數:32,代碼來源:ApiBlogs.class.php

示例2: getTopicsForSitemap

 /**
  * Список опубликованых топиков в открытых блогах (с кешированием)
  *
  * @param int $iPage
  *
  * @return array
  */
 public function getTopicsForSitemap($iPage = 0)
 {
     $sCacheKey = "sitemap_topics_{$iPage}_" . C::Get('plugin.sitemap.items_per_page');
     if (false === ($aData = E::ModuleCache()->Get($sCacheKey))) {
         $aFilter = $this->GetNamedFilter('sitemap');
         $aTopics = E::ModuleTopic()->GetTopicsByFilter($aFilter, $iPage, C::Get('plugin.sitemap.items_per_page'), array('blog' => array('owner' => array())));
         $aData = array();
         $iIndex = 0;
         $aPriority = F::Array_Str2Array(C::Get('plugin.sitemap.type.topics.priority'));
         $nPriority = sizeof($aPriority) ? reset($aPriority) : null;
         $aChangeFreq = F::Array_Str2Array(C::Get('plugin.sitemap.type.topics.changefreq'));
         $sChangeFreq = sizeof($aChangeFreq) ? reset($aChangeFreq) : null;
         /** @var ModuleTopic_EntityTopic $oTopic */
         foreach ($aTopics['collection'] as $oTopic) {
             if ($aPriority) {
                 if (isset($aPriority[$iIndex])) {
                     $nPriority = $aPriority[$iIndex];
                 }
             }
             if ($aChangeFreq) {
                 if (isset($aChangeFreq[$iIndex])) {
                     $sChangeFreq = $aChangeFreq[$iIndex];
                 }
             }
             $aData[] = E::ModuleSitemap()->GetDataForSitemapRow($oTopic->getLink(), $oTopic->getDateLastMod(), $sChangeFreq, $nPriority);
             $iIndex += 1;
         }
         // тег 'blog_update' т.к. при редактировании блога его тип может измениться
         // с открытого на закрытый или наоборот
         E::ModuleCache()->Set($aData, $sCacheKey, array('topic_new', 'topic_update', 'blog_update'), C::Get('plugin.sitemap.type.topics.cache_lifetime'));
     }
     return $aData;
 }
開發者ID:Azany,項目名稱:altocms,代碼行數:40,代碼來源:Topic.class.php

示例3: getComments

 public function getComments($iTopicId, $iPageNum, $iPageSize)
 {
     $sCacheKey = 'api_topic_' . $iTopicId;
     $oTopic = E::ModuleCache()->GetTmp($sCacheKey);
     if (!$oTopic) {
         $oTopic = E::ModuleTopic()->GetTopicById($iTopicId);
     }
     if (!$oTopic || !($oBlog = $oTopic->getBlog())) {
         return array();
     }
     $oBlogType = $oBlog->GetBlogType();
     if ($oBlogType) {
         $bCloseBlog = !$oBlog->CanReadBy(E::User());
     } else {
         // if blog type not defined then it' open blog
         $bCloseBlog = false;
     }
     if ($bCloseBlog) {
         return array();
     }
     $aComments = E::ModuleComment()->GetCommentsByTargetId($oTopic, 'topic', $iPageNum, $iPageSize);
     $aResult = array('total' => $oTopic->getCountComment(), 'list' => array());
     foreach ($aComments['comments'] as $oComment) {
         $aResult['list'][] = $oComment->getApiData();
     }
     return $aResult;
 }
開發者ID:altocms,項目名稱:alto-plugin-api,代碼行數:27,代碼來源:ApiPosts.class.php

示例4: Init

 public static function Init($sFuncStats)
 {
     if (!self::IsAvailable()) {
         return false;
     }
     $oCache = new Zend_Cache_Backend_File(array('cache_dir' => C::Get('sys.cache.dir'), 'file_name_prefix' => E::ModuleCache()->GetCachePrefix(), 'read_control_type' => 'crc32', 'hashed_directory_level' => C::Get('sys.cache.directory_level'), 'read_control' => true, 'file_locking' => true));
     return new self($oCache, $sFuncStats);
 }
開發者ID:AntiqS,項目名稱:altocms,代碼行數:8,代碼來源:CacheBackendFile.class.php

示例5: GetBlogsIdByRegexp

 /**
  * Получает список блогов по регулярному выражению (поиск)
  *
  * @param       $sRegexp
  * @param       $iPage
  * @param       $iPerPage
  * @param array $aParams
  *
  * @return array
  */
 public function GetBlogsIdByRegexp($sRegexp, $iPage, $iPerPage, $aParams = array())
 {
     $s = md5(serialize($sRegexp) . serialize($aParams));
     $sCacheKey = 'search_blogs_' . $s . '_' . $iPage . '_' . $iPerPage;
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = array('collection' => $this->oMapper->GetBlogsIdByRegexp($sRegexp, $iCount, $iPage, $iPerPage, $aParams), 'count' => $iCount);
         E::ModuleCache()->Set($data, $sCacheKey, array('blog_update', 'blog_new'), 'PT1H');
     }
     return $data;
 }
開發者ID:hard990,項目名稱:altocms,代碼行數:20,代碼來源:Search.class.php

示例6: GetBlogsForSitemap

 /**
  * Список коллективных блогов (с кешированием)
  *
  * @param integer $iPage
  *
  * @return array
  */
 public function GetBlogsForSitemap($iPage = 1)
 {
     $sCacheKey = "sitemap_blogs_{$iPage}_" . C::Get('plugin.sitemap.items_per_page');
     if (false === ($aData = E::ModuleCache()->Get($sCacheKey))) {
         $aFilter = array('include_type' => $this->GetOpenBlogTypes());
         $aBlogs = E::ModuleBlog()->GetBlogsByFilter($aFilter, $iPage, C::Get('plugin.sitemap.items_per_page'), array('owner' => array()));
         $aData = array();
         /** @var ModuleBlog_EntityBlog $oBlog */
         foreach ($aBlogs['collection'] as $oBlog) {
             // TODO временем последнего изменения блога должно быть время его обновления (публикация последнего топика),
             $aData[] = E::ModuleSitemap()->GetDataForSitemapRow($oBlog->getLink(), null, C::Get('plugin.sitemap.type.blogs.changefreq'), C::Get('plugin.sitemap.type.blogs.priority'));
             // @todo страницы блога разбиты на подстраницы. значит нужно генерировать
             // ссылки на каждую из подстраниц
             // т.е. тянуть количество топиков блога
         }
         E::ModuleCache()->Set($aData, $sCacheKey, array('blog_new'), C::Get('plugin.sitemap.type.blogs.cache_lifetime'));
     }
     return $aData;
 }
開發者ID:Azany,項目名稱:altocms,代碼行數:26,代碼來源:Blog.class.php

示例7: getInfo

 /**
  * @param int|ModuleComment_EntityComment $xComment
  *
  * @return array
  */
 public function getInfo($xComment)
 {
     /** @var ModuleComment_EntityComment $oComment */
     if (!is_object($xComment)) {
         $iCommentId = intval($xComment);
         $sCacheKey = 'api_blog_' . $iCommentId;
         $oComment = E::ModuleCache()->GetTmp($sCacheKey);
         if (!$oComment) {
             $oComment = E::ModuleComment()->GetCommentById($iCommentId);
         }
     } else {
         $oComment = $xComment;
         $sCacheKey = 'api_blog_' . $oComment->getid();
     }
     if (!$oComment) {
         return array();
     }
     E::ModuleCache()->SetTmp($oComment, $sCacheKey);
     return $oComment->getApiData();
 }
開發者ID:altocms,項目名稱:alto-plugin-api,代碼行數:25,代碼來源:ApiCommentss.class.php

示例8: getUsersForSitemap

 /**
  * Список пользователей (с кешированием)
  *
  * @param integer $iPage
  *
  * @return array
  */
 public function getUsersForSitemap($iPage)
 {
     $iPerPage = C::Get('plugin.sitemap.users_per_page');
     $sCacheKey = "sitemap_users_{$iPage}_{$iPerPage}";
     if (false === ($aData = E::ModuleCache()->Get($sCacheKey))) {
         $aFilter = array('activate' => 1);
         $aUsers = E::ModuleUser()->GetUsersByFilter($aFilter, array(), $iPage, $iPerPage);
         $aData = array();
         /** @var ModuleUser_EntityUser $oUser */
         foreach ($aUsers['collection'] as $oUser) {
             // профиль пользователя
             $aData[] = E::ModuleSitemap()->GetDataForSitemapRow($oUser->getProfileUrl(), $oUser->getDateLastMod(), C::Get('plugin.sitemap.type.users.profile.changefreq'), C::Get('plugin.sitemap.type.users.profile.priority'));
             // публикации пользователя
             $aData[] = E::ModuleSitemap()->GetDataForSitemapRow($oUser->getUserTopicsLink(), null, C::Get('plugin.sitemap.type.users.my.changefreq'), C::Get('plugin.sitemap.type.users.my.priority'));
             // комментарии пользователя
             $aData[] = E::ModuleSitemap()->GetDataForSitemapRow($oUser->getUserCommentsLink(), $oUser->getDateCommentLast(), C::Get('plugin.sitemap.type.users.comments.changefreq'), C::Get('plugin.sitemap.type.users.comments.priority'));
             E::ModuleCache()->Set($aData, $sCacheKey, array('user_new', 'user_update'), C::Get('plugin.sitemap.type.users.cache_lifetime'));
         }
     }
     return $aData;
 }
開發者ID:Azany,項目名稱:altocms,代碼行數:28,代碼來源:User.class.php

示例9: CountMessages

 /**
  * Возвращает количество сообщений для пользователя
  *
  * @param bool $sTemplate
  * @return int|mixed|string
  */
 public function CountMessages($sTemplate = false)
 {
     if (!E::IsUser()) {
         return '';
     }
     $sKeyString = 'menu_count_messages_' . E::UserId() . '_' . (string) $sTemplate;
     if (FALSE === ($sData = E::ModuleCache()->GetTmp($sKeyString))) {
         $iValue = (int) $this->CountTrack() + (int) $this->NewTalk();
         if ($sTemplate && $iValue) {
             $sData = str_replace('{{count_messages}}', $iValue, $sTemplate);
         } else {
             $sData = $iValue ? $iValue : '';
         }
         E::ModuleCache()->SetTmp($sData, $sKeyString);
     }
     return $sData;
 }
開發者ID:ZeoNish,項目名稱:altocms,代碼行數:23,代碼來源:Menu.class.php

示例10: _setCache

 /**
  * Save sitemap conten in cache
  *
  * @param $sType
  * @param $sContent
  * @param $sPeriod
  */
 protected function _setCache($sType, $sContent, $sPeriod)
 {
     E::ModuleCache()->Set($sContent, 'plugin.sitemap.' . $sType, array(), $sPeriod, ',file');
 }
開發者ID:Azany,項目名稱:altocms,代碼行數:11,代碼來源:ActionSitemap.class.php

示例11: clearSandboxCache

 public function clearSandboxCache()
 {
     E::ModuleCache()->CleanByTags(array("comment_online_update_sandbox"));
 }
開發者ID:altocms,項目名稱:alto-plugin-sandbox,代碼行數:4,代碼來源:HookSandbox.class.php

示例12: UpdateTopic

 /**
  * @param ModuleTopic_EntityTopic $oTopic
  */
 public function UpdateTopic($oTopic)
 {
     $bResult = parent::UpdateTopic($oTopic);
     E::ModuleCache()->CleanByTags(array('comment_online_update_sandbox', 'comment_online_update_topic'));
     return $bResult;
 }
開發者ID:altocms,項目名稱:alto-plugin-sandbox,代碼行數:9,代碼來源:Topic.class.php

示例13: InitLang

 /**
  * Инициализирует языковой файл
  *
  */
 protected function InitLang($sLang = null)
 {
     if (!$sLang) {
         $sLang = $this->sCurrentLang;
     }
     UserLocale::setLocale(Config::Get('lang.current'), array('locale' => Config::get('i18n.locale'), 'timezone' => Config::get('i18n.timezone')));
     if (!is_array($this->aLangMsg)) {
         $this->aLangMsg = array();
     }
     $this->aLangMsg[$sLang] = array();
     // * Если используется кеширование через memcaсhed, то сохраняем данные языкового файла в кеш
     if (Config::Get('sys.cache.type') == 'memory' && Config::Get('sys.cache.use')) {
         $sCacheKey = 'lang_' . $sLang . '_' . Config::Get('view.skin');
         if (false === ($this->aLangMsg[$sLang] = E::ModuleCache()->Get($sCacheKey))) {
             // if false then empty array
             $this->aLangMsg[$sLang] = array();
             $this->LoadLangFiles($this->sDefaultLang, $sLang);
             if ($sLang != $this->sDefaultLang) {
                 $this->LoadLangFiles($sLang, $sLang);
             }
             E::ModuleCache()->Set($this->aLangMsg[$sLang], $sCacheKey, array(), 60 * 60);
         }
     } else {
         $this->LoadLangFiles($this->sDefaultLang, $sLang);
         if ($sLang != $this->sDefaultLang) {
             $this->LoadLangFiles($sLang, $sLang);
         }
     }
     if ($sLang != Config::Get('lang.current')) {
         //Config::Set('lang.current', $sLang);
     }
     $this->LoadLangJs();
 }
開發者ID:AntiqS,項目名稱:altocms,代碼行數:37,代碼來源:Lang.class.php

示例14: increaseCountCommentNew

 /**
  * Увеличивает число новых комментов у юзеров
  *
  * @param int   $nTalkId       ID разговора
  * @param array $aExcludeId    Список ID пользователей для исключения
  *
  * @return int
  */
 public function increaseCountCommentNew($nTalkId, $aExcludeId = null)
 {
     $xResult = $this->oMapper->increaseCountCommentNew($nTalkId, $aExcludeId);
     E::ModuleCache()->Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array("update_talk_user_{$nTalkId}"));
     E::ModuleCache()->Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array("update_talk_user"));
     return $xResult;
 }
開發者ID:hard990,項目名稱:altocms,代碼行數:15,代碼來源:Talk.class.php

示例15: GetUserVoteStats

 /**
  * Получить статистику по юзерам
  * cnt_topics_p / cnt_topics_m - Количество голосований за топик +/-
  * sum_topics_p / sum_topics_m - Количество голосований за топик +/-
  * cnt_comments_p / cnt_comments_m - Количество голосований за комментарий +/-
  * sum_comments_p / sum_comments_m - Количество голосований за комментарий +/-
  * cnt_user_p / cnt_user_m - Количество голосований за пользователя +/-
  * sum_user_p / sum_user_m - Количество голосований за пользователя +/-
  *
  * @param int $iUserId ID пользователя
  *
  * @return array
  */
 public function GetUserVoteStats($iUserId)
 {
     $sCacheKey = 'user_vote_stats_' . $iUserId;
     if (false === ($aResult = E::ModuleCache()->Get($sCacheKey))) {
         $aResult = $this->oMapper->GetUserVoteStats($iUserId);
         E::ModuleCache()->Set($aResult, $sCacheKey, array("vote_update_topic_{$iUserId}", "vote_update_comment_{$iUserId}", "vote_update_user_{$iUserId}"));
     }
     return $aResult;
 }
開發者ID:AntiqS,項目名稱:altocms,代碼行數:22,代碼來源:Vote.class.php


注:本文中的E::ModuleCache方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。