Dieser Artikel behandelt den Hotfix für die Download-Versionen von Contrexx. Der Hotfix unterstützt Sie bei der Umsetzung der Richtlinien der DSGVO und kann hier heruntergeladen werden.


Wir begrüssen die Richtlinien der DSGVO zum Schutz der Personendaten und haben unsere Software um entsprechende Funktionen ergänzt. Der hier beschriebene Hotfix ergänzt bestehende Download-Installationen um diese Funktionen.


Nutzer von Cloudrexx Cloud befolgen die separate Anleitung.


Inhaltsverzeichnis

  1. Was der Hotfix enthält
    1. Änderungen
      1. Grundeinstellungen
      2. Verzeichnis
      3. Gästebuch
      4. Statistik
      5. Online Shop
      6. Medienverzeichnis
      7. Online Desk
      8. Bildergalerie
      9. Blog
      10. E-Mail Marketing / Newsletter
      11. Formulare / Kontakte
      12. Veranstaltungskalender
      13. News Artikel
      14. Google Analytics
    2. Enthaltene Hotfixes
  2. Einspielen des Hotfixes
    1. Voraussetzungen
      1. Für die Versionen 3.2.0 bis und mit 4.0.0
      2. Für die Version 3.2.0
    2. Übernahme der Code-Änderungen
    3. Ausführen der benötigten Datenbank-Änderungen
      1. Versionen 3.0.0 bis und mit 3.0.4
      2. Versionen 3.1.0 bis und mit 3.4.0
    4. Optionale Einstellungen
      1. Statistik
      2. E-Mail Marketing / Newsletter
      3. Formulare / Kontakte
      4. Veranstaltungskalender
        1. Für die Versionen 3.0.0 bis und mit 3.0.4
        2. Für die Versionen 3.1.0 bis und mit 4.0.0
      5. Datenschutzerklärung und AGBs
      6. Google Analytics
      7. Cookie-Hinweis


Was der Hotfix enthält

Änderungen

Grundeinstellungen

  • Neu gibt es in den Grundeinstellungen (unter Administration > Grundeinstellungen > System > Website) eine Option zur Aktivierung eines Cookie-Hinweises.

Verzeichnis

  • Die Benutzer-Identifikation zur Erfassung der Anzahl Hits wird anonymisiert.
  • IP-Adresse und Hostname werden nicht mehr abgespeichert.

Gästebuch

  • Die IP-Adresse von Gästebuch-Eintragern wird nicht mehr abgelegt.

Statistik

  • Die IP-Adressen und Hostnamen werden pseudonymisiert.
  • Die Erfassung des Referers kann deaktiviert werden.
  • Beim Einsatz von Google Analytics (unter Verwendung des Platzhalters [[GOOGLE_ANALYTICS]] und Hinterlegung der Analytics-ID unter unter Administration > Grundeinstellungen > System > Mehr) werden die IP-Adressen pseudonymisiert.

Online Shop

  • Die Benutzer-Identifikation wird anonymisiert und der Hostname und User-Agent bei Bestellungen nicht mehr abgelegt.
  • Der Text zur Checkbox zur Annahme der AGB wurde um die Annahme der Datenschutzerklärung ergänzt.

Medienverzeichnis

  • Die Benutzer-Identifikation wird anonymisiert und keine IP-Adressen mehr gespeichert.

Online Desk

  • Die Benutzer-Identifikation wird anonymisiert.

Bildergalerie

  • IP-Adressen beim Kommentieren und Stimmen werden nicht mehr abgelegt.

Blog

  • Die Benutzer-Identifikation wird anonymisiert.

E-Mail Marketing / Newsletter

  • Neu gibt es eine Option zur Deaktivierung der Statistik und eine Option zum endgültigen Löschen von Teilnehmern bei der Abmeldung vom Newsletter.

Formulare / Kontakte

  • Neu gibt es eine Option zur Deaktivierung der Speicherung von Kontaktanfragen.
  • Die Erfassung von IP-Adressen, Hostnamen, User-Agent und Sprache kann einzeln deaktiviert werden.

