<?php
namespace App\Controller;
use App\Entity\FAQ;
use App\Entity\News;
use App\Annotation\CmsComponent;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class WisdomController extends AbstractController
{
public function __construct(private EntityManagerInterface $em)
{
}
/**
* @CmsComponent("Wisdom Component", active=true, routeName="embed_wisdom_component")
*
* @param mixed $request
*/
#[Route('/wisdom', name: 'embed_wisdom_component')]
public function index(): Response
{
$faq = $this->em->getRepository(FAQ::class)->findOneBy(['deleted' => false, 'active' => true, 'featured' => true], ['sortOrder' => 'ASC'], 1, 0);
$news = $this->em->createQuery('SELECT e FROM App:News e WHERE e.deleted = 0 AND e.active = 1 AND e.publishDate <= :now AND e.featuredInWisdomComponent = 1 ORDER BY e.publishDate DESC')
->setParameter('now', new \DateTime())
->setMaxResults(1)
->getOneOrNullResult();
if (! $faq && ! $news) {
return new Response('');
}
return $this->render('@theme/wisdom/featured.html.twig', [
'faq' => $faq,
'news' => $news,
]);
}
}