Roundcube: Kolab Kalender plugin einbauen

Roundcube ist ein optisch ansprechender und ausbaufähiger Webmailer. Standardmäßig wird Roundcube nur mit einen Mailer und einem Adressbuch installiert. Wäre Roundcube nicht perfekt, wenn Admina noch einen Kalender einbauen könnte? Genau diesen Vorgang möchte ich mit diesen Artikel beschreiben.

Die Beschreibung basiert auf einer erfolgreichen Installation von Roundcube 0.9.1 auf einen Kubuntu 12.04 LTS. Roundcube nutzt in dieser Beschreibung eine MySQL Datenbank. Auf jeden Befehl gehe ich hier nicht ein – Wichtiger ist es, den grundsätzlichen Vorgang zu begreifen, weil Admina dann Roundcube auch sehr einfach mit anderen plugins erweitern kann.

Im Wesentlichen besteht die Einbindung des plugins aus 3 Schritten:

  1. Ablegen des plugins im Ordner /plugins.
  2. Einbindung des plugins durch einen Eintrag in main.inc.php
  3. Aktivierung der plugin- Konfiguration

Detailliert:

  • Als ersten Schritt machen wir den download des plugin Pakets. Hierzu bietet sich auf der Linux Konsole z.B. im Ordner /tmp folgender Befehl an:
sudo wget 'download Adresse'

… also zum Beispiel:

wget https://gitlab.awesome-it.de/kolab/roundcube-plugins/repository/archive.zip

Alternativ kann nach der Installation des git Befehls folgender Aufruf zum download des plugin Pakets genutzt werden:

git clone https://gitlab.awesome-it.de/kolab/roundcube-plugins.git plugins-caldav

Mit diesen Befehl wird das plugin Paket herabgeladen, aus dem dann der /calendar und /libcalendering Ordner entsprechend dieser Beschreibung kopiert werden kann.

  • Wir entpacken den download.
  • Danach kopieren wir aus dem entpackten Archiv die Ordner /calendar und /libcalendaring in den Installationsorder von Roundcube nach /plugins.
  • Diese zwei Ordner mit Inhalt dem Besitzer übergeben, unter dem der Webserver läuft (hier: www-data):
    sudo chown -R www-data:www-data calendar bzw. libcalendaring
  • Als nächstes müssen wir die Roundcube Datenbank erweitern:
    sudo mysql -u root -p roundcubeDB < roundcube/plugins/calendar/drivers/database/SQL/mysql.initial.sql
  • Natürlich muss der Befehl entsprechend der eigenen Umgebung (Ordnerpfade, Datenbankname) angepasst werden!
  • Danach wechselt Admina in den Installationsordner Roundcube’s nach /config und erweitert die main.inc.php um das plugin ‚calendar‘. Dazu tragen wir in (ca.)Zeile 409 bei $rcmail_config [‚plugins‘] in die Klammer des Arrays ‚calendar‘ ein.
  • Damit ist das calendar- plugin in Roundcube integriert!
  • Aktiviere einige plugin- Funktionen, indem Du im Roundcube Installationsordner /plugins/calendar die config.inc.php.dist nach config.inc.php umbenennst. Damit bekommt der Kalender u.a. einige Farboptionen unter Einstellungen -> Bereich -> Kalender -> Allgemein hinterlegt.
  • Nach der nächsten Anmeldung an Roundcube sollte der Kalender zur Verfügung stehen.

Beachte!

Mir sind nur drei Stolpersteine untergekommen:

  1. Sollte nur eine weiße Fläche erscheinen, ist ein Plugin nicht richtig eingebunden. siehe: $rcmail_config[‚plugins‘].
  2. Nach der Anmeldung ist der Kalender zwar da, aber es lassen sich keine Termine abspeichern. Mit einen neuen Roundcube Anwender geht es aber! Mir hat es geholfen, die Zeit- und Datums- Einstellungen unter Einstellungen/Benutzeroberfläche – unter dem Anwender, unter dem es nicht(!) geht – nochmal auf andere und dann auf die gewünschten Werte einzustellen um Termine im Kalender abspeichern zu können.
  3. Habe ich vergessen.

Wichtig könnten noch folgende Hinweise sein:

Die Datums- Einstellungen in roundcube/plugins/calendar/config.inc.php sollten der roundcube/config/main.inc.php entsprechen. In meinen Fall waren keine Anpassungen notwendig. Und noch ein kleiner Tipp: Wenn Ihr links oben in der Ecke – nach einer Roundcube Anmeldung – auf das „Über“ klickt, bekommt Ihr eine Liste angezeigt, welche plugins Roundcube als aktiviert erkennt.

Have fun …

[UPDATE 19.11.2016]

Mit diesen Befehlszeilen wird mit dem git Befehl nur das entsprechende Paket – also nicht die ganze plugin Sammlung – herunter geladen:

git clone https://gitlab.com/kolab-roundcube-plugins/calendar.git
git clone https://gitlab.com/kolab-roundcube-plugins/libcalendaring.git

Übrigens, im Kalender Paket von awesome-it.de soll auch ein  CalDAV client  – nicht nur iCal – eingebaut sein. Unterschiede siehe hier. Mehr in der readme des Pakets.

Und eine Übersicht weiterer Roundcube plugins findet sich hier.

Sortiert nach:   neuste | älteste | beste Bewertung
Johann
Gast

