<?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 EventsController extends FrontendController
{
/**
* @Template
* @param Request $request
* @return array
*/
public function listAction(Request $request, \Knp\Component\Pager\PaginatorInterface $paginator)
{
$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->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->load();
$countPerPage = intval($this->document->getProperty("newItemCountPerPage"));
if(!$countPerPage) :
$countPerPage = 6;
endif;
$paginator = $paginator->paginate(
$events,
$request->get('page', 1),
$countPerPage
);
return $this->render('events/list.html.twig', [
'paginator' => $paginator,
'paginationVariables' => $paginator->getPaginationData(),
'events' => $events,
'eventsUpcoming' => $eventsUpcoming
]);
}
/**
* @Template
* @param Request $request
* @route("/{_locale}/events-and-news/events/{id}", name="eventDetail",methods={"GET"})
* @return array
*/
public function detailAction(Request $request)
{
$id = $request->get('id');
$event = DataObject\Events::getById($id);
return $this->render('events/detail.html.twig', [
'event' => $event,
'seoEvents' => true
]);
}
}