MR Event: ein Plugin für die Verwaltung von Ereignissen

MR Event ist ein WordPress-Plugin, das es erlaubt, schnell und einfach Beiträge mit zusätzlichen Datums- und Zeitangaben zu versehen, und diese in der Sidebar des Blogs als eine Liste „bevorstehender Ereignisse“ anzeigen zu lassen.

Beispiele für Ereignisse sind z.B. Veranstaltungen, Sendetermine oder Geburtstage.

Die Datums- und Zeitangaben werden auf der "Beitrag erstellen" Seite in einem zusätzlichen Element, das MR Event anzeigt, zum Beitrag hinzugefügt und als Metaangabe zum Beitrag in der Datenbank abgespeichert.

MR Event basiert auf RS Event von Robert Sargant.

Kompatibilität: Das Plugin sollte mit allen Versionen von 2.0x bis 3.4.2 funktionieren.

Download

mr-event110.zip
mr-event111.zip

Installieren

Folgende Schritte führen zur erfolgreichen Installation:

  1. Kopiere die Dateien mr-event.php, mr-event-de_DE.mo und mr-event-de_Sie.mo in das Plugin-Verzeichnis wp-content/plugins/
  2. Aktiviere MR Event auf der Plugins-Seite der Admin-Oberfläche.

Benutzen

Screenshot Dateneingabe
Um Ereignisse hinzuzufügen, muss beim Erstellen oder Bearbeiten eines Beitrags einfach ein Datum im Abschnitt MR Event der Sidebar eingegeben werden.

Die Felder Tag, Monat und Jahr sind verpflichtend, während die Felder Stunde und Minute optional sind. Wenn jedoch bei der Formatierung der Ausgabe Zeitangaben verwendet werden, wird bei Daten ohne Zeitangaben 0 Uhr ausgegeben.

Anpassen

Screenshot OptionenMR Event kann über eine eigene Optionen-Seite im Admin-Menü angepasst werden.

