Added Event listing and Event box
Signed-off-by: Gergely Polonkai <polesz@w00d5t0ck.info>
This commit is contained in:
67
src/KekRozsak/FrontBundle/Twig/EventsExtension.php
Normal file
67
src/KekRozsak/FrontBundle/Twig/EventsExtension.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace KekRozsak\FrontBundle\Twig;
|
||||
|
||||
use Symfony\Bridge\Doctrine\RegistryInterface;
|
||||
use Symfony\Component\Security\Core\SecurityContextInterface;
|
||||
|
||||
class EventsExtension extends \Twig_Extension
|
||||
{
|
||||
protected $_doctrine;
|
||||
protected $_securityContext;
|
||||
|
||||
public function __construct(RegistryInterface $doctrine, SecurityContextInterface $securityContext)
|
||||
{
|
||||
$this->_doctrine = $doctrine;
|
||||
$this->_securityContext = $securityContext;
|
||||
}
|
||||
|
||||
public function getGlobals()
|
||||
{
|
||||
$today = new \DateTime('now');
|
||||
$firstDay = \DateTime::createFromFormat('Y-m-d', $today->format('Y-m-01'));
|
||||
$firstDayWeekday = $firstDay->format('N');
|
||||
$numDays = $firstDay->format('t');
|
||||
$lastDay = \DateTime::createFromFormat('Y-m-d', $today->format('Y-m-' . sprintf("%02d", $numDays)));
|
||||
|
||||
/*
|
||||
* Get all events in today's month. Iterate through this
|
||||
* collection, adding each element to $monthEvents array's
|
||||
* 'day'th element array.
|
||||
*/
|
||||
$query = $this->_doctrine->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND ((e.startDate < :firstDay AND e.endDate >= :firstDay) OR e.startDate BETWEEN :firstDay AND :lastDay)');
|
||||
$query->setParameter('firstDay', $firstDay, \Doctrine\DBAL\Types\Type::DATE);
|
||||
$query->setParameter('lastDay', $lastDay, \Doctrine\DBAL\Types\Type::DATE);
|
||||
$events = $query->getResult();
|
||||
|
||||
$eventList = array();
|
||||
for ($i = 1; $i <= $numDays; $i++)
|
||||
{
|
||||
$date = \DateTime::createFromFormat('Y-m-d', $today->format('Y-m-' . sprintf('%02d', $i)));
|
||||
$eventList[$i]['date'] = $date;
|
||||
$eventList[$i]['events'] = array();
|
||||
foreach ($events as $event)
|
||||
{
|
||||
if ($event->isOnDate($date))
|
||||
{
|
||||
$eventList[$i]['events'][] = $event;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
'events' => $events,
|
||||
'eventList' => $eventList,
|
||||
'today' => $today,
|
||||
'firstDay' => $firstDay,
|
||||
'lastDay' => $lastDay,
|
||||
'firstDayWeekday' => $firstDayWeekday,
|
||||
'numDays' => $numDays,
|
||||
);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return 'Events';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user