/** * Устанавливает publish у коммента * * @param int $iTargetId ID владельца коммента * @param string $sTargetType Тип владельца комментария * @param int $iPublish Статус отображать комментарии или нет * * @return bool */ public function SetCommentsPublish($iTargetId, $sTargetType, $iPublish) { $aComments = $this->GetCommentsByTargetId($iTargetId, $sTargetType); if (!$aComments || !isset($aComments['comments']) || count($aComments['comments']) == 0) { return false; } $bResult = false; /** * Если статус публикации успешно изменен, то меняем статус в отметке "избранное". * Если комментарии снимаются с публикации, удаляем их из прямого эфира. */ if ($this->oMapper->SetCommentsPublish($iTargetId, $sTargetType, $iPublish)) { E::ModuleFavourite()->SetFavouriteTargetPublish(array_keys($aComments['comments']), 'comment', $iPublish); if ($iPublish != 1) { $this->DeleteCommentOnlineByTargetId($iTargetId, $sTargetType); } $bResult = true; } E::ModuleCache()->CleanByTags(array("comment_update_status_{$sTargetType}")); return $bResult; }
/** * Устанавливает publish у коммента * * @param int $sTargetId ID владельца коммента * @param string $sTargetType Тип владельца комментария * @param int $iPublish Статус отображать комментарии или нет * @return bool */ public function SetCommentsPublish($sTargetId, $sTargetType, $iPublish) { if (!($aComments = $this->GetCommentsByTargetId($sTargetId, $sTargetType))) { return false; } if (!isset($aComments['comments']) or count($aComments) == 0) { return; } $this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array("comment_update_status_{$sTargetType}")); /** * Если статус публикации успешно изменен, то меняем статус в отметке "избранное". * Если комментарии снимаются с публикации, удаляем их из прямого эфира. */ if ($this->oMapper->SetCommentsPublish($sTargetId, $sTargetType, $iPublish)) { $this->Favourite_SetFavouriteTargetPublish(array_keys($aComments['comments']), 'comment', $iPublish); if ($iPublish != 1) { $this->DeleteCommentOnlineByTargetId($sTargetId, $sTargetType); } return true; } return false; }