forked from GNUsocial/gnu-social
[COMPONENT][Tag] Add tag stream, with paging
This commit is contained in:
parent
2f3f7b8469
commit
6cd86cac25
@ -2,12 +2,36 @@
|
|||||||
|
|
||||||
namespace Component\Tag\Controller;
|
namespace Component\Tag\Controller;
|
||||||
|
|
||||||
|
use App\Core\Cache;
|
||||||
use App\Core\Controller;
|
use App\Core\Controller;
|
||||||
|
use App\Core\DB\DB;
|
||||||
|
use App\Util\Common;
|
||||||
|
use Component\Tag\Tag as CompTag;
|
||||||
|
|
||||||
class Tag extends Controller
|
class Tag extends Controller
|
||||||
{
|
{
|
||||||
public function tag(string $tag)
|
public function tag(string $tag)
|
||||||
{
|
{
|
||||||
dd($tag);
|
// TODO scope
|
||||||
|
$per_page = Common::config('streams', 'notes_per_page');
|
||||||
|
$page = $this->int('page') ?: 1;
|
||||||
|
$tag = CompTag::canonicalTag($tag);
|
||||||
|
$notes = array_reverse( // TODO meme
|
||||||
|
Cache::getList(
|
||||||
|
"tag-{$tag}",
|
||||||
|
fn () => DB::dql(
|
||||||
|
'select n from note n join note_tag nt with nt.note_id = n.id ' .
|
||||||
|
'where nt.canonical = :tag order by nt.created ASC, n.id ASC',
|
||||||
|
['tag' => $tag]),
|
||||||
|
offset: $per_page * ($page - 1),
|
||||||
|
limit: $per_page - 1
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'_template' => 'tag_stream.html.twig',
|
||||||
|
'notes' => $notes,
|
||||||
|
'page' => $page,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
7
components/Tag/templates/tag_stream.html.twig
Normal file
7
components/Tag/templates/tag_stream.html.twig
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{% for note in notes %}
|
||||||
|
<div>
|
||||||
|
{{ note.getRendered() | raw }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{{ "Page: " ~ page }}
|
Loading…
Reference in New Issue
Block a user