Veranstaltungskalender

  • Bei der Registration werden IP-Adresse und Hostname nicht mehr erfasst.
  • Der Text zur Checkbox zur Annahme der AGB wurde um die Annahme der Datenschutzerklärung ergänzt.

News Artikel

  • Die Benutzer-Identifikation wird anonymisiert.

Google Analytics

  • Die Einbindung via [[GOOGLE_ANALYTICS]]-Platzhalter wird bei aktiviertem Cookie-Hinweis erst nach dessen Annahme aktiv

Enthaltene Hotfixes

Die folgenden Hotfixes sind in diesem Hotfix-Paket enthalten:

Einspielen des Hotfixes

Das Einspielen dieses Hotfixes erfolgt in zwei Schritten:

  1. Voraussetzungen
  2. Übernahme der Code-Änderungen
  3. Ausführen der benötigten Datenbank-Änderungen
  4. Optionale Einstellungen

Voraussetzungen

Die folgenden Hotfixes müssen vor dem Einspielen dieses Hotfixes installiert sein:


Für die Versionen 3.2.0 bis und mit 4.0.0

Für die Version 3.2.0

Übernahme der Code-Änderungen

  1. Laden Sie das Hotfix-Paket von obenstehendem Link herunter.
  2. Im Paket findet sich ein Ordner "CMS_FILES". Darin befindet sich für jede Contrexx-Version ein passender Ordner (z.B. für "Contrexx 3.1 ServicePack 1" der Ordner "3.1.1"). Wählen Sie den passenden Ordner aus.
  3. Erstellen Sie ein Backup der Webseite!
  4. Kopieren Sie die im gewählten Ordner enthaltenen Dateien in das Hauptverzeichnis der Contrexx-Installation und überschreiben Sie dabei existierende Dateien. Achtung: sollte die Installation kundenspezifische Anpassungen enthalten, so müssen Sie die neuen Dateien mit den Bestehenden zusammenführen!

Ausführen der benötigten Datenbank-Änderungen

Führen Sie die für den Hotfix zwingend notwendigen Datenbank-Änderungen aus.

Versionen 3.0.0 bis und mit 3.0.4

## Directory
UPDATE `contrexx_module_directory_dir` SET `lastip` = MD5(`lastip`) WHERE CHAR_LENGTH(`lastip`) < 30 AND `lastip` != '';
ALTER TABLE `contrexx_module_directory_dir` DROP COLUMN `ip`, DROP COLUMN `provider`;
## Guestbook
ALTER TABLE `contrexx_module_guestbook` DROP COLUMN `ip`;
## Shop
UPDATE `contrexx_module_shop_orders` SET `ip` = MD5(`ip`) WHERE CHAR_LENGTH(`ip`) < 30 AND `ip` != '';
ALTER TABLE `contrexx_module_shop_orders` DROP COLUMN `host`, DROP COLUMN `browser`;
## MediaDir
UPDATE `contrexx_module_mediadir_votes` SET `ip` = MD5(`ip`) WHERE CHAR_LENGTH(`ip`) < 30 AND `ip` != '';
UPDATE `contrexx_module_mediadir_entries` SET `last_ip` = MD5(`last_ip`) WHERE CHAR_LENGTH(`last_ip`) < 30 AND `last_ip` != '';
ALTER TABLE `contrexx_module_mediadir_comments` DROP COLUMN `ip`;
## Egov
UPDATE `contrexx_module_egov_orders` SET `order_ip` = MD5(`order_ip`) WHERE CHAR_LENGTH(`order_ip`) < 30 AND `order_ip` != '';
## Gallery
ALTER TABLE `contrexx_module_gallery_comments` DROP COLUMN `ip`;
ALTER TABLE `contrexx_module_gallery_votes` DROP COLUMN `ip`;
## Blog
ALTER TABLE `contrexx_module_blog_comments` CHANGE COLUMN `ip_address` `ip_address` varchar(32) NOT NULL DEFAULT '';
ALTER TABLE `contrexx_module_blog_votes` CHANGE COLUMN `ip_address` `ip_address` varchar(32) NOT NULL DEFAULT '';
UPDATE `contrexx_module_blog_comments` SET `ip_address` = MD5(`ip_address`) WHERE CHAR_LENGTH(`ip_address`) < 30 AND `ip_address` != '';
UPDATE `contrexx_module_blog_votes` SET `ip_address` = MD5(`ip_address`) WHERE CHAR_LENGTH(`ip_address`) < 30 AND `ip_address` != '';
## Newsletter
INSERT INTO `contrexx_module_newsletter_settings` (`setname`, `setvalue`, `status`) VALUES ('statistics','0',1);
## Contact
INSERT INTO `contrexx_module_contact_settings` (`setid`, `setname`, `setvalue`, `status`) VALUES (7,'fieldMetaBrowser','1',1);
INSERT INTO `contrexx_module_contact_settings` (`setid`, `setname`, `setvalue`, `status`) VALUES (8,'storeFormSubmissions','1',1);
## Calendar
### Version 3.0.x
ALTER TABLE `contrexx_module_calendar_registrations` DROP COLUMN `host`, DROP COLUMN `ip_address`;
## News
ALTER TABLE `contrexx_module_news_comments` CHANGE COLUMN `ip_address` `ip_address` varchar(32) NOT NULL DEFAULT '';
UPDATE `contrexx_module_news_comments` SET `ip_address` = MD5(`ip_address`) WHERE CHAR_LENGTH(`ip_address`) < 30 AND `ip_address` != '';
## Config
INSERT INTO `contrexx_settings` (`setid`, `setname`, `setvalue`, `setmodule`) VALUES (107, 'cookieNote', 'off', '1');

