<?php
namespace App\Controller\Forum;
use App\Entity\ForumPost;
use App\Entity\ForumTopic;
use App\Entity\ForumUser;
use App\Entity\User;
use App\Repository\ForumPostRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/forum")
*/
class ForumTopicController extends AbstractController
{
/**
* @Route("/{countryMin}/{slug}", name="app_forum_forum_topic_show")
*
*/
public function show(
ForumPostRepository $forumPostRepository,
ForumTopic $topic,
PaginatorInterface $paginator,
Request $request
): Response
{
/** @var User $currentUser */
$currentUser = $this->getUser();
/** @var ?ForumUser $currentForumUser */
$currentForumUser = null;
if ($currentUser) {
$currentForumUser = $currentUser->getForumUser();
}
$topicPosts = $topic->getPostActives();
$knpPage = $request->get('page', 1);
$knpPerPage = 30;
/** @var ForumPost[] $posts */
$posts = $paginator->paginate(
$topicPosts,
$request->query->getInt('page', $knpPage),
$knpPerPage
);
return $this->render('forum/forum_topic/show.html.twig', [
'topic' => $topic,
'posts' => $posts,
'currentForumUser' => $currentForumUser,
]);
}
}