<?php
namespace App\Controller;
use App\Entity\User;
use App\Entity\Applications;
use App\Entity\Settings;
use App\Entity\Rules;
use App\Entity\RulesCrime;
use App\Entity\Faq;
use App\Entity\Groups;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class HomePageController extends AbstractController
{
/**
* @Route("/", name="app_home")
*/
public function home(ManagerRegistry $doctrine, TranslatorInterface $translator): Response
{
$settingsRepo = $doctrine->getRepository(Settings::class);
$applicationsRepo = $doctrine->getRepository(Applications::class);
$usersRepo = $doctrine->getRepository(User::class);
$stats['applications'] = [
'all' => $applicationsRepo->countEm(),
'denied' => $applicationsRepo->countByStatus(2),
'accepted' => $applicationsRepo->countByStatus(1),
];
$stats['users'] = $usersRepo->countEm();
return $this->render('frontend/pages/homepage/index.html.twig', [
'title' => $translator->trans('app.homepage') . ' :: ' . $settingsRepo->find(1)->getContent()['pageTitle'],
'stats' => $stats,
'pageColor' => $settingsRepo->find(1)->getContent()['pageColor'],
'settings' => $settingsRepo->find(1)->getContent()
]);
}
/**
* @Route("/rules", name="app_guidelines")
*/
public function guidelines(ManagerRegistry $doctrine, TranslatorInterface $translator): Response
{
$settingsRepo = $doctrine->getRepository(Settings::class);
return $this->render('frontend/pages/homepage/guidelines.html.twig', [
'title' => $translator->trans('app.tos') . ' :: ' . $settingsRepo->find(1)->getContent()['pageTitle'],
'pageTitle' => $translator->trans('app.tos'),
'breadcrumb' => [
[$translator->trans('app.homepage'), $this->generateUrl('app_home')],
[$translator->trans('app.tos'), $this->generateUrl('app_guidelines')]
],
'pageColor' => $settingsRepo->find(1)->getContent()['pageColor'],
'rules' => $doctrine->getRepository(Rules::class)->find(1)->getContent()
]);
}
/**
* @Route("/rules/crime", name="app_guidelines_crime")
*/
public function guidelines2(ManagerRegistry $doctrine, TranslatorInterface $translator): Response
{
$settingsRepo = $doctrine->getRepository(Settings::class);
return $this->render('frontend/pages/homepage/guidelines_crime.html.twig', [
'title' => $translator->trans('app.tos') . ' :: ' . $settingsRepo->find(1)->getContent()['pageTitle'],
'pageTitle' => $translator->trans('app.tos'),
'breadcrumb' => [
[$translator->trans('app.homepage'), $this->generateUrl('app_home')],
[$translator->trans('app.tos'), $this->generateUrl('app_guidelines_crime')]
],
'pageColor' => $settingsRepo->find(1)->getContent()['pageColor'],
'rules' => $doctrine->getRepository(RulesCrime::class)->find(1)->getContent()
]);
}
/**
* @Route("/faq", name="app_faq")
*/
public function faq(ManagerRegistry $doctrine, TranslatorInterface $translator): Response
{
$settingsRepo = $doctrine->getRepository(Settings::class);
return $this->render('frontend/pages/faq/index.html.twig', [
'title' => $translator->trans('app.faq') . ' :: ' . $settingsRepo->find(1)->getContent()['pageTitle'],
'pageTitle' => $translator->trans('app.faq'),
'breadcrumb' => [
[$translator->trans('app.homepage'), $this->generateUrl('app_home')],
[$translator->trans('app.faq'), $this->generateUrl('app_faq')]
],
'pageColor' => $settingsRepo->find(1)->getContent()['pageColor'],
'faqs' => $doctrine->getRepository(Faq::class)->findAll()
]);
}
}