<?php
namespace App\Controller;
use App\Repository\AgendaRepository;
use App\Repository\MemberRepository;
use App\Repository\DepartmentRepository;
use App\Repository\ImagebackgroundRepository;
use App\Repository\ProjectRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use App\Repository\ServiceRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
/**
* @var ServiceRepository
*/
private $s_repository;
/**
* @var AgendaRepository
*/
private $a_repository;
/**
* @var MemberRepository
*/
private $m_repository;
/**
* @var DepartmentRepository
*/
private $d_repository;
/**
* @var ProjectRepository
*/
private $p_repository;
/**
* @var ImagebackgroundRepository
*/
private $i_repository;
public function __construct(ProjectRepository $p_repository, ServiceRepository $s_repository, AgendaRepository $a_repository, MemberRepository $m_repository, DepartmentRepository $d_repository, ImagebackgroundRepository $i_repository)
{
$this->s_repository = $s_repository;
$this->a_repository = $a_repository;
$this->m_repository = $m_repository;
$this->d_repository = $d_repository;
$this->p_repository = $p_repository;
$this->i_repository = $i_repository;
}
public function index(PaginatorInterface $paginator, Request $request): Response
{
$image = $this->i_repository->find(2);
$services = $paginator->paginate(
$this->s_repository->findServices(),
$request->query->getInt('page', 1),
6
);
$agenda = $paginator->paginate(
$this->a_repository->findAgenda(),
$request->query->getInt('page', 1),
3
);
$projects = $paginator->paginate(
$this->p_repository->findProjects(),
$request->query->getInt('page', 1),
3
);
$members = $this->m_repository->findAll();
return $this->render('pages/home.html.twig', [
'current_menu' => 'home',
'members' => $members,
'services' => $services,
'agenda' => $agenda,
'projects' => $projects,
'img' => $image
]);
}
/**
* @Route("/home/single/{id}", name="hame.member")
* @return Response
*/
public function member($id): Response
{
$image = $this->i_repository->find(1);
$member = $this->m_repository->find($id);
return $this->render('pages/member.html.twig', [
'member' => $member,
'img' => $image
]);
}
/**
* @Route("/home/organigrame", name="hame.chart")
* @return Response
*/
public function crsatchart(): Response
{
$image = $this->i_repository->find(1);
return $this->render('pages/chart.html.twig', [
'img' => $image
]);
}
/**
* @Route("/home/department/{id}", name="home.department")
* @return Response
*/
public function department($id): Response
{
$image = $this->i_repository->find(1);
$department = $this->d_repository->find($id);
return $this->render('pages/department.html.twig', [
'department' => $department,
'img' => $image
]);
}
}