src/Controller/NewController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Pimcore\Controller\FrontendController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use App\Form\InscriptionFormType;
  8. use Pimcore\Model\DataObject;
  9. use Pimcore\Model\WebsiteSetting;
  10. use Pimcore\Model\DataObject\Folder;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Carbon\Carbon;
  13. use Pimcore\Mail;
  14. use Pimcore\Model\DataObject\News;
  15. date_default_timezone_set('Europe/Brussels');
  16. class NewController extends FrontendController
  17. {
  18.     /**
  19.      * @Template
  20.      * @param Request $request
  21.      * @return array
  22.      */
  23.     public function listAction(Request $request\Knp\Component\Pager\PaginatorInterface $paginator)
  24.     {
  25.         $news = new DataObject\News\Listing();
  26.         $news->setCondition('(date <= UNIX_TIMESTAMP(NOW()))');
  27.         $news->setOrderKey('date');
  28.         $news->setOrder('Desc');
  29.         $news->load();
  30.         $countPerPage intval($this->document->getProperty("blogItemCountPerPage"));
  31.         if(!$countPerPage) :
  32.             $countPerPage 12;
  33.         endif;
  34.         $paginator $paginator->paginate(
  35.             $news,
  36.             $request->get('page'1),
  37.             $countPerPage
  38.         );
  39.         return $this->render('news/list.html.twig', [
  40.             'paginator' => $paginator,
  41.             'paginationVariables' => $paginator->getPaginationData(),
  42.             'news' => $news,
  43.         ]);
  44.         
  45.     }
  46.   
  47.     /**
  48.      * @Template
  49.      * @param Request $request
  50.      * @route("/{_locale}/blog/{slug}", name="newsDetail",methods={"GET","POST"})
  51.      * @return Response
  52.      */
  53.     public function detailAction(Request $request) : Response
  54.     {
  55.         $slug $request->get('slug');
  56.         $app DataObject\News::getBySlug($slug)->load();
  57.         $othernews = new DataObject\News\Listing();
  58.         $othernews->setCondition('slug NOT LIKE "'.$app[0]->get('slug').'"');
  59.         $othernews->setLimit(3);
  60.         $othernews->load();
  61.         return $this->render('news/detail.html.twig', [
  62.             'new' => $app[0],
  63.             'othernews' => $othernews,
  64.             'newsSeo' => true
  65.         ]);
  66.     }
  67.     /**
  68.      * @Template
  69.      * @param Request $request
  70.      * @return array
  71.      */
  72.     public function snippetAction(Request $request)
  73.     {
  74.         $lastnew = new DataObject\News\Listing();
  75.         $lastnew->setCondition('(date <= UNIX_TIMESTAMP(NOW()))');
  76.         $lastnew->setOrderKey('date');
  77.         $lastnew->setOrder('Desc');
  78.         $lastnew->load();
  79.         $countPerPage intval($this->document->getProperty("newsItemCount"));
  80.         $lastnew->setLimit($countPerPage);
  81.         $lastnew->load();
  82.         return $this->render('snippets/news.html.twig', [
  83.             'lastnew' => $lastnew
  84.         ]);
  85.     }
  86. }