示例#1
0
 /**
  * Устанавливает 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;
 }