Versionen 3.1.0 bis und mit 4.0.0

## Directory
UPDATE `contrexx_module_directory_dir` SET `lastip` = MD5(`lastip`) WHERE CHAR_LENGTH(`lastip`) < 30 AND `lastip` != '';
ALTER TABLE `contrexx_module_directory_dir` DROP COLUMN `ip`, DROP COLUMN `provider`;
## Guestbook
ALTER TABLE `contrexx_module_guestbook` DROP COLUMN `ip`;
## Shop
UPDATE `contrexx_module_shop_orders` SET `ip` = MD5(`ip`) WHERE CHAR_LENGTH(`ip`) < 30 AND `ip` != '';
ALTER TABLE `contrexx_module_shop_orders` DROP COLUMN `host`, DROP COLUMN `browser`;
## MediaDir
UPDATE `contrexx_module_mediadir_votes` SET `ip` = MD5(`ip`) WHERE CHAR_LENGTH(`ip`) < 30 AND `ip` != '';
UPDATE `contrexx_module_mediadir_entries` SET `last_ip` = MD5(`last_ip`) WHERE CHAR_LENGTH(`last_ip`) < 30 AND `last_ip` != '';
ALTER TABLE `contrexx_module_mediadir_comments` DROP COLUMN `ip`;
## Egov
UPDATE `contrexx_module_egov_orders` SET `order_ip` = MD5(`order_ip`) WHERE CHAR_LENGTH(`order_ip`) < 30 AND `order_ip` != '';
## Gallery
ALTER TABLE `contrexx_module_gallery_comments` DROP COLUMN `ip`;
ALTER TABLE `contrexx_module_gallery_votes` DROP COLUMN `ip`;
## Blog
ALTER TABLE `contrexx_module_blog_comments` CHANGE COLUMN `ip_address` `ip_address` varchar(32) NOT NULL DEFAULT '';
ALTER TABLE `contrexx_module_blog_votes` CHANGE COLUMN `ip_address` `ip_address` varchar(32) NOT NULL DEFAULT '';
UPDATE `contrexx_module_blog_comments` SET `ip_address` = MD5(`ip_address`) WHERE CHAR_LENGTH(`ip_address`) < 30 AND `ip_address` != '';
UPDATE `contrexx_module_blog_votes` SET `ip_address` = MD5(`ip_address`) WHERE CHAR_LENGTH(`ip_address`) < 30 AND `ip_address` != '';
## Newsletter
INSERT INTO `contrexx_module_newsletter_settings` (`setname`, `setvalue`, `status`) VALUES ('statistics','0',1);
## Contact
INSERT INTO `contrexx_module_contact_settings` (`setid`, `setname`, `setvalue`, `status`) VALUES (7,'fieldMetaBrowser','1',1);
INSERT INTO `contrexx_module_contact_settings` (`setid`, `setname`, `setvalue`, `status`) VALUES (8,'storeFormSubmissions','1',1);
## Calendar
### Version 3.1+
ALTER TABLE `contrexx_module_calendar_registration` DROP COLUMN `host_name`, DROP COLUMN `ip_address`;
## News
ALTER TABLE `contrexx_module_news_comments` CHANGE COLUMN `ip_address` `ip_address` varchar(32) NOT NULL DEFAULT '';
UPDATE `contrexx_module_news_comments` SET `ip_address` = MD5(`ip_address`) WHERE CHAR_LENGTH(`ip_address`) < 30 AND `ip_address` != '';
## Config
INSERT INTO `contrexx_settings` (`setid`, `setname`, `setvalue`, `setmodule`) VALUES (107, 'cookieNote', 'off', '1');

