<?php
namespace App\Controller;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Pimcore\Model\DataObject;
use Pimcore\Model\WebsiteSetting;
use Pimcore\Model\DataObject\Folder;
use Carbon\Carbon;
use Pimcore\Mail;
use Pimcore\Model\Object\News;
use Pimcore\Model\Object\Events;
date_default_timezone_set('Europe/Brussels');
class NewsController extends FrontendController
{
public function newsAndEventsAction(Request $request)
{
$news= new DataObject\News\Listing();
$news->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
$news->setOrderKey("publishdate");
$news->setOrder("DESC");
$news->setLimit(3);
$news->load();
$eventsUpcoming= new DataObject\Events\Listing();
$eventsUpcoming->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND (eventdate > UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
$eventsUpcoming->setOrderKey("eventdate");
$eventsUpcoming->setOrder("DESC");
$eventsUpcoming->setLimit(3);
$eventsUpcoming->load();
$events= new DataObject\Events\Listing();
$events->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND (eventdate < UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
$events->setOrderKey("eventdate");
$events->setOrder("DESC");
$events->setLimit(3);
$events->load();
return $this->render('news/news-and-events.html.twig', [
'news' => $news,
'eventsUpcoming' => $eventsUpcoming,
'events' => $events
]);
}
public function listAction(Request $request, \Knp\Component\Pager\PaginatorInterface $paginator)
{
$news= new DataObject\News\Listing();
$news->setCondition('(publishdate IS NULL OR publishdate < UNIX_TIMESTAMP(NOW())) AND lang = "'.$request->getLocale().'"');
$news->setOrderKey("publishdate");
$news->setOrder("DESC");
$news->load();
$countPerPage = intval($this->document->getProperty("itemCountPerPage"));
if(!$countPerPage) :
$countPerPage = 3;
endif;
$paginator = $paginator->paginate(
$news,
$request->get('page', 1),
$countPerPage
);
return $this->render('news/list.html.twig', [
'paginator' => $paginator,
'paginationVariables' => $paginator->getPaginationData(),
'news' => $news
]);
}
/**
* @Template
* @param Request $request
* @route("/{_locale}/events-and-news/news/{id}", name="newsDetail",methods={"GET"})
* @return array
*/
public function detailAction(Request $request)
{
$id = $request->get('id');
$new = DataObject\News::getById($id);
return $this->render('news/detail.html.twig', [
'new' => $new,
'seoNews' => true
]);
}
}