Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: DSGVO + Newsletteranmeldung mit CheckBox Datenschutzerklärung?

    karsta.de

    • Experte
    • Beiträge: 3.156
    @golferteddy

    Das mit der Checkbox läst sich machen. Meines Erachtens müsste man der Bestätigungsmail auch die Datenschutzinformationen mit ranhängen. (Ist nur so eine Überlegung)

    Neue Anleitung für Checkbox zur Kenntnisnahme des Datenschutzes zum Newsletter.

    newsletter.php
    SUCHE:
    Code: PHP  [Auswählen]
    // captcha
    $use_captcha = array('newsletter');

    DAVOR EINFÜGEN:
    Code: PHP  [Auswählen]
    defined('DISPLAY_PRIVACY_CHECK') or define('DISPLAY_PRIVACY_CHECK', 'true');

    ----------------------

    SUCHE:
    Code: PHP  [Auswählen]
    if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
      $email = xtc_db_prepare_input($_POST['email']);
      if (check_secure_form($_POST) === false) {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      } elseif (xtc_validate_email($email) != false) {
        if (!in_array('newsletter', $use_captcha) || (isset($_SESSION['customer_id']) && MODULE_CAPTCHA_LOGGED_IN == 'False')) {
          $newsletter->auto = true;
        }
        $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
        $info_message = $newsletter->message;
      } else {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      }
    }

    ERSETZE:
    Code: PHP  [Auswählen]
    if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
      $privacy = isset($_POST['privacy']) && $_POST['privacy'] == 'privacy' ? true : false;
      $email = xtc_db_prepare_input($_POST['email']);
      if (check_secure_form($_POST) === false) {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      } elseif (xtc_validate_email($email) != false) {
        if (!in_array('newsletter', $use_captcha) || (isset($_SESSION['customer_id']) && MODULE_CAPTCHA_LOGGED_IN == 'False')) {
          $newsletter->auto = true;
        }
        $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
        $info_message = $newsletter->message;
      } else {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      }
            if (DISPLAY_PRIVACY_CHECK == 'true' && empty($privacy)) {
             $info_message = ENTRY_PRIVACY_ERROR;
             $newsletter->message_class = 'error';
        }
    }
     

    -----------

    SUCHE:
    Code: PHP  [Auswählen]
    $smarty->assign('CHECK_DEL', xtc_draw_radio_field('check', 'del', $del));

    DANACH EINFÜGEN:
    Code: PHP  [Auswählen]
    //datenschutz
    if (DISPLAY_PRIVACY_CHECK == 'true') {
          $smarty->assign('PRIVACY_CHECKBOX', xtc_draw_checkbox_field('privacy', 'privacy', $privacy, 'id="privacy"'));
          $smarty->assign('PRIVACY_LINK', $main->getContentLink(2, MORE_INFO, $request_type));
        }

    ############################

    templates/tpl_modified/lang/lang_german.section
    [newsletter]
    DANACH EINFÜGEN:
    text_privacy_accept_newsletter = 'Ich habe Ihre Datenschutzinformationen zur Kenntnis genommen '

    Wer weitere Sprachen anbietet, ebenfalls anpassen.

    ############################

    templates/tpl_modified/module/newsletter.html

    SUCHE:
    Code: PHP  [Auswählen]
        </div>
        <div class="button_right">{$BUTTON_SEND}</div>

    DAVOR EINSETZEN: (oder wo man die Checkbox zum Datenschutz haben will.)
    Code: PHP  [Auswählen]
          {if $PRIVACY_CHECKBOX}
          <br />
          <table>
            <tr>
              <td class="checkbox">{$PRIVACY_CHECKBOX}</td>
              <td class="midi td_full"><strong><label for="privacy">{#text_privacy_accept_newsletter#}</label></strong> {$PRIVACY_LINK}</td>
           </tr>
          </table>
          {/if}

    Wer modifiedShop V2.0.3. verwendet und seine Dateien nicht geändert hat, kann auf eigene Gefahr die Dateien aus dem Anhang verwenden. Sprachdateien sind nicht enthalten.

    Eigentlich wäre es besser eine eigene Abfrage im Admin zu haben, ob man eine Checkbox im Newsletter anzeigen will oder nicht, aber dazu müsste man die Datenbank erweitern und ich dachte es ist besser das dann lieber mit dem Update der neuen Version zu veranlassen.

    BG kgd

    AGI

    • modified Team
    • Beiträge: 305
    • Geschlecht:
    Guten Morgen,

    ok, ihr habt mich überzeugt. Ich ziehe meine Aussage zur checkbox zurück. Sie tut ja keinem weh.

    Ich habe mir angeschaut, was geschieht, wenn ich beim Anlegen des Kundenkontos die Newsletter-Checkbox aktiviere und war sofort alarmiert:
    In der Kundendatenbank wird der Newsletter-Wunsch sofort auf "ja" gesetzt. Unabhängig davon, ob die double-Opt-Mail bestätigt wird oder nicht. Über das Gutschein-Modul und das Interne Mail-Modul (wenn es das noch gibt) können nun alle Kunden angemail werden, deren Gutscheineinstellung auf "Ja" steht, unabhängig davon, ob eine Gutscheinanmeldung je bestätigt wurde.

    Ich schlage daher auch vor, in den Dateien create_account.php und create_guest_account.php diese Zeile zu ändern:
    Code: PHP  [Auswählen]
    'customers_newsletter' => (int)$newsletter,
    in
    Code: PHP  [Auswählen]
    'customers_newsletter' => 0,

    Man könnte die Entscheidung ob "customers_newsletter: Ja/Nein" abhängig von der Newsletter Anmeldung/Abmeldung machen, wobei dann aber wieder die Newsletter-EMail-Adresse mit einem möglichen Kundenkonto abgeglichen wird, was wohl DSGVO-Technisch wieder kommuniziert werden muss.

    Viele Grüße
    AGI

    golferteddy

    • Schreiberling
    • Beiträge: 404
    • Geschlecht:
    @kgd

    Ganz herzlichen Dank !!!
    Jetzt kann der 25.5. kommen ......

    An der Stelle sind wir jetzt auf jeden Fall sauber ...

    LG von den Teddybären

    longchuan

    • Viel Schreiber
    • Beiträge: 640
    • Geschlecht:
    @kgd
    Wenn man deine zur Verfügung gestellte Daten benutzt, dann steht der Button Anmelden da besser wäre laut Markus Absenden siehe der Thread modified responsive template.
    LG

    karsta.de

    • Experte
    • Beiträge: 3.156
    Das kann jeder machen wie er/sie will, deshalb habe ich ja zusätzlich eine Anleitung geschrieben. Bei mir im Shop steht sowieso auf einigen Button was völlig anderes als im Demoshop.

    Außerdem sind die angehängten Dateien fürs Standard Template > tpl_modified und nicht fürs tpl_modified_responsive.

    BG kgd

    Timm

    • Fördermitglied
    • Beiträge: 6.257
    Offtoptic:
    besser wäre laut Markus Absenden siehe der Thread modified responsive template.

    Markus hat die Lösung in dem Thread bereitgestellt. Aufgefallen ist es allerdings p3e hier Newsletter an/abmelden im Responsive Template falsch. Soviel Zeit muss sein.  ;-)

    artemtyse

    • Fördermitglied
    • Beiträge: 60
    Echt RIESEN KINO hier.

    Vielen Dank für die Bereitstellung.

    Eingesetzt in 2.0.3.0 und auf Anhieb gelaufen.

    Den Beutelschneidern die einen alle paar Wochen zu etwas Neuem zwingen, sollte man echt das Handwerk legen.
    Gerade für diejenigen, die nicht unendlich Kohle investieren können und auch nicht über ein so tolles Forum Team Hilfe bekommen, oder eben nicht einfach umschreiben können, muß das eine Katastrophe sein.
    Und die Abzocker machen genau mit denen wieder Kohle.
    Danke nochmals für die Lösung.

    michail223

    • Neu im Forum
    • Beiträge: 7
    Erstmal vielen Dank an kgd für die Bereitstellung der Checkbox. Der Einbau nach deiner Anleitung vom 19. April 2018 (20:34:34) hat in 2.0.3.0. tadellos funktioniert, checkbox ist da und Fehlermeldung bei nicht-anklicken kommt auch. Aber: Trotz Fehlermeldung (Bitte akzeptiere unsere Datenschutzrichtlinien, damit du fortsetzen kannst...) wird das Mail mit dem Aktivierungslink rausgeschickt und die Mailadresse angelegt (als noch nicht bestätigt), falls die die Checkbox NICHT angeklickt wurde. Da sollte das Aktivierungsmail aber wohl nicht raus...

    Hat wer ne Idee, an welcher Stelle da der Fehler liegen könnte? Meine newsletter.php:

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: newsletter.php 10076 2016-07-15 09:28:07Z GTB $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce www.oscommerce.com
       (c) 2003   nextcommerce www.nextcommerce.org
       (c) 2003 XT-Commerce
       
       XTC-NEWSLETTER_RECIPIENTS RC1 - Contribution for XT-Commerce http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))
       by Matthias Hinsche http://www.gamesempire.de
       
       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    require ('includes/application_top.php');

    if (!defined('MODULE_NEWSLETTER_STATUS') || MODULE_NEWSLETTER_STATUS == 'false') {
      xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
    }

    defined('DISPLAY_PRIVACY_CHECK') or define('DISPLAY_PRIVACY_CHECK', 'true');
     
    // captcha
    $use_captcha = array('newsletter');
    if (defined('MODULE_CAPTCHA_ACTIVE')) {
      $use_captcha = explode(',', MODULE_CAPTCHA_ACTIVE);
    }
    defined('MODULE_CAPTCHA_CODE_LENGTH') or define('MODULE_CAPTCHA_CODE_LENGTH', 6);
    defined('MODULE_CAPTCHA_LOGGED_IN') or define('MODULE_CAPTCHA_LOGGED_IN', 'True');

    // create smarty elements
    $smarty = new Smarty;

    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

    // include needed functions
    require_once (DIR_FS_INC.'xtc_validate_email.inc.php');
    require_once (DIR_FS_INC.'secure_form.inc.php');
    require_once (DIR_WS_CLASSES.'class.newsletter.php');

    $info_message = '';
    $newsletter = new newsletter();

    if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
      $privacy = isset($_POST['privacy']) && $_POST['privacy'] == 'privacy' ? true : false;
      $email = xtc_db_prepare_input($_POST['email']);
      if (check_secure_form($_POST) === false) {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      } elseif (xtc_validate_email($email) != false) {
        if (!in_array('newsletter', $use_captcha) || (isset($_SESSION['customer_id']) && MODULE_CAPTCHA_LOGGED_IN == 'False')) {
          $newsletter->auto = true;
        }
        $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
        $info_message = $newsletter->message;
      } else {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      }
            if (DISPLAY_PRIVACY_CHECK == 'true' && empty($privacy)) {
             $info_message = ENTRY_PRIVACY_ERROR;
             $newsletter->message_class = 'error';
        }
    }

    // Accountaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'activate')) {
      $newsletter->ActivateAddress($_GET['key'], $_GET['email']);
      $info_message = $newsletter->message;
      if ($newsletter->message_class == 'info') {
        $smarty->assign('activated', true);
      }
    }

    // Accountdeaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'remove')) {
      $newsletter->RemoveFromList($_GET['key'], $_GET['email']);
      $info_message = $newsletter->message;
    }

    $breadcrumb->add(NAVBAR_TITLE_NEWSLETTER, xtc_href_link(FILENAME_NEWSLETTER, '', 'SSL'));

    require (DIR_WS_INCLUDES.'header.php');

    if (in_array('newsletter', $use_captcha) && (!isset($_SESSION['customer_id']) || MODULE_CAPTCHA_LOGGED_IN == 'True')) {
      $smarty->assign('VVIMG', '<img src="'.xtc_href_link(FILENAME_DISPLAY_VVCODES, '', 'SSL') .'" alt="Captcha" />');
      $smarty->assign('INPUT_CODE', xtc_draw_input_field('vvcode', '', 'size="'.MODULE_CAPTCHA_CODE_LENGTH.'" maxlength="'.MODULE_CAPTCHA_CODE_LENGTH.'"', 'text', false));
    }

    $smarty->assign('text_newsletter', TEXT_NEWSLETTER);
    $smarty->assign('info_message', $info_message);
    if ($newsletter->message_class != '') {
      $smarty->assign('message_class', $newsletter->message_class);
    }
    $smarty->assign('FORM_ACTION', xtc_draw_form('sign', xtc_href_link(FILENAME_NEWSLETTER, 'action=process', 'SSL')).secure_form());
    $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', ((isset($_GET['email']) && xtc_db_input($_GET['email'])!='') ? xtc_db_input($_GET['email']):((isset($_POST['email']) && xtc_db_input($_POST['email']))?xtc_db_input($_POST['email']):''))));

    if(isset($_POST['check']) && $_POST['check'] == 'inp') {$inp = 'true'; $del = '';}
    if(isset($_POST['check']) && $_POST['check'] == 'del') {$inp = ''; $del = 'true';}  

    $smarty->assign('CHECK_INP', xtc_draw_radio_field('check', 'inp', $inp));
    $smarty->assign('CHECK_DEL', xtc_draw_radio_field('check', 'del', $del));
      //datenschutz
    if (DISPLAY_PRIVACY_CHECK == 'true') {
          $smarty->assign('PRIVACY_CHECKBOX', xtc_draw_checkbox_field('privacy', 'privacy', $privacy, 'id="privacy"'));
          $smarty->assign('PRIVACY_LINK', $main->getContentLink(2, MORE_INFO, $request_type));
        }
    $smarty->assign('BUTTON_SEND', xtc_image_submit('button_send.gif', IMAGE_BUTTON_LOGIN));
    $smarty->assign('FORM_END', '</form>');

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/newsletter.html');
    $smarty->assign('main_content', $main_content);

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    if (!defined('RM'))
      $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>

    karsta.de

    • Experte
    • Beiträge: 3.156
    Ist jetzt schwer zu sagen.
    Ich habe es eben bei mir noch einmal getestet, bei mir wird nur eine Mail mit Aktivierungslink gesendet, wenn ich den Datenschutz bestätige.

    BG kgd

    [edit]
    Habe es mir deine newsletter.php nochmal angesehen.

    Bitte nimm mal dieses Script:
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: newsletter.php 10076 2016-07-15 09:28:07Z GTB $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce www.oscommerce.com
       (c) 2003   nextcommerce www.nextcommerce.org
       (c) 2003 XT-Commerce
       
       
       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    require ('includes/application_top.php');

    if (!defined('MODULE_NEWSLETTER_STATUS') || MODULE_NEWSLETTER_STATUS == 'false') {
      xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
    }

    defined('DISPLAY_PRIVACY_CHECK') or define('DISPLAY_PRIVACY_CHECK', 'true');
     
    // captcha
    $use_captcha = array('newsletter');
    if (defined('MODULE_CAPTCHA_ACTIVE')) {
      $use_captcha = explode(',', MODULE_CAPTCHA_ACTIVE);
    }
    defined('MODULE_CAPTCHA_CODE_LENGTH') or define('MODULE_CAPTCHA_CODE_LENGTH', 6);
    defined('MODULE_CAPTCHA_LOGGED_IN') or define('MODULE_CAPTCHA_LOGGED_IN', 'True');

    // create smarty elements
    $smarty = new Smarty;

    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

    // include needed functions
    require_once (DIR_FS_INC.'xtc_validate_email.inc.php');
    require_once (DIR_FS_INC.'secure_form.inc.php');
    require_once (DIR_WS_CLASSES.'class.newsletter.php');

    $info_message = '';
    $newsletter = new newsletter();

    if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
      $privacy = isset($_POST['privacy']) && $_POST['privacy'] == 'privacy' ? true : false;
      $email = xtc_db_prepare_input($_POST['email']);
      if (check_secure_form($_POST) === false) {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      } elseif (xtc_validate_email($email) != false) {
        if (!in_array('newsletter', $use_captcha) || (isset($_SESSION['customer_id']) && MODULE_CAPTCHA_LOGGED_IN == 'False')) {
          $newsletter->auto = true;
        }
        $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
        $info_message = $newsletter->message;
      } else {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      }
            if (DISPLAY_PRIVACY_CHECK == 'true' && empty($privacy)) {
             $info_message = ENTRY_PRIVACY_ERROR;
             $newsletter->message_class = 'error';
        }
    }

    // Accountaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'activate')) {
      $newsletter->ActivateAddress($_GET['key'], $_GET['email']);
      $info_message = $newsletter->message;
      if ($newsletter->message_class == 'info') {
        $smarty->assign('activated', true);
      }
    }

    // Accountdeaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'remove')) {
      $newsletter->RemoveFromList($_GET['key'], $_GET['email']);
      $info_message = $newsletter->message;
    }

    $breadcrumb->add(NAVBAR_TITLE_NEWSLETTER, xtc_href_link(FILENAME_NEWSLETTER, '', 'SSL'));

    require (DIR_WS_INCLUDES.'header.php');

    if (in_array('newsletter', $use_captcha) && (!isset($_SESSION['customer_id']) || MODULE_CAPTCHA_LOGGED_IN == 'True')) {
      $smarty->assign('VVIMG', '<img src="'.xtc_href_link(FILENAME_DISPLAY_VVCODES, '', 'SSL') .'" alt="Captcha" />');
      $smarty->assign('INPUT_CODE', xtc_draw_input_field('vvcode', '', 'size="'.MODULE_CAPTCHA_CODE_LENGTH.'" maxlength="'.MODULE_CAPTCHA_CODE_LENGTH.'"', 'text', false));
    }

    $smarty->assign('text_newsletter', TEXT_NEWSLETTER);
    $smarty->assign('info_message', $info_message);
    if ($newsletter->message_class != '') {
      $smarty->assign('message_class', $newsletter->message_class);
    }
    $smarty->assign('FORM_ACTION', xtc_draw_form('sign', xtc_href_link(FILENAME_NEWSLETTER, 'action=process', 'SSL')).secure_form());
    $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', ((isset($_GET['email']) && xtc_db_input($_GET['email'])!='') ? xtc_db_input($_GET['email']):((isset($_POST['email']) && xtc_db_input($_POST['email']))?xtc_db_input($_POST['email']):''))));

    if(isset($_POST['check']) && $_POST['check'] == 'inp') {$inp = 'true'; $del = '';}
    if(isset($_POST['check']) && $_POST['check'] == 'del') {$inp = ''; $del = 'true';}  

    //datenschutz
    if (DISPLAY_PRIVACY_CHECK == 'true') {
          $smarty->assign('PRIVACY_CHECKBOX', xtc_draw_checkbox_field('privacy', 'privacy', $privacy, 'id="privacy"'));
          $smarty->assign('PRIVACY_LINK', $main->getContentLink(2, MORE_INFO, $request_type));
        }

    $smarty->assign('CHECK_INP', xtc_draw_radio_field('check', 'inp', $inp));
    $smarty->assign('CHECK_DEL', xtc_draw_radio_field('check', 'del', $del));


    $smarty->assign('BUTTON_SEND', xtc_image_submit('button_send.gif', IMAGE_BUTTON_LOGIN));
    $smarty->assign('FORM_END', '</form>');

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/newsletter.html');
    $smarty->assign('main_content', $main_content);

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    if (!defined('RM'))
      $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>

    Du hast die if-Abfrage an falscher Stelle bzw. 2 Zeilen zu spät eingefügt.

    michail223

    • Neu im Forum
    • Beiträge: 7
    Danke für deine Mühe, aber leider besteht das Problem immer noch. Werd mal ne Nacht darüber schlafen, vielleicht fällt mir morgen noch was ein.

    AGI

    • modified Team
    • Beiträge: 305
    • Geschlecht:
    Guten Morgen,

    schaut euch das Script bitte genau an.
    Die Zeile
    $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
    wird auch ausgeführt, wenn die checkbox nicht gesetzt ist, sodass die Newsletter-Mail immer versendet wird.

    Ich habe das komplette Script angepasst:
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: newsletter.php 10076 2016-07-15 09:28:07Z GTB $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce www.oscommerce.com
       (c) 2003   nextcommerce www.nextcommerce.org
       (c) 2003 XT-Commerce
       
       
       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    require ('includes/application_top.php');

    if (!defined('MODULE_NEWSLETTER_STATUS') || MODULE_NEWSLETTER_STATUS == 'false') {
      xtc_redirect(xtc_href_link(FILENAME_DEFAULT));
    }

    defined('DISPLAY_PRIVACY_CHECK') or define('DISPLAY_PRIVACY_CHECK', 'true');
     
    // captcha
    $use_captcha = array('newsletter');
    if (defined('MODULE_CAPTCHA_ACTIVE')) {
      $use_captcha = explode(',', MODULE_CAPTCHA_ACTIVE);
    }
    defined('MODULE_CAPTCHA_CODE_LENGTH') or define('MODULE_CAPTCHA_CODE_LENGTH', 6);
    defined('MODULE_CAPTCHA_LOGGED_IN') or define('MODULE_CAPTCHA_LOGGED_IN', 'True');

    // create smarty elements
    $smarty = new Smarty;

    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

    // include needed functions
    require_once (DIR_FS_INC.'xtc_validate_email.inc.php');
    require_once (DIR_FS_INC.'secure_form.inc.php');
    require_once (DIR_WS_CLASSES.'class.newsletter.php');

    $info_message = '';
    $newsletter = new newsletter();

    if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
      $privacy = isset($_POST['privacy']) && $_POST['privacy'] == 'privacy' ? true : false;
      $email = xtc_db_prepare_input($_POST['email']);
      if (check_secure_form($_POST) === false) {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      } elseif (xtc_validate_email($email) != false) {
        if (!in_array('newsletter', $use_captcha) || (isset($_SESSION['customer_id']) && MODULE_CAPTCHA_LOGGED_IN == 'False')) {
          $newsletter->auto = true;
        }
        if (DISPLAY_PRIVACY_CHECK == 'true') {
          if(!$privacy) {
            $info_message = ENTRY_PRIVACY_ERROR;
            $newsletter->message_class = 'error';
          }
          else {
            $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
            $info_message = $newsletter->message;
          }
        }
        else {
          $newsletter->AddUser($_POST['check'], strtoupper($_POST['vvcode']), $email);
          $info_message = $newsletter->message;
        }
      } else {
        $info_message = ENTRY_EMAIL_ADDRESS_CHECK_ERROR;
        $newsletter->message_class = 'error';
      }
    }

    // Accountaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'activate')) {
      $newsletter->ActivateAddress($_GET['key'], $_GET['email']);
      $info_message = $newsletter->message;
      if ($newsletter->message_class == 'info') {
        $smarty->assign('activated', true);
      }
    }

    // Accountdeaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'remove')) {
      $newsletter->RemoveFromList($_GET['key'], $_GET['email']);
      $info_message = $newsletter->message;
    }

    $breadcrumb->add(NAVBAR_TITLE_NEWSLETTER, xtc_href_link(FILENAME_NEWSLETTER, '', 'SSL'));

    require (DIR_WS_INCLUDES.'header.php');

    if (in_array('newsletter', $use_captcha) && (!isset($_SESSION['customer_id']) || MODULE_CAPTCHA_LOGGED_IN == 'True')) {
      $smarty->assign('VVIMG', '<img src="'.xtc_href_link(FILENAME_DISPLAY_VVCODES, '', 'SSL') .'" alt="Captcha" />');
      $smarty->assign('INPUT_CODE', xtc_draw_input_field('vvcode', '', 'size="'.MODULE_CAPTCHA_CODE_LENGTH.'" maxlength="'.MODULE_CAPTCHA_CODE_LENGTH.'"', 'text', false));
    }

    $smarty->assign('text_newsletter', TEXT_NEWSLETTER);
    $smarty->assign('info_message', $info_message);
    if ($newsletter->message_class != '') {
      $smarty->assign('message_class', $newsletter->message_class);
    }
    $smarty->assign('FORM_ACTION', xtc_draw_form('sign', xtc_href_link(FILENAME_NEWSLETTER, 'action=process', 'SSL')).secure_form());
    $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', ((isset($_GET['email']) && xtc_db_input($_GET['email'])!='') ? xtc_db_input($_GET['email']):((isset($_POST['email']) && xtc_db_input($_POST['email']))?xtc_db_input($_POST['email']):''))));

    if(isset($_POST['check']) && $_POST['check'] == 'inp') {$inp = 'true'; $del = '';}
    if(isset($_POST['check']) && $_POST['check'] == 'del') {$inp = ''; $del = 'true';}  

    //datenschutz
    if (DISPLAY_PRIVACY_CHECK == 'true') {
          $smarty->assign('PRIVACY_CHECKBOX', xtc_draw_checkbox_field('privacy', 'privacy', $privacy, 'id="privacy"'));
          $smarty->assign('PRIVACY_LINK', $main->getContentLink(2, MORE_INFO, $request_type));
        }

    $smarty->assign('CHECK_INP', xtc_draw_radio_field('check', 'inp', $inp));
    $smarty->assign('CHECK_DEL', xtc_draw_radio_field('check', 'del', $del));


    $smarty->assign('BUTTON_SEND', xtc_image_submit('button_send.gif', IMAGE_BUTTON_LOGIN));
    $smarty->assign('FORM_END', '</form>');

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/newsletter.html');
    $smarty->assign('main_content', $main_content);

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    if (!defined('RM'))
      $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>

    Viele Grüße
    Andreas

    MasterChief

    • Mitglied
    • Beiträge: 189
    Hi,
    ich finde es super daß an solchen Dingen gearbeitet wird,  aaaaber verrennt ihr euch nicht in was?  Grade das Checkbox-Thema ist doch wieder aktuell hier gewesen  (daß man eben keine haben sollte/muss)  und mit der DSGVO wird das wohl noch etwas schlimmer.  Also Checkboxen eigtl. im gesamten Bestellvorgang rausnehmen!??

    p3e

    • Experte
    • Beiträge: 2.424
    Es geht hier nicht um den Bestellvorgang sondern um die Newsletteranmeldung.

    MasterChief

    • Mitglied
    • Beiträge: 189
    ja schon klar, aber auch da brauche ich keine Checkbox, ich muss halt per sprechendem Link drauf hinweisen

    p3e

    • Experte
    • Beiträge: 2.424
    @kgd: AGI hat Recht, die checkbox wird so nicht beachtet (außer bei der Fehlermeldung).
    @MasterChief: Irgendwo hatte ich gelesen, dass das für den Newsletter notwendig sein soll, aber ich finde es nicht mehr und bin mir jetzt gerade auch unsicher :(

    ... und falls man ein Häkchen zum Eintragen braucht, benötigt man sicher keins zum Austragen, weil sowas soll ja möglichst einfach sein ....
    rechtstexte für onlineshop
               
    anything