diff --git a/src/KekRozsak/FrontBundle/Controller/EventController.php b/src/KekRozsak/FrontBundle/Controller/EventController.php index 9ec141d..d53dfeb 100644 --- a/src/KekRozsak/FrontBundle/Controller/EventController.php +++ b/src/KekRozsak/FrontBundle/Controller/EventController.php @@ -34,7 +34,7 @@ class EventController extends Controller /** * @Route("/esemeny/{startDate}/{eventSlug}/csatlakozas", name="KekRozsakFrontBundle_eventJoin") * @Template() - * @ParamConverter("event", class="KekRozsakFrontBundle:Event", options={"mapping"={"eventSlug"="slug", "startDate"="startDate"}}) + * @ParamConverter("event", class="KekRozsakFrontBundle:Event", options={"mapping"={"eventSlug": "slug", "startDate": "startDate"}}) * @ParamConverter("startDate", class="DateTime", options={"format"="Y-m-d"}) */ public function joinAction(\DateTime $startDate, Event $event) @@ -58,20 +58,27 @@ class EventController extends Controller } /** - * @Route("/esemenyek/{date}", name="KekRozsakFrontBundle_eventList") + * @Route("/esemenyek/{date}", name="KekRozsakFrontBundle_eventList", defaults={"date": null}) * @Template() - * @ParamConverter("date", options={"format": "Y-m-d"}) */ - public function listAction(\DateTime $date) + public function listAction($date = null) { - $query = $this->getDoctrine()->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND ((e.startDate < :day AND e.endDate >= :day) OR e.startDate = :day)'); - $query->setParameter('day', $date, \Doctrine\DBAL\Types\Type::DATE); - $events = $query->getResult(); + $realDate = null; - return array( - 'day' => $date, - 'events' => $events, - ); + if ($date === null) { + $query = $this->getDoctrine()->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND (e.startDate >= :day OR (e.startDate <= :day AND e.endDate >= :day))'); + $query->setParameter('day', new \DateTime('now'), \Doctrine\DBAL\Types\Type::DATE); + } else { + $realDate = \DateTime::createFromFormat('Y-m-d', $date); + $query = $this->getDoctrine()->getEntityManager()->createQuery('SELECT e FROM KekRozsakFrontBundle:Event e WHERE e.cancelled = FALSE AND ((e.startDate < :day AND e.endDate >= :day) OR e.startDate = :day)'); + $query->setParameter('day', $realDate, \Doctrine\DBAL\Types\Type::DATE); + } + $events = $query->getResult(); + + return array( + 'day' => $realDate, + 'events' => $events, + ); } /** diff --git a/src/KekRozsak/FrontBundle/Entity/Event.php b/src/KekRozsak/FrontBundle/Entity/Event.php index 7a0580b..1bcc32d 100644 --- a/src/KekRozsak/FrontBundle/Entity/Event.php +++ b/src/KekRozsak/FrontBundle/Entity/Event.php @@ -399,4 +399,20 @@ class Event ) ); } + + /** + * Check if the event happened before a given date + * + * @param DateTime $date + * @return boolean + */ + public function isPast(\DateTime $date = null) + { + if ($date === null) + { + $date = new \DateTime('now'); + } + + return ($this->endDate < $date); + } } diff --git a/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig index 2217ead..0658b8a 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Box/Events.html.twig @@ -38,7 +38,7 @@ OR (event.startDate <= this day AND evend.endDate >= this day) #}
Erre a napra nincsenek kiírva események.
+{% else %} +Nincsenek kiírva későbbi események.
+{% endif %} {% endif %} {% endblock content %} diff --git a/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig b/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig index 7bd96d1..104bc4d 100644 --- a/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig +++ b/src/KekRozsak/FrontBundle/Resources/views/Event/view.html.twig @@ -15,7 +15,7 @@