src/Controller/NewsController.php line 90

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 Pimcore\Model\DataObject;
  8. use Pimcore\Model\WebsiteSetting;
  9. use Pimcore\Model\DataObject\Folder;
  10. use Carbon\Carbon;
  11. use Pimcore\Mail;
  12. use Pimcore\Model\Object\News;
  13. use Pimcore\Model\Object\Events;
  14. date_default_timezone_set('Europe/Brussels');
  15. class NewsController extends FrontendController
  16. {
  17.     public function newsAndEventsAction(Request $request)
  18.     {
  19.         
  20.         $news= new DataObject\News\Listing();
  21.         $news->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
  22.         $news->setOrderKey("publishdate");
  23.         $news->setOrder("DESC");
  24.         $news->setLimit(3);
  25.         $news->load();
  26.         $eventsUpcoming= new DataObject\Events\Listing();
  27.         $eventsUpcoming->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND (eventdate > UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
  28.         $eventsUpcoming->setOrderKey("eventdate");
  29.         $eventsUpcoming->setOrder("DESC");
  30.         $eventsUpcoming->setLimit(3);
  31.         $eventsUpcoming->load();
  32.         $events= new DataObject\Events\Listing();
  33.         $events->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND (eventdate < UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
  34.         $events->setOrderKey("eventdate");
  35.         $events->setOrder("DESC");
  36.         $events->setLimit(3);
  37.         $events->load();
  38.         return $this->render('news/news-and-events.html.twig', [
  39.             'news' => $news,
  40.             'eventsUpcoming' => $eventsUpcoming,
  41.             'events' => $events
  42.         ]);
  43.     }
  44.     public function listAction(Request $request\Knp\Component\Pager\PaginatorInterface $paginator)
  45.     {
  46.         $news= new DataObject\News\Listing();
  47.         $news->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
  48.         $news->setOrderKey("publishdate");
  49.         $news->setOrder("DESC");
  50.         $news->load();
  51.         $countPerPage intval($this->document->getProperty("itemCountPerPage"));
  52.         if(!$countPerPage) :
  53.             $countPerPage 3;
  54.         endif;
  55.         $paginator $paginator->paginate(
  56.             $news,
  57.             $request->get('page'1),
  58.             $countPerPage
  59.         );
  60.         return $this->render('news/list.html.twig', [
  61.             'paginator' => $paginator,
  62.             'paginationVariables' => $paginator->getPaginationData(),
  63.             'news' => $news
  64.         ]);
  65.     }
  66.     /**
  67.      * @Template
  68.      * @param Request $request
  69.      * @route("/{_locale}/events-and-news/news/{id}", name="newsDetail",methods={"GET"})
  70.      * @return array
  71.      */
  72.     public function detailAction(Request $request)
  73.     {
  74.         $id $request->get('id');
  75.         $new DataObject\News::getById($id);
  76.         return $this->render('news/detail.html.twig', [
  77.             'new' => $new,
  78.             'seoNews' => true
  79.         ]);
  80.     }
  81. }