mirror of
https://github.com/openvk/openvk
synced 2025-06-07 06:57:00 +03:00
feat: add comments sort
This commit is contained in:
parent
dce143a48e
commit
626770ef0c
8 changed files with 49 additions and 5 deletions
|
@ -75,9 +75,9 @@ abstract class Postable extends Attachable
|
||||||
return new DateTime($edited);
|
return new DateTime($edited);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getComments(int $page, ?int $perPage = null): \Traversable
|
public function getComments(int $page, ?int $perPage = null, string $sort = "ASC"): \Traversable
|
||||||
{
|
{
|
||||||
return (new Comments())->getCommentsByTarget($this, $page, $perPage);
|
return (new Comments())->getCommentsByTarget($this, $page, $perPage, $sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCommentsCount(): int
|
public function getCommentsCount(): int
|
||||||
|
|
|
@ -469,7 +469,11 @@ final class WallPresenter extends OpenVKPresenter
|
||||||
}
|
}
|
||||||
$this->template->cCount = $post->getCommentsCount();
|
$this->template->cCount = $post->getCommentsCount();
|
||||||
$this->template->cPage = (int) ($_GET["p"] ?? 1);
|
$this->template->cPage = (int) ($_GET["p"] ?? 1);
|
||||||
$this->template->comments = iterator_to_array($post->getComments($this->template->cPage));
|
$this->template->sort = $this->queryParam("sort") ?? "asc";
|
||||||
|
|
||||||
|
$input_sort = $this->template->sort == "asc" ? "ASC" : "DESC";
|
||||||
|
|
||||||
|
$this->template->comments = iterator_to_array($post->getComments($this->template->cPage, null, $input_sort));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderLike(int $wall, int $post_id): void
|
public function renderLike(int $wall, int $post_id): void
|
||||||
|
|
|
@ -36,7 +36,8 @@
|
||||||
count => $cCount,
|
count => $cCount,
|
||||||
page => $cPage,
|
page => $cPage,
|
||||||
model => "posts",
|
model => "posts",
|
||||||
parent => $post }
|
parent => $post,
|
||||||
|
sort => $sort}
|
||||||
</div>
|
</div>
|
||||||
<div style="float: left; min-height: 100px; width: 32%;padding-left: 10px;width: 30%;">
|
<div style="float: left; min-height: 100px; width: 32%;padding-left: 10px;width: 30%;">
|
||||||
<h4>{_actions}</h4>
|
<h4>{_actions}</h4>
|
||||||
|
|
|
@ -1,5 +1,18 @@
|
||||||
<h4 n:if="$showTitle ?? true">{_comments} ({$count})</h4>
|
<div>
|
||||||
|
<h4 n:if="$showTitle ?? true">{_comments} ({$count})</h4>
|
||||||
|
|
||||||
|
{if !is_null($sort) && $count > 5}
|
||||||
|
<a class="sort_link" n:attr="href => $sort == 'desc' ? '?sort=asc' : '?sort=desc'">
|
||||||
|
{if $sort == 'desc'}
|
||||||
|
{_new_first}
|
||||||
|
{else}
|
||||||
|
{_old_first}
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div n:class="sort_link_icon, $sort == 'desc' ? sort_link_icon_desc : sort_link_icon_asc"></div>
|
||||||
|
</a>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
<div n:ifset="$thisUser" id="standaloneCommentBox">
|
<div n:ifset="$thisUser" id="standaloneCommentBox">
|
||||||
{var $commentsURL = "/al_comments/create/$model/" . $parent->getId()}
|
{var $commentsURL = "/al_comments/create/$model/" . $parent->getId()}
|
||||||
{var $club = $parent instanceof \openvk\Web\Models\Entities\Post && $parent->getTargetWall() < 0 ? (new openvk\Web\Models\Repositories\Clubs)->get(abs($parent->getTargetWall())) : $club}
|
{var $club = $parent instanceof \openvk\Web\Models\Entities\Post && $parent->getTargetWall() < 0 ? (new openvk\Web\Models\Repositories\Clubs)->get(abs($parent->getTargetWall())) : $club}
|
||||||
|
|
|
@ -4314,3 +4314,23 @@ hr {
|
||||||
.deleted_mark_average {
|
.deleted_mark_average {
|
||||||
padding: 5px 61px;
|
padding: 5px 61px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sort_link {
|
||||||
|
padding: 5px 2px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort_link_icon {
|
||||||
|
background: url(/assets/packages/static/openvk/img/wall.png?v=3) no-repeat;
|
||||||
|
display: inline-block;
|
||||||
|
height: 11px;
|
||||||
|
width: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort_link_icon_desc {
|
||||||
|
background-position: 0px -15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort_link_icon_asc {
|
||||||
|
background-position: -11px -15px;
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.5 KiB |
|
@ -868,6 +868,9 @@
|
||||||
"sort_up" = "Sort by ID up";
|
"sort_up" = "Sort by ID up";
|
||||||
"sort_down" = "Sort by ID down";
|
"sort_down" = "Sort by ID down";
|
||||||
|
|
||||||
|
"new_first" = "New frist";
|
||||||
|
"old_first" = "Old first";
|
||||||
|
|
||||||
/* Videos */
|
/* Videos */
|
||||||
|
|
||||||
"videos" = "Videos";
|
"videos" = "Videos";
|
||||||
|
|
|
@ -826,6 +826,9 @@
|
||||||
"sort_up" = "Сортировать по дате создания вверх";
|
"sort_up" = "Сортировать по дате создания вверх";
|
||||||
"sort_down" = "Сортировать по дате создания вниз";
|
"sort_down" = "Сортировать по дате создания вниз";
|
||||||
|
|
||||||
|
"new_first" = "Сначала новые";
|
||||||
|
"old_first" = "Сначала старые";
|
||||||
|
|
||||||
/* Videos */
|
/* Videos */
|
||||||
|
|
||||||
"videos" = "Видеозаписи";
|
"videos" = "Видеозаписи";
|
||||||
|
|
Loading…
Reference in a new issue