src/Controller/Front/BlogController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Knp\Component\Pager\PaginatorInterface;
  6. use App\Service\AppServices;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. class BlogController extends AbstractController {
  10.     /**
  11.      * @Route("/blog/{category}", name="blog")
  12.      */
  13.     public function blog(Request $requestPaginatorInterface $paginatorAppServices $services$category "all") {
  14.         $keyword = ($request->query->get('keyword')) == "" "all" $request->query->get('keyword');
  15.         $blogposts $paginator->paginate($services->getBlogPosts(array("category" => $category"keyword" => $keyword))->getQuery(), $request->query->getInt('page'1), $services->getSetting("blog_posts_per_page"), array('wrap-queries' => true));
  16.         return $this->render('Front/Blog/blog.html.twig', [
  17.                     'blogposts' => $blogposts
  18.         ]);
  19.     }
  20.     /**
  21.      * @Route("/blog-article/{slug}", name="blog_article")
  22.      */
  23.     public function blogArticle($slugAppServices $servicesTranslatorInterface $translator) {
  24.         $blogpost $services->getBlogPosts(array("slug" => $slug))->getQuery()->getOneOrNullResult();
  25.         if (!$blogpost) {
  26.             $this->addFlash('error'$translator->trans('The blog post not be found'));
  27.             return $this->redirectToRoute('blog');
  28.         }
  29.         $blogpost->viewed();
  30.         $em $this->getDoctrine()->getManager();
  31.         $em->persist($blogpost);
  32.         $em->flush();
  33.         return $this->render('Front/Blog/blog-article.html.twig', ["blogpost" => $blogpost]);
  34.     }
  35. }