src/Controller/WisdomController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\FAQ;
  4. use App\Entity\News;
  5. use App\Annotation\CmsComponent;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. class WisdomController extends AbstractController
  11. {
  12. public function __construct(private EntityManagerInterface $em)
  13. {
  14. }
  15. /**
  16. * @CmsComponent("Wisdom Component", active=true, routeName="embed_wisdom_component")
  17. *
  18. * @param mixed $request
  19. */
  20. #[Route('/wisdom', name: 'embed_wisdom_component')]
  21. public function index(): Response
  22. {
  23. $faq = $this->em->getRepository(FAQ::class)->findOneBy(['deleted' => false, 'active' => true, 'featured' => true], ['sortOrder' => 'ASC'], 1, 0);
  24. $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')
  25. ->setParameter('now', new \DateTime())
  26. ->setMaxResults(1)
  27. ->getOneOrNullResult();
  28. if (! $faq && ! $news) {
  29. return new Response('');
  30. }
  31. return $this->render('@theme/wisdom/featured.html.twig', [
  32. 'faq' => $faq,
  33. 'news' => $news,
  34. ]);
  35. }
  36. }