Magento DSGVO Kontaktform

Möchte man im Rahmen des Inkrafttretens der neuen EU Datenschutzgrundverordnung (DSGVO) in Magento das Kontaktformular abändern, so dass der Name kein Pflichtfeld mehr ist und so zu einem freiwillig auszufüllenden Feld verändert wird, sind einige Dinge zu beachten. Zuerst entfernt man die "required"-Klasse und das "Sternchen" in der Datei \app\design\frontend\PAKET\TEMPLATE\template\contacts\form.phtml, so dass dies das Ergebnis ist:

 

 

 

<label for="name"><?php echo Mage::helper('contacts')->__('Name') ?></label>

<div class="input-box">

                <input name="name" id="name" title="<?php echo Mage::helper('contacts')->__('Name') ?>" value="<?php echo $this->escapeHtml($this->helper('contacts')->getUserName()) ?>" class="input-text" type="text" />

</div>

 

Soweit erst einmal unkompliziert. Das Problem ist nun, dass die Überprüfung des Namens nicht nur vom "required" abhängt, sondern fest in Magento eingebaut. Um das zu ändern, erstellen wir eine kleine Extension, die diese Überprüfung aushebelt:

Zuerst erstellen wir (Paketnamen / Extensionbezeichnungen frei wählbar) die Datei

 

\app\code\local\Econcess\Contacts\etc\config.xml

 

mit dem Inhalt

 

<config>

    <modules>

        <Econcess_Contacts>

            <version>1.0.0</version>

        </Econcess_Contacts>

    </modules>

                <frontend>

                               <routers>

                                                <contacts>

                                                               <args>

                                                                               <modules>

                                                                                              <econcess_contacts before="Mage_Contacts">Econcess_Contacts</econcess_contacts>

                                                                               </modules>

                                                               </args>

                                               </contacts>

                               </routers>

                </frontend>

</config>

 

Um das Modul zu aktivieren, erstellen wir dann noch die Datei

 

\app\etc\modules\Econcess_Contacts.xml

 

mit dem Inhalt

 

 

<?xml version="1.0"?>

<config>

    <modules>

        <Econcess_Contacts>

            <active>true</active>

            <codePool>local</codePool>

        </Econcess_Contacts>

    </modules>

</config>

 

Nach diesen Vorbereitungen erstellen wir die Datei

 

\app\code\local\Econcess\Contacts\controllers\IndexController.php

 

als Kopie der Datei

 

\app\code\core\Mage\Contacts\controllers\IndexController.php

 

und kommentieren die "true"-Zuweisung der booleschen Variablen "$error" einfach aus, so dass

 

 

if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {

                $error = true;

}

 

zu

 

 

if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {

                //$error = true;

}

 

wird. Dann sind wir fertig. Getestet in Magento 1.9.1.0.