From 28e7eaa9e31544574dadbc1457dc0900602fd2c4 Mon Sep 17 00:00:00 2001 From: Celestora Date: Wed, 13 Oct 2021 23:23:01 +0300 Subject: [PATCH] Wall: Fix video uploads in comments --- Web/Presenters/CommentPresenter.php | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Web/Presenters/CommentPresenter.php b/Web/Presenters/CommentPresenter.php index 6e554002..6bc27ad2 100644 --- a/Web/Presenters/CommentPresenter.php +++ b/Web/Presenters/CommentPresenter.php @@ -1,6 +1,6 @@ postParam("text")) && is_null($photo)) - $this->flashFail("err", "Не удалось опубликовать комментарий", "Нельзя опубликовать пустой комментарий."); + // TODO move to trait + try { + $photo = NULL; + $video = NULL; + if($_FILES["_pic_attachment"]["error"] === UPLOAD_ERR_OK) { + $album = NULL; + if($wall > 0 && $wall === $this->user->id) + $album = (new Albums)->getUserWallAlbum($wallOwner); + + $photo = Photo::fastMake($this->user->id, $this->postParam("text"), $_FILES["_pic_attachment"], $album); + } + + if($_FILES["_vid_attachment"]["error"] === UPLOAD_ERR_OK) { + $video = Video::fastMake($this->user->id, $this->postParam("text"), $_FILES["_vid_attachment"]); + } + } catch(ISE $ex) { + $this->flashFail("err", "Не удалось опубликовать комментарий", "Файл медиаконтента повреждён или слишком велик."); + } + + if(empty($this->postParam("text")) && !$photo && !$video) + $this->flashFail("err", "Не удалось опубликовать комментарий", "Комментарий пустой или слишком большой."); $comment = new Comment; $comment->setOwner($this->user->id); @@ -61,6 +80,9 @@ final class CommentPresenter extends OpenVKPresenter if(!is_null($photo)) $comment->attach($photo); + if(!is_null($video)) + $post->attach($video); + if($entity->getOwner()->getId() !== $this->user->identity->getId()) if(($owner = $entity->getOwner()) instanceof User) (new CommentNotification($owner, $comment, $entity, $this->user->identity))->emit();