Einen Halbjahreskalender mit dem Events Manager erstellen

8. Dezember 2012 - Events Manager, wordpress

Die Zeit vergeht, und ich habe immer noch keinen Halbjahreskalender, der die Termine meines Kunden und  Sonn- und Feiertage  anzeigen kann. Dieses Mal probiere ich den Events Manager aus.

Der Events Manager beschreibt sich so:

Aside from being the most flexible events plugin for styling without modifying code, Events Manager is made with developers in mind, meaning that any aspect of the plugin can be hooked into and modified to suit your needs!

Das stimmt mich hoffungsvoll & positiv…

Für Kalendar stehen zwei verschiedene Ausgabe-Formate zur Verfügung:

  • …/wp-content/plugins/events-manager/templates/templates/calendar-full.php    ( The Full Calendar)
  • …/wp-content/plugins/events-manager/templates/templates/calendar-small.php   (The Small Calendar)

Diese kann man in den eigenen Theme-Ordner kopieren und überschreiben:

../wp-content/themes/my-theme…./plugins/events-manager/templates/calendar-full.php

Das ist ok für reine kosmetische Veränderungen, aber ich brauche ein anderes Format! Leider stellt sich heraus, dass die Leitungen, die die Ausgabeformate mit Daten aus dem Plugin-Kern versorgen, entweder nur eine nicht limitierte Anzahl von Events oder alle Tage eines vorzugebenden Monats mit den eventuell darin liegenden Events  liefern können.

Alle Tage eines Jahres oder eines Vierteljahres mit den darin liegenden Events werden nicht unterstützt, es sei denn, man greift in den Plugin-Kern ein, was ich aber unbedingt vermeiden will.

Marcus Sykes, der den Events Manager betreut und  immer schnell auf Fragen antwortet, schlägt vor, sich alle benötigten Events eines Zeitraums zu holen und dann den Kalendar selbst zu bauen.

Die Events holt man z.B. mit


$events = EM_Events::get(array('scope'=>array('2013-01-01','2013-07-01')));

Da dieses Array riesig ist und nur wenige Daten daraus benötigt werden, erzeuge ich mir ein kleineres Array mit dem Eventdatum als Key:


if($events){
//Go through the events
foreach($events as $event) {
$eventful_days[$event->start_date] = array('name'=>$event->event_name,'content'=>$event->post_content);
}

}

Dann baue ich den Kalender auf, trage bei jedem Tag als Klasse ein, ob es ein Wochentag, Samstag, Sonntag, Feiertag oder Eventtag ist, damit man die Ausgabe später formatieren kann.

Zur  Berechnung der beweglichen Feiertage (die alle am Osterdatum hängen) gibt es HIER noch eine Information

Ansehen kann man sich den Kalender HIER