Dodatek kalendarza dla roundcube nie znajduje się w drzewie ports. Dlatego też źródła trzeba pobrać z gitlab. A następnie wykonać niezbędną konfigurację. Cały poniższy przepis powstał na bazie howto (patrz źródła z sieci internet).
Pobranie źródeł za pomocą git
cd /tmp
git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
Przekopiowanie plików do katalogu z roundcube
cp -pr /tmp/roundcubemail-plugins-kolab/plugins/calendar /usr/local/www/roundcube/plugins/
cp -pr /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring /usr/local/www/roundcube/plugins/
Instalacja dodatkowych pakietów
Za pomocą własnego repozytorium pakietów należy doinstalować następujące oprogramowanie:
pkg install -Uy www/sabredav
Konfiguracja pluginu
Utworzenie właściwych plików
mv /usr/local/www/roundcube/plugins/calendar/config.inc.php.dist /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php
cp -p /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php /usr/local/www/roundcube/plugins/calendar/config.inc.php
Nałożenie ustawień lokalnych (w stosunku do domyślnych)
diff -udp /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php /usr/local/www/roundcube/plugins/calendar/config.inc.php
--- /usr/local/www/roundcube/plugins/calendar/config.dist.inc.php 2017-11-23 21:38:55.096519000 +0100
+++ /usr/local/www/roundcube/plugins/calendar/config.inc.php 2017-11-23 22:15:16.949681000 +0100
@@ -47,19 +47,19 @@ $config['calendar_date_format_sets'] = a
);
// general date format (only set if different from default date format and not user configurable)
-// $config['calendar_date_format'] = "yyyy-MM-dd";
+$config['calendar_date_format'] = "yyyy-MM-dd";
// time format (only set if different from default date format)
-// $config['calendar_time_format'] = "HH:mm";
+$config['calendar_time_format'] = "HH:mm";
// short date format (used for column titles)
-// $config['calendar_date_short'] = 'M-d';
+$config['calendar_date_short'] = 'M-d';
// long date format (used for calendar title)
-// $config['calendar_date_long'] = 'MMM d yyyy';
+$config['calendar_date_long'] = 'yyyy MMM d';
// date format used for agenda view
-// $config['calendar_date_agenda'] = 'ddd MM-dd';
+$config['calendar_date_agenda'] = 'ddd MM-dd';
// timeslots per hour (1, 2, 3, 4, 6)
$config['calendar_timeslots'] = 2;
@@ -141,13 +141,13 @@ $config['calendar_include_freebusy_data'
// To override the SMTP port or connection method, provide a full URL like 'tls://somehost:587'
// This will add a link to invitation messages to allow users from outside
// to reply when their mail clients do not support iTip format.
-$config['calendar_itip_smtp_server'] = null;
+$config['calendar_itip_smtp_server'] = 'tls://localhost.bsdserwis.com:587';
// SMTP username used to send (anonymous) itip messages
-$config['calendar_itip_smtp_user'] = 'smtpauth';
+$config['calendar_itip_smtp_user'] = '************';
// SMTP password used to send (anonymous) itip messages
-$config['calendar_itip_smtp_pass'] = '123456';
+$config['calendar_itip_smtp_pass'] = '************';
// show virtual invitation calendars (Kolab driver only)
$config['kolab_invitation_calendars'] = false;
Dodanie tabel do bazy danych
cat /usr/local/www/roundcube/plugins/calendar/drivers/database/SQL/postgres.initial.sql | psql -U roundcube roundcubemail
Poprawka dla plugins/libcalendaring/libcalendaring.php
W pliku /usr/local/www/roundcube/plugins/libcalendaring/libcalendaring.php należy dodać kod, jak na poniższej łatce:
--- /usr/local/www/roundcube/plugins/libcalendaring/libvcalendar.php.orig 2017-11-23 21:38:55.000000000 +0100
+++ /usr/local/www/roundcube/plugins/libcalendaring/libvcalendar.php 2017-11-25 20:59:46.199850000 +0100
@@ -21,6 +21,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+require_once ("/usr/local/www/sabredav/vendor/autoload.php");
+
use \Sabre\VObject;
use \Sabre\VObject\DateTimeParser;
Pozwala to na możliwość wyświetlania zawartości pojedynczego emaila.
Włączenie pluginu w konfiguracji całego panelu
Na koniec pozostaje uruchomić plugin calendar w całym panelu. W tym celu należy zmienić plik /usr/local/www/roundcube/config/config.inc.php:
// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
[...]
'calendar',
);