Optionale Einstellungen

Zur Einhaltung der DSGVO müssen entweder die folgenden Einstellungen ausgeführt werden oder die AGB und/oder die Datenschutzerklärung auf der Webseite entsprechend formuliert sein.

Statistik

Die folgenden Abfragen löschen personenbezogene Daten aus den Statistiken, deaktivieren die Erfassung des Referers und aktivieren die Pseudonymisierung von IP-Adressen:

UPDATE `contrexx_stats_config` SET `status` = 0 WHERE `name` = 'count_referer';
TRUNCATE TABLE `contrexx_stats_referer`;
UPDATE `contrexx_stats_config` SET `status` = 1 WHERE `name` = 'exclude_identifying_info';
UPDATE `contrexx_stats_visitors` SET `client_ip` = CONCAT(SUBSTRING_INDEX(`client_ip`, '.', 3), '.*'), `client_host` = CONCAT('*.', SUBSTR(`client_host`, LOCATE('.', `client_host`) + 1));

E-Mail Marketing / Newsletter

Die folgenden Abfragen deaktivieren die Newsletter-Statistiken, löschen bestehende Statistik-Daten und aktivieren das automatische Löschen von Teilnehmern bei deren Abmeldung:

UPDATE `contrexx_module_newsletter_settings` SET `setvalue`='0' WHERE `setname`='statistics';
DELETE FROM `contrexx_module_newsletter_email_link_feedback`;
UPDATE `contrexx_module_newsletter_settings` SET `setvalue`='1' WHERE `setname`='defUnsubscribe';

Formulare / Kontakte

Die folgenden Abfragen deaktivieren die Erfassung personenbezogener Daten, sowie die Speicherung von Kontaktformulardaten im System. Zudem wird jedem Formular ein Pflichtfeld zur Annahme der AGB und Datenschutzerklärung hinzugefügt:

UPDATE `contrexx_module_contact_settings` SET `setvalue` = '0' WHERE `setname` IN ('fieldMetaHost', 'fieldMetaLang', 'fieldMetaIP', 'fieldMetaBrowser');
UPDATE `contrexx_module_contact_settings` SET `setvalue` = '0' WHERE `setname` = 'storeFormSubmissions';
INSERT INTO `contrexx_module_contact_form_field`  (`id_form`, `type`, `special_type`, `is_required`, `order_id`) SELECT form.`id`, 'checkbox', '', '1', 10000 FROM `contrexx_module_contact_form` AS form;
INSERT INTO `contrexx_module_contact_form_field_lang` (`fieldID`, `langID`, `name`, `attributes`) SELECT field.`id`, lang.`id`, 'Ich habe die <a href="[[NODE_AGB]]" target="_blank">Gesch&auml;ftsbedingungen</a> und die <a href="[[NODE_PRIVACY]]" target="_blank">Datenschutzerkl&auml;rung</a> gelesen und akzeptiere diese.', '' FROM `contrexx_module_contact_form_field` AS field, `contrexx_languages` AS lang WHERE field.`type` = 'checkbox' AND field.`order_id` = 10000 AND lang.`frontend` = '1' AND lang.`id` = 1;
INSERT IGNORE INTO `contrexx_module_contact_form_field_lang` (`fieldID`, `langID`, `name`, `attributes`) SELECT field.`id`, lang.`id`, 'I have read the <a href="[[NODE_AGB]]" target="_blank">terms and conditions</a> and the <a href="[[NODE_PRIVACY]]" target="_blank">data privacy statement</a> and accept them.', '' FROM `contrexx_module_contact_form_field` AS field, `contrexx_languages` AS lang WHERE field.`type` = 'checkbox' AND field.`order_id` = 10000 AND lang.`frontend` = '1';

