Deprecated : Constant E_STRICT is deprecated in /var/www/html/k/kasscaffolding/vendor/symfony/error-handler/ErrorHandler.php on line 58
Deprecated : Constant E_STRICT is deprecated in /var/www/html/k/kasscaffolding/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler
<?php
namespace App\Controller ;
use App\Annotation\CmsComponent ;
use App\Entity\News ;
use Doctrine\ORM\EntityManagerInterface ;
use Knp\Component\Pager\PaginatorInterface ;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController ;
use Symfony\Component\HttpFoundation\Request ;
use Symfony\Component\HttpFoundation\Response ;
use Symfony\Component\Routing\Annotation\Route ;
class NewsDefaultController extends AbstractController
{
/**
* @CmsComponent("All News Articles", active=true, routeName="embed_news_overview")
*
* @param mixed $request
*/
#[ Route ( path : '/test-news/overview' , name : 'embed_news_overview' )]
public function embedNewsOverview ( EntityManagerInterface $em , PaginatorInterface $paginator , Request $request ): Response
{
$perpage = 9 ;
$query = $em -> createQuery ( 'SELECT e FROM App:News e WHERE e.deleted = 0 AND e.active = 1 AND e.publishDate <= :now ORDER BY e.publishDate DESC' )-> setParameter ( 'now' , new \DateTime ());
$paginatedNews = $paginator -> paginate ( $query , $request -> query -> getInt ( 'page' , 1 ), $perpage );
return $this -> render ( '@theme/news/embedNewsOverview.html.twig' , [
'articles' => $paginatedNews ,
]);
}
/**
* @CmsComponent("Featured News Article", active=true, routeName="embed_news_featured")
*
* @param mixed $request
*/
#[ Route ( path : '/test-news/featured' , name : 'embed_news_featured' )]
public function embedFeaturedNewsArticle ( EntityManagerInterface $em , Request $request ): Response
{
$article = $em -> getRepository ( News ::class)-> findLastestFeatured ();
return $this -> render ( '@theme/news/embedFeaturedNewsArticle.html.twig' , [
'article' => $article ,
]);
}
/**
* @CmsComponent("Single News Article", slug="{news_slug}", slugEntity="News", active=true, routeName="embed_news_article")
*
* @param mixed $request
*/
#[ Route ( path : '/test-news/{news_slug}' , name : 'embed_news_article' )]
public function embedNewsArticle ( EntityManagerInterface $em , Request $request , mixed $news_slug )
{
$prev = $next = null ;
$news = $em -> getRepository ( News ::class)-> findOneBy ([ 'slug' => $news_slug , 'deleted' => false , 'active' => true ]);
if (!$news && $this -> getParameter ( 'multilingual' )) {
$news = $em -> getRepository ( News ::class)-> findSlugWithLocale ( $news_slug , $request -> getLocale ());
if (!$news ) {
return new Response ( 'Not Found' );
}
}
$now = new \DateTime ();
if (!$news || $news -> getPublishDate () > $now ) {
return new Response ( 'Not Found' );
}
$next = $em -> getRepository ( News ::class)-> findNextPublished ( $news -> getPublishDate ());
$prev = $em -> getRepository ( News ::class)-> findLastPublished ( $news -> getPublishDate ());
return $this -> render ( '@theme/news/embedNewsArticle.html.twig' , [
'news' => $news ,
'prev' => $prev ,
'next' => $next ,
]);
}
}