本文整理汇总了PHP中E::ModuleComment方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleComment方法的具体用法?PHP E::ModuleComment怎么用?PHP E::ModuleComment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleComment方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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;
}
示例2: EventStreamCommentSandbox
protected function EventStreamCommentSandbox()
{
$aVars = array();
if ($aComments = E::ModuleComment()->GetCommentsOnline('sandbox', Config::Get('widgets.stream.params.limit'))) {
$aVars['aComments'] = $aComments;
}
$sTextResult = E::ModuleViewer()->FetchWidget('stream_comment.tpl', $aVars);
E::ModuleViewer()->AssignAjax('sText', $sTextResult);
}
示例3: Exec
/**
* Запуск обработки
*/
public function Exec()
{
// * Получаем комментарии
if ($aComments = E::ModuleComment()->GetCommentsOnline('topic', Config::Get('widgets.stream.params.limit'))) {
$aVars = array('aComments' => $aComments);
// * Формируем результат в виде шаблона и возвращаем
$sTextResult = $this->Fetch('stream_comment.tpl', $aVars);
E::ModuleViewer()->Assign('sStreamComments', $sTextResult);
}
}
示例4: _getLastDateOfTopics
protected function _getLastDateOfTopics()
{
$sDate = null;
$aTopics = E::ModuleTopic()->GetTopicsLast(1);
if ($aTopics['collection']) {
$oTopic = reset($aTopics['collection']);
$sDate = $oTopic->getDateLastMod();
}
$aComments = E::ModuleComment()->GetCommentsOnline('topic', 1);
if ($aComments) {
$oComment = reset($aComments);
if ($oComment->getDateEdit() && $oComment->getDateEdit() > $sDate) {
$sDate = $oComment->getCommentDateEdit();
} elseif ($oComment->getCommentDate() > $sDate) {
$sDate = $oComment->getCommentDate();
}
}
return $sDate;
}
示例5: 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();
}
示例6: EventComments
/**
* Поиск комментариев
*
*/
function EventComments()
{
// * Ищем
$aReq = $this->PrepareRequest();
$aRes = $this->PrepareResults($aReq, Config::Get('module.comment.per_page'));
if (false === $aRes) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
return Router::Action('error');
}
// * Если поиск дал результаты
if ($this->bIsResults) {
// * Получаем топик-объекты по списку идентификаторов
$aComments = E::ModuleComment()->GetCommentsAdditionalData(array_keys($this->aSphinxRes['matches']));
// * Конфигурируем парсер
$oTextParser = ModuleText::newTextParser('search');
$aErrors = array();
// * Делаем сниппеты
/** @var ModuleComment_EntityComment $oComment */
foreach ($aComments as $oComment) {
$oComment->setText($oTextParser->parse(E::ModuleSphinx()->GetSnippet(htmlspecialchars($oComment->getText()), 'comments', $aReq['q'], '<span class="searched-item">', '</span>'), $aErrors));
}
/**
* Отправляем данные в шаблон
*/
E::ModuleViewer()->Assign('aRes', $aRes);
E::ModuleViewer()->Assign('aComments', $aComments);
}
}
示例7: EventCommentDelete
/**
* Удаление/восстановление комментария
*
*/
protected function EventCommentDelete()
{
// * Комментарий существует?
$idComment = F::GetRequestStr('idComment', null, 'post');
if (!($oComment = E::ModuleComment()->GetCommentById($idComment))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
// * Есть права на удаление комментария?
if (!$oComment->isDeletable()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
// * Устанавливаем пометку о том, что комментарий удален
$oComment->setDelete(($oComment->getDelete() + 1) % 2);
E::ModuleHook()->Run('comment_delete_before', array('oComment' => $oComment));
if (!E::ModuleComment()->UpdateCommentStatus($oComment)) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
E::ModuleHook()->Run('comment_delete_after', array('oComment' => $oComment));
// * Формируем текст ответа
if ($bState = (bool) $oComment->getDelete()) {
$sMsg = E::ModuleLang()->Get('comment_delete_ok');
$sTextToggle = E::ModuleLang()->Get('comment_repair');
} else {
$sMsg = E::ModuleLang()->Get('comment_repair_ok');
$sTextToggle = E::ModuleLang()->Get('comment_delete');
}
// * Обновление события в ленте активности
E::ModuleStream()->Write($oComment->getUserId(), 'add_comment', $oComment->getId(), !$oComment->getDelete());
// * Показываем сообщение и передаем переменные в ajax ответ
E::ModuleMessage()->AddNoticeSingle($sMsg, E::ModuleLang()->Get('attention'));
E::ModuleViewer()->AssignAjax('bState', $bState);
E::ModuleViewer()->AssignAjax('sTextToggle', $sTextToggle);
}
示例8: EventFavouriteComments
/**
* Выводит список избранноего юзера
*
*/
protected function EventFavouriteComments()
{
if (!$this->CheckUserProfile()) {
return parent::EventNotFound();
}
$this->sMenuSubItemSelect = 'comments';
/**
* Передан ли номер страницы
*/
$iPage = $this->GetParamEventMatch(2, 2) ? $this->GetParamEventMatch(2, 2) : 1;
/**
* Получаем список избранных комментариев
*/
$aResult = E::ModuleComment()->GetCommentsFavouriteByUserId($this->oUserProfile->getId(), $iPage, Config::Get('module.comment.per_page'));
$aComments = $aResult['collection'];
/**
* Формируем постраничность
*/
$aPaging = E::ModuleViewer()->MakePaging($aResult['count'], $iPage, Config::Get('module.comment.per_page'), Config::Get('pagination.pages.count'), $this->oUserProfile->getUserUrl() . 'favourites/comments');
/**
* Загружаем переменные в шаблон
*/
E::ModuleViewer()->Assign('aPaging', $aPaging);
E::ModuleViewer()->Assign('aComments', $aComments);
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('user_menu_profile') . ' ' . $this->oUserProfile->getLogin());
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('user_menu_profile_favourites_comments'));
/**
* Устанавливаем шаблон вывода
*/
$this->SetTemplateAction('favourite_comments');
}
示例9: GetUserProfileStats
/**
* Returns stats of user publications and favourites
*
* @param int|object $xUser
*
* @return int[]
*/
public function GetUserProfileStats($xUser)
{
if (is_object($xUser)) {
$iUserId = $xUser->getId();
} else {
$iUserId = intval($xUser);
}
$iCountTopicFavourite = E::ModuleTopic()->GetCountTopicsFavouriteByUserId($iUserId);
$iCountCommentFavourite = E::ModuleComment()->GetCountCommentsFavouriteByUserId($iUserId);
$iCountTopics = E::ModuleTopic()->GetCountTopicsPersonalByUser($iUserId, 1);
$iCountComments = E::ModuleComment()->GetCountCommentsByUserId($iUserId, 'topic');
$iCountWallRecords = E::ModuleWall()->GetCountWall(array('wall_user_id' => $iUserId, 'pid' => null));
$iImageCount = E::ModuleMresource()->GetCountImagesByUserId($iUserId);
$iCountUserNotes = $this->GetCountUserNotesByUserId($iUserId);
$iCountUserFriends = $this->GetCountUsersFriend($iUserId);
$aUserPublicationStats = array('favourite_topics' => $iCountTopicFavourite, 'favourite_comments' => $iCountCommentFavourite, 'count_topics' => $iCountTopics, 'count_comments' => $iCountComments, 'count_usernotes' => $iCountUserNotes, 'count_wallrecords' => $iCountWallRecords, 'count_images' => $iImageCount, 'count_friends' => $iCountUserFriends);
$aUserPublicationStats['count_created'] = $aUserPublicationStats['count_topics'] + $aUserPublicationStats['count_comments'] + $aUserPublicationStats['count_images'];
if ($iUserId == E::UserId()) {
$aUserPublicationStats['count_created'] += $aUserPublicationStats['count_usernotes'];
}
$aUserPublicationStats['count_favourites'] = $aUserPublicationStats['favourite_topics'] + $aUserPublicationStats['favourite_comments'];
return $aUserPublicationStats;
}
示例10: loadRelatedComment
/**
* Получает список комментариев
*
* @param array $aIds Список ID комментариев
*
* @return array
*/
protected function loadRelatedComment($aIds)
{
return E::ModuleComment()->GetCommentsAdditionalData($aIds);
}
示例11: EventShutdown
/**
* Обработка завершения работу экшена
*/
public function EventShutdown()
{
if (!$this->oUserCurrent) {
return;
}
$iCountTalkFavourite = E::ModuleTalk()->GetCountTalksFavouriteByUserId($this->oUserCurrent->getId());
E::ModuleViewer()->Assign('iCountTalkFavourite', $iCountTalkFavourite);
$iCountTopicFavourite = E::ModuleTopic()->GetCountTopicsFavouriteByUserId($this->oUserCurrent->getId());
$iCountTopicUser = E::ModuleTopic()->GetCountTopicsPersonalByUser($this->oUserCurrent->getId(), 1);
$iCountCommentUser = E::ModuleComment()->GetCountCommentsByUserId($this->oUserCurrent->getId(), 'topic');
$iCountCommentFavourite = E::ModuleComment()->GetCountCommentsFavouriteByUserId($this->oUserCurrent->getId());
$iCountNoteUser = E::ModuleUser()->GetCountUserNotesByUserId($this->oUserCurrent->getId());
E::ModuleViewer()->Assign('oUserProfile', $this->oUserCurrent);
E::ModuleViewer()->Assign('iCountWallUser', E::ModuleWall()->GetCountWall(array('wall_user_id' => $this->oUserCurrent->getId(), 'pid' => null)));
// * Общее число публикация и избранного
E::ModuleViewer()->Assign('iCountCreated', $iCountNoteUser + $iCountTopicUser + $iCountCommentUser);
E::ModuleViewer()->Assign('iCountFavourite', $iCountCommentFavourite + $iCountTopicFavourite);
E::ModuleViewer()->Assign('iCountFriendsUser', E::ModuleUser()->GetCountUsersFriend($this->oUserCurrent->getId()));
E::ModuleViewer()->Assign('sMenuSubItemSelect', $this->sMenuSubItemSelect);
// * Передаем во вьевер константы состояний участников разговора
E::ModuleViewer()->Assign('TALK_USER_ACTIVE', ModuleTalk::TALK_USER_ACTIVE);
E::ModuleViewer()->Assign('TALK_USER_DELETE_BY_SELF', ModuleTalk::TALK_USER_DELETE_BY_SELF);
E::ModuleViewer()->Assign('TALK_USER_DELETE_BY_AUTHOR', ModuleTalk::TALK_USER_DELETE_BY_AUTHOR);
}
示例12: MoveTopics
/**
* Перемещает топики в другой блог
*
* @param int $iOldBlogId ID старого блога
* @param int $iNewBlogId ID нового блога
*
* @return bool
*/
public function MoveTopics($iOldBlogId, $iNewBlogId)
{
if ($bResult = $this->oMapper->MoveTopics($iOldBlogId, $iNewBlogId)) {
// перемещаем теги
$this->oMapper->MoveTopicsTags($iOldBlogId, $iNewBlogId);
// меняем target parent у комментов
E::ModuleComment()->MoveTargetParent($iOldBlogId, 'topic', $iNewBlogId);
// меняем target parent у комментов в прямом эфире
E::ModuleComment()->MoveTargetParentOnline($iOldBlogId, 'topic', $iNewBlogId);
return $bResult;
}
E::ModuleCache()->CleanByTags(array('topic_update', 'blog_update', "blog_update_{$iOldBlogId}", "blog_update_{$iNewBlogId}"));
E::ModuleCache()->Delete("blog_{$iOldBlogId}");
E::ModuleCache()->Delete("blog_{$iNewBlogId}");
return false;
}
示例13: DeleteFavouriteComment
/**
* Удаляет комментарий из избранного
*
* @param ModuleFavourite_EntityFavourite $oFavourite Объект избранного
*
* @return bool
*/
public function DeleteFavouriteComment(ModuleFavourite_EntityFavourite $oFavourite)
{
if ($oFavourite->getTargetType() == 'comment' && ($oComment = E::ModuleComment()->GetCommentById($oFavourite->getTargetId())) && in_array($oComment->getTargetType(), Config::get('module.comment.favourite_target_allow'))) {
return E::ModuleFavourite()->DeleteFavourite($oFavourite);
}
return false;
}
示例14: SubmitComment
/**
* Обработка добавление комментария к письму
*
*/
protected function SubmitComment()
{
// * Проверям авторизован ли пользователь
if (!E::ModuleUser()->IsAuthorization()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем разговор
if (!($oTalk = E::ModuleTalk()->GetTalkById(F::GetRequestStr('cmt_target_id')))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
if (!($oTalkUser = E::ModuleTalk()->GetTalkUser($oTalk->getId(), $this->oUserCurrent->getId()))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем разрешено ли отправлять инбокс по времени
if (!E::ModuleACL()->CanPostTalkCommentTime($this->oUserCurrent)) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('talk_time_limit'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем текст комментария
$sText = E::ModuleText()->Parse(F::GetRequestStr('comment_text'));
$iMin = intval(Config::Get('module.talk.min_length'));
$iMax = intval(Config::Get('module.talk.max_length'));
if (!F::CheckVal($sText, 'text', $iMin, $iMax)) {
if ($iMax) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('talk_create_text_error_len', array('min' => $iMin, 'max' => $iMax)), E::ModuleLang()->Get('error'));
} else {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('talk_create_text_error_min', array('min' => $iMin)), E::ModuleLang()->Get('error'));
}
return false;
}
// * Проверям на какой коммент отвечаем
$sParentId = (int) F::GetRequest('reply');
if (!F::CheckVal($sParentId, 'id')) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
$oCommentParent = null;
if ($sParentId != 0) {
// * Проверяем существует ли комментарий на который отвечаем
if (!($oCommentParent = E::ModuleComment()->GetCommentById($sParentId))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем из одного топика ли новый коммент и тот на который отвечаем
if ($oCommentParent->getTargetId() != $oTalk->getId()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
} else {
// * Корневой комментарий
$sParentId = null;
}
// * Проверка на дублирующий коммент
if (E::ModuleComment()->GetCommentUnique($oTalk->getId(), 'talk', $this->oUserCurrent->getId(), $sParentId, md5($sText))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('topic_comment_spam'), E::ModuleLang()->Get('error'));
return false;
}
// * Создаём комментарий
/** @var ModuleComment_EntityComment $oCommentNew */
$oCommentNew = E::GetEntity('Comment');
$oCommentNew->setTargetId($oTalk->getId());
$oCommentNew->setTargetType('talk');
$oCommentNew->setUserId($this->oUserCurrent->getId());
$oCommentNew->setText($sText);
$oCommentNew->setDate(F::Now());
$oCommentNew->setUserIp(F::GetUserIp());
$oCommentNew->setPid($sParentId);
$oCommentNew->setTextHash(md5($sText));
$oCommentNew->setPublish(1);
// * Добавляем коммент
E::ModuleHook()->Run('talk_comment_add_before', array('oCommentNew' => $oCommentNew, 'oCommentParent' => $oCommentParent, 'oTalk' => $oTalk));
if (E::ModuleComment()->AddComment($oCommentNew)) {
E::ModuleHook()->Run('talk_comment_add_after', array('oCommentNew' => $oCommentNew, 'oCommentParent' => $oCommentParent, 'oTalk' => $oTalk));
E::ModuleViewer()->AssignAjax('sCommentId', $oCommentNew->getId());
$oTalk->setDateLast(F::Now());
$oTalk->setUserIdLast($oCommentNew->getUserId());
$oTalk->setCommentIdLast($oCommentNew->getId());
$oTalk->setCountComment($oTalk->getCountComment() + 1);
E::ModuleTalk()->UpdateTalk($oTalk);
// * Отсылаем уведомления всем адресатам
$aUsersTalk = E::ModuleTalk()->GetUsersTalk($oTalk->getId(), ModuleTalk::TALK_USER_ACTIVE);
foreach ($aUsersTalk as $oUserTalk) {
if ($oUserTalk->getId() != $oCommentNew->getUserId()) {
E::ModuleNotify()->SendTalkCommentNew($oUserTalk, $this->oUserCurrent, $oTalk, $oCommentNew);
}
}
// * Увеличиваем число новых комментов
E::ModuleTalk()->IncreaseCountCommentNew($oTalk->getId(), $oCommentNew->getUserId());
return true;
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
}
return false;
//.........这里部分代码省略.........
示例15: EventShowComment
/**
* Обрабатывает ссылку на конкретный комментарий, определят к какому топику он относится и перенаправляет на него
* Актуально при использовании постраничности комментариев
*/
protected function EventShowComment()
{
$iCommentId = $this->sCurrentEvent;
// * Проверяем к чему относится комментарий
if (!($oComment = E::ModuleComment()->GetCommentById($iCommentId))) {
return parent::EventNotFound();
}
if ($oComment->getTargetType() != 'topic' || !($oTopic = $oComment->getTarget())) {
return parent::EventNotFound();
}
// * Определяем необходимую страницу для отображения комментария
if (!Config::Get('module.comment.use_nested') || !Config::Get('module.comment.nested_per_page')) {
R::Location($oTopic->getUrl() . '#comment' . $oComment->getId());
}
$iPage = E::ModuleComment()->GetPageCommentByTargetId($oComment->getTargetId(), $oComment->getTargetType(), $oComment);
if ($iPage == 1) {
R::Location($oTopic->getUrl() . '#comment' . $oComment->getId());
} else {
R::Location($oTopic->getUrl() . "?cmtpage={$iPage}#comment" . $oComment->getId());
}
exit;
}