本文整理汇总了PHP中E::ModuleBlog方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleBlog方法的具体用法?PHP E::ModuleBlog怎么用?PHP E::ModuleBlog使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleBlog方法的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;
}
示例2: getBlogType
/**
* Возвращает сущность типа блога
*
* @return ModuleBlog_EntityBlogType|null
*/
public function getBlogType()
{
$oBlogType = $this->getProp('blog_type_obj');
if (!$oBlogType && ($sType = $this->getType())) {
$oBlogType = E::ModuleBlog()->GetBlogTypeByCode($sType);
}
return $oBlogType;
}
示例3: Exec
/**
* Запуск обработки
*/
public function Exec()
{
// * Получаем список блогов
if ($aResult = E::ModuleBlog()->GetBlogsRating(1, Config::Get('widgets.blogs.params.limit'))) {
$aVars = array('aBlogs' => $aResult['collection']);
// * Формируем результат в виде шаблона и возвращаем
$sTextResult = E::ModuleViewer()->FetchWidget('blogs_top.tpl', $aVars);
E::ModuleViewer()->Assign('sBlogsTop', $sTextResult);
}
}
示例4: GetNamedFilter
/**
* Фильтр для выборки опубликованых топиков в открытых блогах
*
* @param string $sFilterName
* @param array $aParams
*
* @return array
*/
public function GetNamedFilter($sFilterName, $aParams = array())
{
if ($sFilterName == 'sitemap') {
$aFilter = array('blog_type' => E::ModuleBlog()->GetOpenBlogTypes(), 'topic_publish' => 1, 'topic_index_ignore' => 0);
$aFilter['order'][] = 't.topic_date_show DESC';
$aFilter['order'][] = 't.topic_id DESC';
} else {
$aFilter = parent::GetNamedFilter($sFilterName, $aParams);
}
return $aFilter;
}
示例5: Exec
public function Exec()
{
// For authorized users only
if ($oUserCurrent = E::ModuleUser()->GetUserCurrent()) {
$aUserSubscribes = E::ModuleUserfeed()->GetUserSubscribes($oUserCurrent->getId());
// Get ID list of blogs to which you subscribe
$aBlogsId = E::ModuleBlog()->GetBlogUsersByUserId($oUserCurrent->getId(), array(ModuleBlog::BLOG_USER_ROLE_USER, ModuleBlog::BLOG_USER_ROLE_MODERATOR, ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR), true);
// Get ID list of blogs where the user is the owner
$aBlogsOwnerId = E::ModuleBlog()->GetBlogsByOwnerId($oUserCurrent->getId(), true);
$aBlogsId = array_merge($aBlogsId, $aBlogsOwnerId);
$aBlogs = E::ModuleBlog()->GetBlogsAdditionalData($aBlogsId, array('owner' => array()), array('blog_title' => 'asc'));
/**
* Выводим в шаблон
*/
E::ModuleViewer()->Assign('aUserfeedSubscribedBlogs', $aUserSubscribes['blogs']);
E::ModuleViewer()->Assign('aUserfeedBlogs', $aBlogs);
}
}
示例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;
}
示例7: EventComments
/**
* Выводим список комментариев
*
*/
protected function EventComments()
{
// * Передан ли номер страницы
$iPage = $this->GetEventMatch(2) ? $this->GetEventMatch(2) : 1;
// * Исключаем из выборки идентификаторы закрытых блогов (target_parent_id)
$aCloseBlogs = $this->oUserCurrent ? E::ModuleBlog()->GetInaccessibleBlogsByUser($this->oUserCurrent) : E::ModuleBlog()->GetInaccessibleBlogsByUser();
// * Получаем список комментов
$aResult = E::ModuleComment()->GetCommentsAll('topic', $iPage, Config::Get('module.comment.per_page'), array(), $aCloseBlogs);
$aComments = $aResult['collection'];
// * Формируем постраничность
$aPaging = E::ModuleViewer()->MakePaging($aResult['count'], $iPage, Config::Get('module.comment.per_page'), Config::Get('pagination.pages.count'), R::GetPath('comments'));
// * Загружаем переменные в шаблон
E::ModuleViewer()->Assign('aPaging', $aPaging);
E::ModuleViewer()->Assign('aComments', $aComments);
// * Устанавливаем title страницы
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('comments_all'));
E::ModuleViewer()->SetHtmlRssAlternate(R::GetPath('rss') . 'allcomments/', E::ModuleLang()->Get('comments_all'));
// * Устанавливаем шаблон вывода
$this->SetTemplateAction('index');
}
示例8: Exec
/**
* Запуск обработки
*/
public function Exec()
{
/**
* Пользователь авторизован?
*/
if ($oUserCurrent = E::ModuleUser()->GetUserCurrent()) {
$aUserSubscribes = E::ModuleUserfeed()->GetUserSubscribes($oUserCurrent->getId());
/**
* Получаем список ID блогов, в которых состоит пользователь
*/
$aBlogsId = E::ModuleBlog()->GetBlogUsersByUserId($oUserCurrent->getId(), array(ModuleBlog::BLOG_USER_ROLE_USER, ModuleBlog::BLOG_USER_ROLE_MODERATOR, ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR), true);
/**
* Получаем список ID блогов, которые создал пользователь
*/
$aBlogsOwnerId = E::ModuleBlog()->GetBlogsByOwnerId($oUserCurrent->getId(), true);
$aBlogsId = array_merge($aBlogsId, $aBlogsOwnerId);
$aBlogs = E::ModuleBlog()->GetBlogsAdditionalData($aBlogsId, array('owner' => array()), array('blog_title' => 'asc'));
/**
* Выводим в шаблон
*/
E::ModuleViewer()->Assign('aUserfeedSubscribedBlogs', $aUserSubscribes['blogs']);
E::ModuleViewer()->Assign('aUserfeedBlogs', $aBlogs);
}
}
示例9: _getSitemapCount
/**
* Return total number of pages of the sitemap type
*
* @param string $sType
*
* @return int
*/
protected function _getSitemapCount($sType)
{
$iPerPage = C::Get('plugin.sitemap.items_per_page');
switch ($sType) {
case 'general':
$iCount = 1;
break;
case 'topics':
$iCount = (int) ceil(E::ModuleTopic()->GetTopicsCountForSitemap() / $iPerPage);
break;
case 'blogs':
$iCount = (int) ceil(E::ModuleBlog()->GetBlogsCountForSitemap() / $iPerPage);
break;
case 'users':
$iCount = (int) ceil(E::ModuleUser()->GetUsersCountForSitemap() / C::Get('plugin.sitemap.users_per_page'));
break;
default:
$iCount = 1;
}
return $iCount;
}
示例10: GetDataFor
/**
* Get sitemap data for the sitemap data and page
*
* @param string $sType
* @param int $iPage
*
* @return array
*/
public function GetDataFor($sType, $iPage)
{
if ($iPage < 1) {
$iPage = 1;
}
switch ($sType) {
case 'general':
$aData = $this->getDataForGeneral();
break;
case 'topics':
$aData = E::ModuleTopic()->GetTopicsForSitemap($iPage);
break;
case 'blogs':
$aData = E::ModuleBlog()->GetBlogsForSitemap($iPage);
break;
case 'users':
$aData = $this->PluginSitemap_User_GetUsersForSitemap($iPage);
break;
default:
$aData = array();
}
return $aData;
}
示例11: ApiBlogIdInfo
/**
* Получение сведений о блоге
* @param string $aParams Идентификатор пользователя
* @return bool|array
*/
public function ApiBlogIdInfo($aParams)
{
/** @var ModuleBlog_EntityBlog $oBlog */
if (!($oBlog = E::ModuleBlog()->GetBlogById($aParams['uid']))) {
return FALSE;
}
return $this->_PrepareResult(array('oBlog' => $oBlog), array('id' => $oBlog->getId(), 'title' => $oBlog->getTitle(), 'description' => $oBlog->getDescription(), 'logo' => $oBlog->getAvatarUrl(), 'date' => $oBlog->getDateAdd(), 'users' => $oBlog->getCountUser(), 'topics' => $oBlog->getCountTopic(), 'rating' => $oBlog->getRating(), 'votes' => $oBlog->getCountVote(), 'link' => $oBlog->getUrl(), 'rss' => C::Get('path.root.web') . "rss/blog/{$oBlog->getUrl()}/"));
}
示例12: EventBlogs
/**
* Поиск блогов
*/
public function EventBlogs()
{
$this->aReq = $this->_prepareRequest('blogs');
$this->OutLog();
if ($this->aReq['regexp']) {
$aResult = E::ModuleSearch()->GetBlogsIdByRegexp($this->aReq['regexp'], $this->aReq['iPage'], $this->nItemsPerPage, $this->aReq['params']);
$aBlogs = array();
if ($aResult['count'] > 0) {
// * Получаем объекты по списку идентификаторов
$aBlogs = E::ModuleBlog()->GetBlogsAdditionalData($aResult['collection']);
//подсветка поисковой фразы
foreach ($aBlogs as $oBlog) {
if ($this->nModeOutList != 'snippet') {
$oBlog->setDescription($this->_textHighlite($oBlog->getDescription()));
} else {
$oBlog->setDescription($this->_makeSnippet($oBlog->getDescription()));
}
}
}
} else {
$aResult['count'] = 0;
$aBlogs = array();
}
// * Логгируем результаты, если требуется
if ($this->bLogEnable) {
$this->oLogs->RecordAdd('search', array('q' => $this->aReq['q'], 'result' => 'blogs:' . $aResult['count']));
$this->oLogs->RecordEnd('search', true);
}
$aPaging = E::ModuleViewer()->MakePaging($aResult['count'], $this->aReq['iPage'], $this->nItemsPerPage, 4, Config::Get('path.root.url') . '/search/blogs', array('q' => $this->aReq['q']));
$this->SetTemplateAction('results');
// * Отправляем данные в шаблон
E::ModuleViewer()->AddHtmlTitle($this->aReq['q']);
E::ModuleViewer()->Assign('bIsResults', $aResult['count']);
E::ModuleViewer()->Assign('aRes', $aResult);
E::ModuleViewer()->Assign('aBlogs', $aBlogs);
E::ModuleViewer()->Assign('aPaging', $aPaging);
}
示例13: getBlog
/**
* Возвращает личный блог пользователя
*
* @return ModuleBlog_EntityBlog|null
*/
public function getBlog()
{
if (!$this->getProp('blog')) {
$this->_aData['blog'] = E::ModuleBlog()->GetPersonalBlogByUserId($this->getId());
}
return $this->getProp('blog');
}
示例14: DeleteUsers
/**
* Удаление пользователей
*
* @param $aUsersId
*/
public function DeleteUsers($aUsersId)
{
if (!is_array($aUsersId)) {
$aUsersId = array(intval($aUsersId));
}
E::ModuleBlog()->DeleteBlogsByUsers($aUsersId);
E::ModuleTopic()->DeleteTopicsByUsersId($aUsersId);
if ($bResult = $this->oMapper->DeleteUser($aUsersId)) {
$this->DeleteUserFieldValues($aUsersId, $aType = null);
$aUsers = $this->GetUsersByArrayId($aUsersId);
foreach ($aUsers as $oUser) {
$this->DeleteAvatar($oUser);
$this->DeletePhoto($oUser);
}
}
foreach ($aUsersId as $nUserId) {
E::ModuleCache()->CleanByTags(array("topic_update_user_{$nUserId}"));
E::ModuleCache()->Delete("user_{$nUserId}");
}
return $bResult;
}
示例15: MoveTopicsByFilter
/**
* Перемещает топики в другой блог
*
* @param $nBlogIdNew
* @param $aFilter
*
* @return bool
*/
public function MoveTopicsByFilter($nBlogIdNew, $aFilter)
{
if (!isset($aFilter['blog_id']) && !isset($aFilter['topic_id'])) {
return false;
}
if (isset($aFilter['blog_id']) && !is_array($aFilter['blog_id'])) {
$aFilter['blog_id'] = array($aFilter['blog_id']);
}
if (isset($aFilter['topic_id']) && !is_array($aFilter['topic_id'])) {
$aFilter['topic_id'] = array($aFilter['topic_id']);
}
$oBlogType = E::ModuleBlog()->GetBlogTypeById($nBlogIdNew);
if ($oBlogType) {
$nIndexIgnore = $oBlogType->getIndexIgnore();
} else {
$nIndexIgnore = 0;
}
$sql = "UPDATE ?_topic\n SET\n blog_id = ?d,\n topic_index_ignore = CASE WHEN topic_index_ignore = ?d THEN topic_index_ignore ELSE ?d END\n WHERE\n 1 = 1\n { AND (blog_id IN (?a)) }\n { AND (topic_id IN(?a)) }\n ";
$bResult = $this->oDb->query($sql, $nBlogIdNew, ModuleTopic_EntityTopic::INDEX_IGNORE_LOCK, $nIndexIgnore, isset($aFilter['blog_id']) ? $aFilter['blog_id'] : DBSIMPLE_SKIP, isset($aFilter['topic_id']) ? $aFilter['topic_id'] : DBSIMPLE_SKIP);
return $bResult !== false;
}