本文整理汇总了PHP中E::ModuleTopic方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleTopic方法的具体用法?PHP E::ModuleTopic怎么用?PHP E::ModuleTopic使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleTopic方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: 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;
}
示例3: EventShutdown
public function EventShutdown()
{
parent::EventShutdown();
if ($this->oCurrentBlog) {
$iCountSandboxBlogNew = E::ModuleTopic()->GetCountTopicsSandboxNew(array('blog_id' => $this->oCurrentBlog->getId()));
E::ModuleViewer()->Assign('iCountSandboxBlogNew', $iCountSandboxBlogNew);
}
}
示例4: GetUserProfileStats
public function GetUserProfileStats($xUser)
{
$aUserPublicationStats = parent::GetUserProfileStats($xUser);
$iCountTopicsSandbox = E::ModuleTopic()->GetCountTopicsSandboxByUser($xUser);
$aUserPublicationStats['count_sandbox'] = $iCountTopicsSandbox;
$aUserPublicationStats['count_created'] += $iCountTopicsSandbox;
return $aUserPublicationStats;
}
示例5: getFields
/**
* Get all additional fields of the content type
*
* @return ModuleTopic_EntityField[]
*/
public function getFields()
{
if (is_null($this->aFields)) {
$aFilter = array();
$aFilter['content_id'] = $this->getContentId();
$this->aFields = E::ModuleTopic()->GetContentFields($aFilter);
}
return $this->aFields;
}
示例6: EventDownloadFile
public function EventDownloadFile()
{
$this->SetTemplate(false);
$sTopicId = $this->GetParam(0);
$sFieldId = $this->GetParam(1);
E::ModuleSecurity()->ValidateSendForm();
if (!($oTopic = E::ModuleTopic()->GetTopicById($sTopicId))) {
return parent::EventNotFound();
}
if (!($this->oType = E::ModuleTopic()->GetContentType($oTopic->getType()))) {
return parent::EventNotFound();
}
if (!($oField = E::ModuleTopic()->GetContentFieldById($sFieldId))) {
return parent::EventNotFound();
}
if ($oField->getContentId() != $this->oType->getContentId()) {
return parent::EventNotFound();
}
//получаем объект файла
$oFile = $oTopic->getFieldFile($oField->getFieldId());
//получаем объект поля топика, содержащий данные о файле
$oValue = $oTopic->getField($oField->getFieldId());
if ($oFile && $oValue) {
if (preg_match("/^(http:\\/\\/)/i", $oFile->getFileUrl())) {
$sFullPath = $oFile->getFileUrl();
R::Location($sFullPath);
} else {
$sFullPath = Config::Get('path.root.dir') . $oFile->getFileUrl();
}
$sFilename = $oFile->getFileName();
/*
* Обновляем данные
*/
$aFileObj = array();
$aFileObj['file_name'] = $oFile->getFileName();
$aFileObj['file_url'] = $oFile->getFileUrl();
$aFileObj['file_size'] = $oFile->getFileSize();
$aFileObj['file_extension'] = $oFile->getFileExtension();
$aFileObj['file_downloads'] = $oFile->getFileDownloads() + 1;
$sText = serialize($aFileObj);
$oValue->setValue($sText);
$oValue->setValueSource($sText);
//сохраняем
E::ModuleTopic()->UpdateContentFieldValue($oValue);
/*
* Отдаем файл
*/
header('Content-type: ' . $oFile->getFileExtension());
header('Content-Disposition: attachment; filename="' . $sFilename . '"');
F::File_PrintChunked($sFullPath);
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('content_download_file_error'));
return R::Action('error');
}
}
示例7: EventIndex
public function EventIndex()
{
if ($nTopicId = intval($this->sCurrentEvent)) {
$oTopic = E::ModuleTopic()->GetTopicById($nTopicId);
if ($oTopic) {
F::HttpRedirect($oTopic->getUrl());
exit;
}
}
return $this->EventNotFound();
}
示例8: EventShutdown
/**
* Выполняется при завершении работы экшена
*/
public function EventShutdown()
{
parent::EventShutdown();
if (!$this->oUserProfile) {
return;
}
/**
* Загружаем в шаблон необходимые переменные
*/
$iCountDraftUser = E::ModuleTopic()->GetCountDraftsPersonalByUser($this->oUserProfile->getId());
E::ModuleViewer()->Assign('iCountDraftUser', $iCountDraftUser);
}
示例9: EventStreamTopicSandbox
/**
* Обработка получения последних топиков
* Используется в блоке "Прямой эфир"
*
*/
protected function EventStreamTopicSandbox()
{
$aVars = array();
$aFilter = E::ModuleTopic()->GetNamedFilter('default', array('accessible' => true, 'sandbox' => true));
$aTopics = E::ModuleTopic()->GetTopicsByFilter($aFilter, 1, Config::Get('widgets.stream.params.limit'));
if ($aTopics) {
$aVars['aTopics'] = $aTopics['collection'];
// LS-compatibility
$aVars['oTopics'] = $aTopics['collection'];
}
$sTextResult = E::ModuleViewer()->FetchWidget('stream_topic.tpl', $aVars);
E::ModuleViewer()->AssignAjax('sText', $sTextResult);
}
示例10: GetSimilarTopicsByTags
/**
* @param array $aTags
* @param array|int $aExcludeTopics
* @param int $iLimit
*
* @return array
*/
public function GetSimilarTopicsByTags($aTags, $aExcludeTopics = array(), $iLimit = null)
{
if (is_null($iLimit)) {
$iLimit = 10;
}
$aTopicsId = $this->GetSimilarTopicsIdByTags($aTags, $aExcludeTopics, $iLimit);
if ($aTopicsId) {
$aTopics = E::ModuleTopic()->GetTopicsAdditionalData($aTopicsId);
} else {
$aTopics = array();
}
return $aTopics;
}
示例11: GetTopicsIdByRegexp
/**
* Получает список топиков по регулярному выражению (поиск)
*
* @param $sRegexp
* @param $iPage
* @param $iPerPage
* @param array $aParams
* @param bool $bAccessible
*
* @return array
*/
public function GetTopicsIdByRegexp($sRegexp, $iPage, $iPerPage, $aParams = array(), $bAccessible = false)
{
$s = md5(serialize($sRegexp) . serialize($aParams));
$sCacheKey = 'search_topics_' . $s . '_' . $iPage . '_' . $iPerPage;
if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
if ($bAccessible) {
$aParams['aFilter'] = E::ModuleTopic()->GetNamedFilter(FALSE, array('accessible' => true));
}
$data = array('collection' => $this->oMapper->GetTopicsIdByRegexp($sRegexp, $iCount, $iPage, $iPerPage, $aParams), 'count' => $iCount);
E::ModuleCache()->Set($data, $sCacheKey, array('topic_update', 'topic_new'), 'PT1H');
}
return $data;
}
示例12: newSandboxCount
/**
* @param string $sCssClass
*
* @return int|string
*/
public function newSandboxCount($sCssClass = '')
{
$iCount = E::ModuleTopic()->GetCountTopicsSandboxNew();
if ($iCount) {
if ($sCssClass) {
$sData = '<span class="' . $sCssClass . '"> +' . $iCount . '</span>';
} else {
$sData = $iCount;
}
} else {
$sData = '';
}
return $sData;
}
示例13: getApiData
public function getApiData($aProps = array())
{
$aData = array();
if (!empty($aProps)) {
foreach ($aProps as $sProp => $sKey) {
if (is_numeric($sProp)) {
$sProp = $sKey;
}
$aData[$sKey] = $this->getProp($sProp);
}
} else {
$aData = array('id' => $this->getId(), 'title' => $this->getTitle(), 'annotation' => $this->getDescription(), 'date' => $this->getDateAdd(), 'avatar' => $this->getAvatarUrl(), 'author' => $this->getOwner()->getApiData(), 'count_topics' => $this->getCountTopic(), 'new_topics' => E::ModuleTopic()->GetCountTopicsByBlogNew($this));
}
return $aData;
}
示例14: EventSandbox
public function EventSandbox()
{
// * Меню
$this->sMenuSubItemSelect = 'sandbox';
// * Передан ли номер страницы
$iPage = $this->GetParamEventMatch(0, 2) ? $this->GetParamEventMatch(0, 2) : 1;
// * Получаем список топиков
$aResult = E::ModuleTopic()->GetTopicsNewAll($iPage, Config::Get('module.topic.per_page'));
$aTopics = $aResult['collection'];
// * Вызов хуков
E::ModuleHook()->Run('topics_list_show', array('aTopics' => $aTopics));
// * Формируем постраничность
$aPaging = E::ModuleViewer()->MakePaging($aResult['count'], $iPage, Config::Get('module.topic.per_page'), Config::Get('pagination.pages.count'), R::GetPath('index/sandbox'));
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('plugin.sandbox.menu_text') . ($iPage > 1 ? ' (' . $iPage . ')' : ''));
// * Загружаем переменные в шаблон
E::ModuleViewer()->Assign('aTopics', $aTopics);
E::ModuleViewer()->Assign('aPaging', $aPaging);
// * Устанавливаем шаблон вывода
$this->SetTemplateAction('index');
}
示例15: Exec
/**
* Запуск обработки
*/
public function Exec()
{
$iLimit = C::Val('widgets.tags.params.limit', 70);
// * Получаем список тегов
$aTags = E::ModuleTopic()->GetOpenTopicTags($iLimit);
// * Расчитываем логарифмическое облако тегов
if ($aTags) {
E::ModuleTools()->MakeCloud($aTags);
// * Устанавливаем шаблон вывода
E::ModuleViewer()->Assign('aTags', $aTags);
}
// * Теги пользователя
if ($oUserCurrent = E::ModuleUser()->GetUserCurrent()) {
$aTags = E::ModuleTopic()->GetOpenTopicTags($iLimit, $oUserCurrent->getId());
// * Расчитываем логарифмическое облако тегов
if ($aTags) {
E::ModuleTools()->MakeCloud($aTags);
// * Устанавливаем шаблон вывода
E::ModuleViewer()->Assign('aTagsUser', $aTags);
}
}
}