Die verschiedenen Einstellmöglichkeiten bedeuten:

  • Titel (title):

    Der Titel bei Verwendung als Widget. Default ist Bevorstehende Ereignisse.

  • HTML-Ausgabe (event_html):

    Die Angaben zur Formatierung der einzelnen Ereignisse. Es gibt eine Reihe von Variablen, die zur Anpassung der Anzeige benutzt werden können:

    • %URL% — die URL des Beitrags zu diesem Ereignis
    • %DATE% — das Datum des Ereignisses, formatiert nach den Einstellungen unter date_format
    • %TIME% — die Zeit des Ereignisses, formatiert nach den Einstellungen unter time_format
    • %TITLE% — der Titel des Ereignisses

    Doppelte Anführungszeichen (") in der event_html können zu Problemen führen. Anstatt sie direkt einzugeben, kann man entweder \" oder " verwenden.

    Vorgegeben ist die Formatierung
    "%DATE%: <a href="%URL%">%TITLE%</a>".

  • „Keine Ereignisse“ Meldung (no_events_msg):

    Die Ausgabe, wenn es keine Ereignisse in der vorgegebenen Zeitspanne gibt.

    Vorgegeben ist Keine bevorstehenden Ereignisse.

  • Datumsformat (date_format):

    Der Stil, in dem das Datum formatiert wird. Hinweise zu den möglichen Formatangaben finden sich im PHP Handbuch im Abschnitt date().

    Vorgegeben ist "j M".

  • Zeitformat (time_format):

    Ähnlich wie Datumsformat, nur für die Zeit.

    Vorgegeben ist "H:i".

  • Zeitspanne (timespan):

    Die maximale Anzahl von Tagen, für die Ereignisse angezeigt werden sollen.

    Vorgegeben ist 365.

  • Zeige bis zu __ Ereignisse (max_events):

    Die maximale Anzahl von Ereignissen, die angezeigt werden sollen.

    Es ist auch möglich, die Zeitspanne auf einen sehr hohen Wert zu setzen (z.B. 36500 für 100 Jahre) und mit Hilfe des Wertes für max_events die Anzahl der angezeigten Ereignisse unabhängig vom zeitlichen Abstand zu begrenzen.

    Vorgegeben ist 0 („zeige alle“).

  • Nach Datum gruppieren? (group_by_date):

    Wenn diese Option auf Nein (false) gestellt ist, wird jedes Ereignis gesondert als individuelles Listenelement <li> ausgegeben.Wenn diese Option auf Ja (true) gestellt ist, dann wird das Datumsformat für jeden Beitrag geprüft. Ereignisse mit dem gleichen Datumsformat werden gemeinsam in einem Listenelement <li> gruppiert, wobei das Datum und die dazugehörigen Beiträge durch einen Zeilenumbruch <br /> getrennt werden.Durch das Setzen unterschiedlicher Datumsformate können die Ereignisse nach unterschiedlichen Datumseigenschaften gruppiert werden, z.B. „Y“ um nach Jahren zu gruppieren oder „W Y“ um nach Wochen zu gruppieren.

    Voreingestellt ist false.

  • Jahr ignorieren? (ignore_year):

    Wenn diese Option auf Ja (true) gestellt ist, wird die Jahresangabe ignoriert und Ereignisse werden unabhängig vom Jahr gelistet.

    Voreingestellt ist false.

Anpassen für Fortgeschrittene

Für die folgenden Einstellmöglichkeiten sind geringe PHP-Kenntnisse nötig, wobei das Kopieren des Codes in die Templatedateien aber die Hauptarbeit ist.

Die Funktion mr_event_list erwartet ein einzelnes optionales Argument, ein assoziatives Array der verschiedenen Optionen, die geändert werden sollen. Alle Arrayelemente sind optional.

Um die Ausgabe anzupassen, muss mr_event_list folgendermaßen aufgerufen werden:

<li><h2>Veranstaltungen</h2>
  <?php $mr_event_arg = array
(
"timespan"      => 28,
"date_format"   => "jS M 'y",
"time_format"   => "g:i A",
"group_by_date" => true,
"event_html"    => "<a href='%URL%'&gt;%TITLE% (%TIME%)</a>",
"max_events"    => 0,
"ignore_year"    => 0
);
mr_event_list($mr_event_arg); ?>
</li>

Die Schlüsselnamen des Array, die zur Anpassung genutzt werden können, stehen oben in Klammern nach den Bezeichnungen der Optionen.

Die Funktion mr_event_list_qf erwartet Angaben zu den verschiedenen Optionen, die geändert werden sollen, im Query-Format sowie als zweiten optionalen Parameter ein Format für die HTML-Ausgabe. Alle Angaben sind optional. Beispielcode:

<li><h2>Veranstaltungen</h2>
  <?php mr_event_list_qf('timespan=14&date_format=d. M&ignore_year=1', '<a href="%URL%"&gt;%TITLE%  (%DATE%)</a>') ?>
</li>

Anwendungsbeispiele

Eine Liste von Geburtstagen der nächsten zwei Wochen mit einem Datumsformat wie 1. Okt.:

mr_event_list_qf('timespan=14&date_format=j. M.&ignore_year=1');

Beispiel 1

Eine Liste der nächsten zehn Veranstaltungen, sofern sie spätestens in einem Jahr sind:

mr_event_list_qf('max_events=10');

Beispiel 2

Eine Liste der Sendetermine der Lieblingssendung in den nächsten 50 Tagen:

mr_event_list_qf('timespan=50&date_format=j.n.&time_format=G:i', 
'%DATE%, %TIME% Uhr: <a href="%URL%">%TITLE%</a>');

Beispiel 3

Entwicklung

  • MR Event 1.11 — 18. September 2012
    • Neuer Parameter „category“
  • MR Event 1.10 — 26. Mai 2011
    • Kleiner Fehler bei der Anzeige der Optionen korrigiert
    • Sprachdatei ergänzt
  • MR Event 1.09 — 22. Februar 2011
    • Probleme mit der Sprache korrigiert
  • MR Event 1.07 — 30. Juni 2009
    • Probleme mit dem Datumsformat korrigiert
  • MR Event 1.05 — 24. Juli 2008
    • Anpassung an Versionierung in WP 2.6
  • MR Event 1.04 — 11. April 2008
    • Fehlerkorrektur: Ausgabe no_event-text
  • MR Event 1.03 — 9. April 2008
    • Prüfung auf WP 2.5-Kompatibilität
    • Anpassung an Änderungen in der Adminoberfläche von WordPress 2.5
    • Korrekturen beim erzeugten Widget
  • MR Event 1.02 — 12. Juli 2006
    • Korrektur eines Tippfehlers, der dazu führte, dass die Minutenangaben bei einer Stundenangabe von 0 Uhr nicht korrekt verarbeitet wurden.
  • MR Event 1.01 — 15. Juni 2006
    • Kleinere Vereinfachungen am Code
  • MR Event 1.0 — 17. Mai 2006
    • Vollständige Lokalisation inkl. deutscher Sprachdateien
    • Optionsseite im Adminbereich
    • Neue Funktion mr_event_list_qf mit Übergabe der Parameter im Queryformat
    • Neue Option ignore_year
  • Original: RS Event 0.6 — 16. April 2006

Das könnte Dich auch interessieren...

149 Antworten

  1. Michael Arens sagt:

    Hallo Matthias,

    ich habe die gleichen Probleme mit dem Plugin.

    Kannst DU in etwa abschätzen wann Du dazu kommst?

    Gruß
    Michael

  2. Matthias sagt:

    Fehler gefunden und korrigiert: Download der neuen Version

  3. Jörn sagt:

    Danke für das Update, hat auch mir geholfen mit WP 2.8 und falschem Datum
    Grüsse, Jörn

  4. Alexander sagt:

    Super, danke, Matthias!

  5. Ronny sagt:

    Hallo Matthias,

    ich habe da ein kleines Problem mit der Anzeige der Uhrzeit. Wenn ich in MR Event die Uhrzeit 15Uhr angebe steht bei mir 13 Uhr.. kann ich das irgendwie anpassen ? Nimmt dein Plugin die Zeit von meiner Datenbank oder von wo?

    Für Hilfe wäre ich sehr Dankbar.

    Gruß
    Ronny

  6. Matthias sagt:

    @Ronny: Tut mir leid, ist mir noch nicht untergekommen. Könnte an der Einstellung der Zeitzone liegen.

  7. Paul sagt:

    Das Plugin scheint sehr interessant zu sein und ist vielleicht genau das, wonach ich suche.
    Mein Anliegen: Artikeln über kommende Konzerten in einer Kneipe mit einem Datum zu versehen. Diese sollen dann nur auf der Seite „Termine“ angezeigt werden ( was durch Kategorien realisierbar ist) und als vollwertige Artikeln fungieren.
    Das scheint mir auf den ersten Blick alles mit Hilfe dieses Plugins machbar zu sein.

    Der Knackpunkt ist jetzt, dass die Artikeln ins Archiv wandern sollen, wenn das Konzert stattfand.
    Was passiert eigentlich mit den Events, wenn ich verstreichen, bleiben die weiterhin in der Liste stehen?

    Vielleicht ist alles nur mit kleinen Anpassungen möglich oder muss ich tiefer rein?
    Über Lösungsvorschläge würde ich mich sehr freuen! 🙂

    Alles Gute,
    Paul

  8. Matthias sagt:

    Termine, die verstrichen sind, tauchen in der Liste nicht mehr auf.

  9. Piepe sagt:

    Super plugin, danke dafür!

    Eine Anregung habe ich noch: Ich benutze das plugin als Geburtstagskalender. Doch leider hat man nicht immer die zukünftigen Geburtstage im Blick, ein nachträgliches Gratulieren ist angesagt. Hilfreich wäre daher eine Option, die z.B. die Termine der letzen x Tage weiter in der Liste hält, dafür vielleicht kursiv dargestellt. Oder als eigene Rubrik „verpasste Termine“. Was meinst Du?

    Und noch eine Frage in die Runde: Ich werde eine beträchtliche Zahl von Geburtstagen verwalten. Was mache ich mit den ganzen Beiträgen, damit sie mir nicht ständig über den Weg laufen? Als Entwurf lassen? Publizieren und die Sichtbarkeit einschränken? Oder kann ich die irgenwo verstecken?

    Danke im voraus!

  10. Piepe sagt:

    Nachtrag:
    Auch wenn das Jahr ignoriert wird, die Uhrzeit wird nicht ignoriert. Damit zum Beispiel ein Geburtstag auch den ganzen Tag auf der Seite angezeigt wird, muss ich als Uhrzeit 23:55 Uhr auswählen.

  11. Jan sagt:

    Hallo Matthias,
    dein Plugin ist genau das, wonach ich schon lange gesucht habe. Leider tritt bei mir das Problem mit immer noch auf (jedes event hat das Datum von heute). Die neueste Version habe ich natürlich installiert.
    Kannst du oder jemadn anderes mit weiterhelfen?

    Viele Grüße
    Jan

  12. Jan sagt:

    oh hups, jetzt gehts auf einmal…

  13. Matthias sagt:

    Das freut mich 🙂

  14. Jan sagt:

    Hallo,

    vielen Dank für die Informationen auf der Seite. Dein Anwendungsbeispiel mit den Terminen „Datum, Konzert“ z.B. ist genau das, was ich machen möchte. Leider habe ich nicht richtig kapiert wie ich das hinkriege. Ich habe wahrscheinlich zu wenig Ahnung von WordPress. Muss ich die von die angegebenen Zeilen z.B. in die „mr_event_list_qf“ einfügen ? Wenn ja wo genau kommen die hin. Ich bekomme nur fatale Fehlermeldungen. Vielleicht kannst du mal das ganz konkrete Beispiel mit dem Konzert und der Ausstellung angeben. Das wäre supernett.
    Vielen Dank im Voraus !

    Jan

  15. Matthias sagt:

    Die Dokumentation sagt eigentlich alles. Die Termine werden im Backend unter MR-Event eingegeben und mit mr_event_list_qf(); in einer Templatedatei ausgegeben.

  16. Jan sagt:

    Hallo,
    ich setzte Mr. Event auf http://www.muk-giessen.de (Mittlere Spalte: Programm) ein und habe das Problem, dass immer der heutige Termin nicht mehr angezeigt wird. Er verschwindet zu früh aus der Liste. An welcher Stelle im Code kann man diese Grenze anpassen?
    Herzlichen Dank
    Jan

  17. Matthias sagt:

    S. meinen Kommentar vom 7. Oktober 2009 🙂

  18. Chris sagt:

    Es wäre hilfreich, wenn es das Plugin hier zum Download gäbe http://wordpress.org/extend/plugins/, damit man innerhalb des WordPress Backends über Updates automatisch informiert würde.

  19. Matthias sagt:

    Das stimmt. Leider ist die Lizenz nicht kompatibel, so dass das nicht geht.

  20. Oliver sagt:

    Hallo,

    eine super Sache dieses Plugin.
    Ich suche zusätzlich nach einer Möglichkeit die verschiedenen Veranstaltungen auch nach PLZ zu sortieren. Gibt es dafür auch Plugin’s oder könnte man dafür dieses „aufbohren“ ?

    Danke
    Oliver

  21. Matthias sagt:

    Ein Plugin ist mir ad hoc nicht bekannt. Dieses Plugin hier könnte man natürlich entsprechend erweitern. Da man dafür ein zusätzliches benutzerdefiniertes Feld braucht, ist es leider nicht mit einer Änderung getan.

  22. Thomas sagt:

    Das Eingabefeld für Events taucht ja beim Erstellen von Seiten auf. Gibt es eine Möglichkeit, mit Seiten statt Artikeln verknüpfte Events ebenfalls mit ausgeben zu lassen?

  23. Andreas sagt:

    Hallo,

    kurze Frage zum Plugin: Können auch Seiten als Event klassifiziert werden, damit diese in der Eventliste ausgegeben werden? Mit Posts funktioniert das wunderbar, allerdings müsste ich Seiten als Event kennzeichnen. Die Custom Fields werden ja bei Seiten bereits angelegt, ich bekomme sie lediglich nicht in der Eventliste angezeigt.

    Können Sie mir freundlicherweise einen Tipp geben, wie ich zusätzlich zu den Posts auch Seiten auslesen kann?

    Besten Dank!

  24. Matthias sagt:

    Seiten als Event: Ist leider nicht ohne Weiteres möglich. In allen Datenbankabfragen müsste die einschränkende Bedingung AND
    post_type = 'post'
    entfernt werden.

  25. Fabs sagt:

    Durch das Update auf 2.9 scheint wieder ein ähnliches Problem wie mit dem Update auf 2.8 aufzutreten.

    Auf meiner Homepage kannst dus dir vielleicht mal anschauen wenn du Zeit hast.

  26. Matthias sagt:

    Ich sehe nichts Auffälliges? Das Problem beim Update auf 2.8. war ja, dass das Erstellungsdatum anstelle des Termins angezeigt wurde. Das scheint hier nicht der Fall…

  27. Fabs sagt:

    Das ist ja strange: Aus irgend einem Grund hat er einfach die Daten in der Datenbank verändert.

    Ich nehme also alles zurück: Dein Script hat keinen Fehler und läuft super mit 2.9

  28. Matthias sagt:

    Da bin ich aber beruhigt 🙂

  29. Michael sagt:

    Hallo Matthias

    Dein Plugin ist wirklich super – genau das, was ich gesucht habe, habe früher mit Alternativen wie „Event Calender“ und ähnlichem experimentiert aber das hat nie zufriedenstellend funktioniert…
    Ich habe nun ein einziges Manko: Ich habe ein Blognetzwerk am laufen, und das „Hauptblog“ läuft auf Englisch. Ich habe nun deutsche Blogs im Netzwerk und würde gerne das MR Event Backend in diesen Blogs auch auf Deutsch sehen (alle anderen Plugins kommen auch auf Deutsch wenn ich die Blogsprache auf Deutsch stelle)… Eine Idee?

    Michael

  30. Matthias sagt:

    Hallo Michael, das Plugin ist ja schon uralt und es gab vor kurzem (WordPress 2.7) 🙂 eine Änderung bei der Lokalisation.

    Mit der neuen Version sollte es wieder gehen.

  31. axel sagt:

    Hallo Matthias,

    läuft Mr. Event mit WP 3.x?

    Seit dem Updaten von WP zeigt Mr. Event bei mir keine Termine mehr an.

    Danke für Hinweise

    Axel

  32. axel sagt:

    Sorry, ich hatte unpassende Argumente übergeben

    Es tut einwandfrei.

    Gruß Axel

  33. Matthias sagt:

    Gut! Manchmal muss man Kommentare einfach nur ein bisschen länger in der Moderationsschleife lassen, dann erledigen sie sich von selbst 🙂

  34. Sebastian sagt:

    Hallo Matthias,

    Danke für das tolle Plugin!

    obwohl ich eine ziemliche php-null bin, versuche ich gerade dein Plugin mit einem anderen Plugin zu kombinieren, habe da aber ein Problem. Kannst du mir einen Tipp geben?

    Ganz grob: Das andere Plugin speichert in der MetaUser-Tabelle zu jedem registrierten User eine Stadt. Außerdem habe ich auch bei Mr. Event ein Feld zugefügt, dass zu jedem Mr. Event-Eintrag in der MetaPost-Tabelle ebenfalls eine Stadt eintgrägt. Ich möchte jetzt, dass Mr. Event nur die Einträge ausgibt, bei denen die Stadt bei MetaUser und MetaPost übereinstimmen, der registrierte User also nur die Events angezeigt bekommt, die in seiner Stadt stattfinden.

    Ich bin schon ziemlich weit und habe alle Post-IDs in einem Array gespeichert, bei denen die Post-Stadt mit der User-Stadt übereinstimmt. Ich schaffe es jedoch nicht, die Ausgabe von Mr. Event nach diesen Post-IDs zu filtern.

    Bevor ich lange aushole: Ist so eine längere Anfrage ok für dich?

    Viele Grüße
    Sebastian

  35. Sebastian sagt:

    Hi Matthias,

    Entwarnung: ich hab’s nach langem basteln mit zwei Foreach-Schleifen und einer if-Abfrage geschafft. Funktioniert super, ich verlinke das Ergebnis mal, wenn’s fertig ist …

    Viele Grüße

  36. Tobias sagt:

    Hallo Matthias,

    ich habe ein Problem mit einem Termin.

    Der zugehörige Artikel wurde gelöscht und ist somit nicht mehr aufrufbar.
    Allerdings ist der Termin weiterhin sichtbar und kann nun nicht mehr gelöscht/editiert werden.

    Gibt es hierfür eine Lösung?

    Vielen Dank und gruß aus Münster
    Tobias

  37. Matthias sagt:

    Hallo Tobias,

    ich kann das Problem nicht nachvollziehen. Wird vielleicht ein Cache-Plugin verwendet? Ist der betreffende Artikel noch im Papierkorb? Dann hilft vielleicht endgültiges Löschen.

  38. Tobias sagt:

    Hallo Matthias,
    Artikel war noch im Papierkorb.
    Problem gelöst. Danke!

  39. Thomas sagt:

    Besteht irgendwie die Möglichkeit ein zweites Datum (Enddatum) einzugeben um eine Zeitspanne zu visualisieren.
    Also „06. April bis 07. April“ also „%DATE% bis %Enddate%“?

  40. Matthias sagt:

    Kurze Antwort: Im Moment nicht.

  41. Thomas sagt:

    😉 Kein Problem, hab es jetzt etwas profaner gelöst und einfach das Datum in den Titel der einzelnen Artikel zu Beginn gesetzt und zeige das Datum von MR-Event im Widget einfach nicht mehr an.
    Das funktioniert auch 😉

  42. Daniel sagt:

    @ Thomas
    Das PlugIn Post Expirator ist in Verbindung mit MR-Event eigentlich genau das Richtige für Deine Ausgabe einer Zeitspanne.

    Einen Workaround dafür und zur individuellen Abfrage und Listung von MR Event Daten direkt im loop, habe ich hier auf meiner Site mal zusammen gefasst: http://www.danielreiche.de/wordpress_web/individuelle-terminliste-unter-wordpress-mit-mr-event.html

  43. Hallo Welt! Der Plugin ist Super!!!

    ich habe folgende Frage: Kann man einem Beitrag mehreren Einträge im Kalender Zuweisen. Das währe echt super!!!
    Also ein Beitrag (Event) wird in der Auflistung mehrere Male datiert und aufgelistet.

    Danke im Voraus und vielen Dank an den Entwickler!!!!!

  44. Matthias sagt:

    Kurze Antwort: Das ist leider nicht möglich.

  45. Ok Danke!
    Eine weitere Frage:
    Wenn eine Webseite zweisprachig geführt wird, bildet sich der Name des Events aus beiden Sprachen. Also doppelt.

    Zweisprachig ist ok, aber kann der Name nicht durch , oder – getrennt werden?

    Gruß
    Mitja

  46. Matthias sagt:

    Das Plugin gibt den Titel der Beiträge so aus, wie er in der Datenbank gespeichert ist. Man müsste die Stellen, an denen der Titel (event->title) verwendet wird, durch die Funktionen aus dem Plugin, das für die Mehrsprachigkeit zuständig ist, ergänzen.

  47. DerOetzi sagt:

    Hallo das Plugin ist echt super eine Option fehlt mir jedoch:

    Ich würde gern wenn ich das Widget innerhalb einer Kategorieübersicht eingebunden habe, nur Termine aus dieser Kategorie angezeigt werden.

  48. Matthias sagt:

    Wie ich sehe, hast Du eine Lösung gefunden 🙂 In Version 1.11 des Plugins gibt es den Parameter „category“ (nur Termine dieser Kategorie anzeigen). Damit könnte man was basteln…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.