From 504cedfb1f7a75953b2286d9c20a35d4ca3b374f Mon Sep 17 00:00:00 2001 From: n1rwana <93197434+n1rwana@users.noreply.github.com> Date: Sun, 28 Aug 2022 04:22:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Web/Presenters/WallPresenter.php | 32 ++++++++++++------- .../components/post/microblogpost.xml | 19 ++++++++--- .../templates/components/post/oldpost.xml | 21 ++++++++++-- Web/routes.yml | 2 ++ Web/static/js/openvk.cls.js | 6 ++-- 5 files changed, 59 insertions(+), 21 deletions(-) diff --git a/Web/Presenters/WallPresenter.php b/Web/Presenters/WallPresenter.php index f8997cd7..5dd0de58 100644 --- a/Web/Presenters/WallPresenter.php +++ b/Web/Presenters/WallPresenter.php @@ -207,7 +207,7 @@ final class WallPresenter extends OpenVKPresenter ]; } - function renderMakePost(int $wall): void + function renderMakePost(int $wall, ?int $editTarget = 0): void { $this->assertUserLoggedIn(); $this->willExecuteWriteAction(); @@ -270,17 +270,27 @@ final class WallPresenter extends OpenVKPresenter if(empty($this->postParam("text")) && !$photo && !$video) $this->flashFail("err", tr("failed_to_publish_post"), tr("post_is_empty_or_too_big")); - + try { - $post = new Post; - $post->setOwner($this->user->id); - $post->setWall($wall); - $post->setCreated(time()); - $post->setContent($this->postParam("text")); - $post->setAnonymous($anon); - $post->setFlags($flags); - $post->setNsfw($this->postParam("nsfw") === "on"); - $post->save(); + if ($editTarget) { + $post = $this->posts->getPostById($this->user->id, $editTarget); + $post->setEdited(time()); + $post->setContent($this->postParam("text")); + $post->setFlags($flags); + $post->setNsfw($this->postParam("nsfw") === "on"); + $post->save(); + } else { + $post = new Post; + $post->setOwner($this->user->id); + $post->setWall($wall); + $post->setCreated(time()); + $post->setContent($this->postParam("text")); + $post->setAnonymous($anon); + $post->setFlags($flags); + $post->setNsfw($this->postParam("nsfw") === "on"); + $post->save(); + } + } catch (\LengthException $ex) { $this->flashFail("err", tr("failed_to_publish_post"), tr("post_is_too_big")); } diff --git a/Web/Presenters/templates/components/post/microblogpost.xml b/Web/Presenters/templates/components/post/microblogpost.xml index d8a3e594..3224e942 100644 --- a/Web/Presenters/templates/components/post/microblogpost.xml +++ b/Web/Presenters/templates/components/post/microblogpost.xml @@ -60,9 +60,13 @@ {/if}
-
- {$post->getText()|noescape} - +
+ {$post->getText()|noescape} + + +
{include "../attachment.xml", attachment => $attachment} @@ -73,6 +77,9 @@
 ! Этот пост был размещён за взятку.
+
+   ред. {$post->getEditTime()} +
{var $actualAuthor = $post->getOwner(false)} @@ -87,7 +94,11 @@ {$post->getPublicationTime()} {if isset($thisUser)}   - + + {if !($forceNoEditLink ?? false) && $post->canBePinnedBy($thisUser)} + Редактировать  |  + {/if} + {_comment}