Project

General

Profile

Actions

Termine/Events im Kalender anzeigen (in Bearbeitung)

Voraussetzung: Kalender (calendar) Module

Um eigene Termine oder Events im Kalender (calendar) Module anzeigen zu lassen benötigt es nur ein paar Schritte im eigenen Module.

Controllers

Um die Termine im Kalender anzeigen zu lassen müsst Ihr mit den Controller eure Einträge aus der Datenbank lesen.

<?php
/**
 * @copyright Ilch 2.0
 * @package ilch
 */

namespace Modules\Events\Controllers;

use Modules\Events\Mappers\Events as EventsMapper;

class Events extends \Ilch\Controller\Frontend
{
    public function indexAction()
    {
        $eventsMapper = new EventsMapper();

        $this->getLayout()->setFile('modules/calendar/layouts/events');

        $this->getView()->set('eventList', $eventsMapper->getEntriesForJson($this->getRequest()->getQuery('start'), $this->getRequest()->getQuery('end')));
    }
}

Views

Nun brauchen wir für den Controller auch eine View indem man ein Array mit eure Termine aufbaut.

Im Veranstaltungen (events) Module wurde diese unter "application/modules/events/views/events/" abgelegt.

<?php
$events = [];

// event entries
if ($this->get('eventList')) {
    foreach ($this->get('eventList') as $eventList) {
        $e = [];
        $e['title'] = $this->escape($eventList->getTitle());
        $e['start'] = $eventList->getStart();
        $e['end'] = $eventList->getEnd();
        $e['color'] = '#C52C66';
        $e['url'] = $this->getUrl('events/show/event/id/' . $eventList->getId());

        array_push($events, $e);
    }
}

echo json_encode($events);

Hier werden alle Veranstaltungen in ein Array geschrieben welches mit Informationen von der Veranstaltung gefüllt wird.

Pflicht

$e['title']

Durch $e['title'] = 'Titel'; bekommt der Termin im Kalender einen Title welches beim Veranstaltungen (events) Module der Veranstaltungsname ist.

$e['start']

Um einen Startzeitpunkt (Datum/Uhrzeit|2007-02-08 15:18:21) des Termines anzugeben benötigen wir $e['start'] = '2017-03-27 15:00:00'.

$e['end']

Das Ende des Termines geben wir mit $e['end'] = '2017-03-27 17:00:00' an.

Optional

$e['color']

Um den Kalendereintrag eine Farbe (Hexcode) zu geben kann man dies mit der Angabe durch $e['color'] = '#C52C66' machen-

$e['url']

Mit der Angabe von $e['url'] = 'http://meineSeite.de' können wir den Kalendereintrag Verlinken.

Updated by Veldscholten, Kevin about 2 years ago · 4 revisions