<?php
namespace Nen\Bundle\KennisbankPlatformBundle\Controller;
use Nen\Bundle\KennisbankPlatformBundle\Bolt\BoltConfiguration;
use Nen\Bundle\KennisbankPlatformBundle\Entity\BoltPage;
use Nen\Bundle\KennisbankPlatformBundle\Repository\BoltFaqRepository;
use Nen\Bundle\KennisbankPlatformBundle\Repository\BoltPageRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class FaqsController extends AbstractController
{
/**
* @Route("/vraag-en-antwoord/{category}", name="faqs_index")
*
* @Entity("page", expr="repository.findOneByGeneralSectionAndSlug('vraag-en-antwoord')")
*
* @param BoltPage $page
* @param BoltPageRepository $pageRepository
* @param BoltFaqRepository $faqRepository
* @param BoltConfiguration $configuration
* @param string|null $category
* @return Response
*/
public function index(
BoltPage $page,
BoltPageRepository $pageRepository,
BoltFaqRepository $faqRepository,
BoltConfiguration $configuration,
$category = null
) {
$categories = $configuration->getTaxonomyOptions('categories');
$categories = $faqRepository->createCategoryEntries($categories);
if (!empty($category)) {
if (!isset($categories[$category])) {
throw $this->createNotFoundException();
}
$faqs = $faqRepository->groupByCategories(
$categories,
$faqRepository->findAllByCategory($category)
);
} else {
$faqs = $faqRepository->groupByCategories($categories);
}
return $this->render('@KennisbankPlatform/faqs/index.html.twig', [
'faqs' => $faqs,
'page' => $page,
'category' => $category
]);
}
}