[CONTROLLER][Actor] Provide template with all notes by actor
[ENTITY][Note] Add getAllNotesByActor [TWIG] Actor profile page now renders all notes by the actor
This commit is contained in:
parent
6bcd42a3a7
commit
eeb42ef8ea
@ -71,6 +71,6 @@ class Actor extends Controller
|
|||||||
}
|
}
|
||||||
public function ActorShowNickname(Request $request, string $nickname)
|
public function ActorShowNickname(Request $request, string $nickname)
|
||||||
{
|
{
|
||||||
return $this->ActorByNickname($nickname, fn ($actor) => ['_template' => 'actor/view.html.twig', 'actor' => $actor]);
|
return $this->ActorByNickname($nickname, fn ($actor) => ['_template' => 'actor/view.html.twig', 'actor' => $actor, 'notes' => \App\Entity\Note::getAllNotesByActor($actor)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -217,6 +217,18 @@ class Note extends Entity
|
|||||||
return Avatar::getAvatarUrl($this->getActorId(), $size);
|
return Avatar::getAvatarUrl($this->getActorId(), $size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getAllNotesByActor(Actor $actor): array
|
||||||
|
{
|
||||||
|
return DB::sql(
|
||||||
|
<<<'EOF'
|
||||||
|
select {select} from note n
|
||||||
|
where (n.actor_id & :actor_id) <> 0
|
||||||
|
order by n.created DESC
|
||||||
|
EOF,
|
||||||
|
['actor_id' => $actor],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getAllNotes(int $note_scope): array
|
public static function getAllNotes(int $note_scope): array
|
||||||
{
|
{
|
||||||
return DB::sql(
|
return DB::sql(
|
||||||
|
@ -1,20 +1,30 @@
|
|||||||
{% extends 'stdgrid.html.twig' %}
|
{% extends 'stdgrid.html.twig' %}
|
||||||
|
{% import '/cards/note/view.html.twig' as noteView %}
|
||||||
|
|
||||||
{% block title %}{{ actor.getNickname() }}'s profile{% endblock %}
|
{% block title %}{{ actor.getNickname() ~ '\'s profile' | trans }}{% endblock %}
|
||||||
|
|
||||||
|
{% block stylesheets %}
|
||||||
|
{{ parent() }}
|
||||||
|
<link rel="stylesheet" href="{{ asset('assets/default_theme/css/pages/feeds.css') }}" type="text/css">
|
||||||
|
{% endblock stylesheets %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
{% block profile_view %}{% include 'cards/profile/view.html.twig' %}{% endblock profile_view %}
|
{% block profile_view %}
|
||||||
|
{% include 'cards/profile/view.html.twig' %}
|
||||||
|
{% endblock profile_view %}
|
||||||
|
|
||||||
<main class="feed" tabindex="0" role="feed">
|
<main class="feed" tabindex="0" role="feed">
|
||||||
<div class="h-feed hfeed notes">
|
<div class="h-feed hfeed notes">
|
||||||
{% if notes is defined and notes is not empty %}
|
{% if notes is defined and notes is not empty %}
|
||||||
{% for conversation in notes %}
|
{% for note in notes %}
|
||||||
{% include '/note/view.html.twig' with {'note': conversation['note'], 'have_user': have_user, 'replies': conversation['replies']} only %}
|
{% block current_note %}
|
||||||
|
{{ noteView.macro_note(note, null) }}
|
||||||
<hr tabindex="0" title="{{ 'End of note and replies.' | trans }}">
|
<hr tabindex="0" title="{{ 'End of note and replies.' | trans }}">
|
||||||
|
{% endblock current_note %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<div id="empty-notes"><h1>{% trans %}No notes here.{% endtrans %}</h1></div>
|
<div id="empty-notes"><h1>{% trans %}No notes here.{% endtrans %}</h1></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
{% endblock body %}
|
{% endblock body %}
|
||||||
|
@ -40,6 +40,4 @@
|
|||||||
{{ block | raw }}
|
{{ block | raw }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<hr>
|
|
||||||
{% endblock profile_view %}
|
{% endblock profile_view %}
|
||||||
|
Loading…
Reference in New Issue
Block a user