Im Anschluss müssen Sie die zu den Formularen gehörenden Inhaltsseiten aktualisieren. Öffnen Sie dazu die Bearbeitungsmaske jedes Formulars (unter Content Management -> Formulare) und speichern Sie diese ab. Bejahen Sie die Frage, ob die Inhaltsseite aktualisiert werden soll.

Veranstaltungskalender

Die folgenden Abfragen ergänzen alle Registrationsformulare um ein Pflichtfeld zur Annahme der AGB und der Datenschutzerklärung.

Für die Versionen 3.0.0 bis und mit 3.0.4
INSERT INTO `contrexx_module_calendar_form_fields` (`note_id`, `type`, `required`, `order`, `key`, `name`) SELECT event.`id`, 3, 1, 9999999, 20, 'Ich habe die <a href="[[NODE_AGB]]" target="_blank">Gesch&auml;ftsbedingungen</a> und die <a href="[[NODE_PRIVACY]]" target="_blank">Datenschutzerkl&auml;rung</a> gelesen und akzeptiere diese.' FROM `contrexx_module_calendar` AS event WHERE event.`id` NOT IN (SELECT `note_id` FROM `contrexx_module_calendar_form_fields` WHERE `key` = 20);
Für die Versionen 3.1.0 bis und mit 4.0.0
INSERT INTO `contrexx_module_calendar_registration_form_field` (`form`, `type`, `required`, `order`, `affiliation`) SELECT form.`id`, 'agb', 1, 9999999, '' FROM `contrexx_module_calendar_registration_form` AS form;
INSERT INTO `contrexx_module_calendar_registration_form_field_name` (`field_id`, `form_id`, `lang_id`, `name`, `default`) SELECT field.`id`, field.`form`, lang.`id`, 'Einwilligung', '' FROM `contrexx_module_calendar_registration_form_field` AS field, `contrexx_languages` AS lang WHERE field.`type` = 'agb' AND field.`order` = 9999999 AND lang.`frontend` = '1' AND field.`id` NOT IN (SELECT `field_id` FROM `contrexx_module_calendar_registration_form_field_name`);

Datenschutzerklärung und AGBs

Aktualisieren Sie die AGBs und die Datenschutzerklärung der Webseite entsprechend den gewählten Einstellungen und dem Umgang mit personenbezogenen Daten. Klicken Sie dazu unter "Content Management" -> "Content Management" auf das Plus-Symbol und suchen Sie in der Spalte "Anwendung" nach "Agb" für die AGBs und "Privacy" für die Datenschutzerklärung.

Google Analytics

Sie können (z.B. in der Datenschutzerklärung) folgenden Quellcode einfügen um dem Seitenbesucher die Möglichkeit zu geben GoogleAnalytics zu deaktivieren:

<a href="javascript:gaOptout('[[SUCCESS_MESSAGE]]');">Google Analytics deaktivieren</a>

Ersetzen Sie [[SUCCESS_MESSAGE]] durch die gewünschte Erfolgsnachricht.

Cookie-Hinweis

Sie können in den Grundeinstellungen im ersten Tab einen Cookie-Hinweis aktivieren. Um diesen anzupassen, bearbeiten Sie die Datei cadmin/template/ascms/CookieNote.html entsprechend Ihren Wünschen.

Um die Sprachplatzhalter zu verändern, bearbeiten Sie die entsprechenden Einträge in den Dateien lang/.../frontend.php (ersetzen Sie dabei "..." durch die jeweilige Sprache).