Danach wechselt Admina in den Installationsordner Roundcube’s nach /config und erweitert die main.inc.php um das plugin ‘calendar’ und ‘libcalendaring’. Dazu tragen wir in (ca.)Zeile 409 bei $rcmail_config [‚plugins‘] in die Klammer des Arrays ‘calendar’,’libcalendaring’ ein.

Das ist so nicht richtig. libcalendaring muss NICHT eingebunden werden, denn im System selbst wird nur nach der config.inc.php geschaut, die Library wird automatisch geladen, wenn sie sich unter ~/roundcube/plugins befindet.

Mathias R. Ludwig
Gast

Danke Johann, für Deinen Hinweis. Ich habe es ohne libcalendering positiv getestet und den Text entsprechend korrigiert! Ich hatte bei der Erstinstallation dieses Plugins Probleme mit der Darstellung des Kalenders und gedacht, mit der Einbindung dieses Ordners den Fehler beseitigt zu haben…

Jogie
Gast

Hallo,
vielen Dank für die Anleitung!
Konnte dadurch den Kalender in Betrieb nehmen.
2 Problem/Fragen hab ich.
1. Die Monatsansicht funktioniert einwandfrei. Die Wochen und Tagansicht ist komplett verbugt. (Beide Ansichten sind einzeilig.und minimal, sodass sich dort nicht arbeiten lässt) Hat jemand eine Idee?
2. Ist es möglich den Kalender nun auch per IMAP auf die mobilen Endgerät, sprich iPhone etc zu syncen? Oder benötigt man dafür noch ein anderes Plugin?

Vielen Dank und Gruß

Mathias R. Ludwig
Gast
Hallo Jogie, danke für das feedback. Zu Frage 1, kann ich Dir nur allgemeine Tipps geben, da ich dieses Problem nicht hatte. Vielleicht solltest Du mal den cache vom Browser löschen. Ich hatte außerdem öfters Darstellungsprobleme, wenn ich einen proxy im Browser eingetragen hatte. Außerdem würde ich einen neuen Anwender anlegen und mich mal mit dem anmelden. Vielleicht hast Du in deinen Browser ein plugin installiert, dass eine korrekte Anzeige verhindert. Zum sychonisieren von MDA’s fehlt noch ein plugin. In der Konfiguration vom Kalender plugin kann man zwar auswählen, ob man seinen Kalender mit google syncen will – also der… Read more »
Paul
Gast

halllo,

danke für deine tolle Anleitung!
Bei mir funktioniert eigentlich alles, bis auf die Einstellungen des Kalenders.
Da steht nur Allgemein und darunter 1.

habe aber die config.inc.php.dist nach config.inc.php umbenannt.

bin ratlos..

LG

Mathias R. Ludwig
Gast
Hallo Paul, schön das (fast) alles geklappt hat. Ich habe versucht, deinen Fehler nachzustellen: ohne Erfolg. Aber teste mal folgende Ansätze: 1. Schau mal in die config.inc.php und trage im ersten rcmail_config statt ‚database‘ den Wert ‚kolab‘ ein. Mit ‚google‘ bekam ich nur eine weiße Wand. 2. Da der Wert 1 ein Hinweis auf ‚falsch‘ sein kann, vermute ich mal, dass der calendar nicht auf Funktionsbibliotheken zugreifen kann. Ist der Ordner ‚libcalendaring‘ vollständig mit brauchbaren Berechtigungen an seinen richtigen Ort? 3. Im calendar-plugin-Ordner findet sich eine README. In dieser steht ein Satz, der mit ‚important‘ beginnt. Und dieser Satz weißt… Read more »
Alex
Gast

Paul, ich hatte das Problem auch. Habe in calendar.php in Zeile 320 (nach: $p[‚blocks‘][‚view‘][’name‘] = $this->gettext(‚mainoptions‘); ) folgendes eingefügt:

$p[‚current‘] = 1;

Jetzt funktioniert alles. Aber keine Ahnung warum.
LG Alex

Thorben Möllgaard
Gast

Erstmal VIELEN Dank für die tolle Anleitung!

Ich hatte das gleiche Problem wie Paul. Habe aber festgestellt, dass anfangs alle Zeiten normal angezeigt werden. Wenn man dann unter Einstellungen (wo ich auch „Allgemein 1“ stehen habe) einmal auf speichern klickt (reine Neugierde 😉 ), dann hat man das Problem, dass die Uhrzeiten in der Wochen- und Monatsansicht verschwinden.

Mathias R. Ludwig
Gast
Danke für Dein Kompliment! Und reine Neugierde finde ich gut, denn es macht keinen Sinn sich zu sagen, so müßte es gehen, und Fakt ist: Es geht nicht. Also muss man manchmal kreativ werden und etwas ungewöhnliches machen. Aber ich kann Dir nur das selbe wie Paul sagen: 1. Teste deine PHP Version (mind. 5.3), 2. setze mal in config.inc.php statt ‚database‘ den Wert ‚kolab‘ (oder umgedreht), 3. ist der Ordner ‚libcalendaring‘ an seinen richtigen Platz? 4. ist die PHP DateTime/DateInterval Funktion in der php.ini besonders konfiguriert? 5. Hast Du die Ordner deinen Webserver User (www-data, …) gegeben? 6. Mittlerweile… Read more »
Marco
Gast

Vielen Dank für die schöne Anleitung. Endlich kann ich meine Termine auch in Roundcube verwalten.

Mit den hilfreichen Kommentaren konnte ich auch bereits alle Probleme lösen.

Mathias R. Ludwig
Gast

Danke für das feedback! Dann hat sich meine/unsere investierte Zeit schon gelohnt.

wpDiscuz