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

Verzeichnis

Gästebuch

Statistik

Online Shop

Medienverzeichnis

Online Desk

Bildergalerie

Blog

E-Mail Marketing / Newsletter

Formulare / Kontakte

Veranstaltungskalender

News Artikel

Google Analytics

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`);

SQL

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).