本文整理汇总了PHP中E::ModuleSitemap方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleSitemap方法的具体用法?PHP E::ModuleSitemap怎么用?PHP E::ModuleSitemap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleSitemap方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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;
}
示例2: 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;
}
示例3: 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;
}
示例4: _getSitemapLastmod
protected function _getSitemapLastmod($sType, $iPage)
{
if ($iPage < 1) {
$iPage = 1;
}
return E::ModuleSitemap()->GetLastMod($sType, $iPage);
}