diff --git a/democracy/api/api_democracy.php b/democracy/api/api_democracy.php
index c61d575..b05946d 100644
--- a/democracy/api/api_democracy.php
+++ b/democracy/api/api_democracy.php
@@ -6,7 +6,8 @@ class api_democracy extends \SYSTEM\API\api_system {
$mail = new PHPMailer;
- $mail->CharSet = 'utf-8';
+ $mail->CharSet = 'utf-8';
+ $mail->Encoding = 'base64';
$mail->Host = 'atmanspacher.eu';
$mail->Port = 465;
@@ -31,4 +32,66 @@ class api_democracy extends \SYSTEM\API\api_system {
throw new \SYSTEM\LOG\ERROR("Mailer Error: " . $mail->ErrorInfo);}
return \SYSTEM\LOG\JsonResult::ok();
}
+
+ public static function call_send_subscribe($data){
+ $beta = $data['beta'] == 'true' ? 1 : 0;
+ $android = $data['android'] == 'true' ? 1 : 0;
+ $ios = $data['ios'] == 'true' ? 1 : 0;
+ \SQL\SUBSCRIBE_ADD::Q1(array($data['email'],$beta,$android,$ios,$beta,$android,$ios));
+
+ $sub = \SQL\SUBSCRIBE_GET::Q1(array($data['email']));
+ if(!$sub['confirmed']){
+ self::send_subscribe_mail($data['email']);}
+
+ return \SYSTEM\LOG\JsonResult::ok();
+ }
+
+ /**
+ * @see http://www.jwz.org/doc/mid.html
+ */
+ public static function generateMessageID()
+ {
+ return sprintf(
+ "<%s.%s@%s>",
+ base_convert(microtime(), 10, 36),
+ base_convert(bin2hex(openssl_random_pseudo_bytes(8)), 16, 36),
+ "democracy-deutschland.de"
+ );
+ }
+
+ private static function send_subscribe_mail($email){
+ require((new \SYSTEM\PROOT('PHPMailer-master/PHPMailerAutoload.php'))->SERVERPATH());
+ date_default_timezone_set('Europe/Berlin');
+
+ $mail = new PHPMailer;
+
+ $mail->CharSet = 'utf-8';
+
+ $mail->Host = 'atmanspacher.eu';
+ $mail->Port = 465;
+ $mail->SMTPSecure = 'tls';
+ $mail->SMTPAuth = true;
+
+ $mail->setFrom( 'contact@democracy-deutschland.de', 'DEMOCRACY Deutschland e.V.');
+ $mail->addReplyTo( 'contact@democracy-deutschland.de', 'DEMOCRACY Deutschland e.V.');
+ $mail->addAddress( $email);
+
+ $mail->addCustomHeader('Return-Path', 'contact@democracy-deutschland.de');
+ $mail->addCustomHeader('Message-ID', self::generateMessageID());
+ $mail->addCustomHeader('Date', date('r', time()));
+
+ $token = \SYSTEM\TOKEN\token::request('token_confirm_subscribe', array('email' => $email));
+
+ $html = \SYSTEM\PAGE\replace::replaceFile((new PAPI('tpl/send_mail_subscribe.tpl'))->SERVERPATH(), array('token' => $token));
+
+ $mail->Subject = '📱 DEMOCRACY: Bitte bestätige Deine Newsletter-Anmeldung';
+ $mail->Body = $html;
+ $mail->IsHTML(true);
+
+ //send the message, check for errors
+ if(!$mail->send()){
+ throw new \SYSTEM\LOG\ERROR("Mailer Error: " . $mail->ErrorInfo);}
+
+ \SQL\SUBSCRIBE_EMAIL_COUNT::Q1(array($email));
+ }
}
\ No newline at end of file
diff --git a/democracy/api/autoload.inc b/democracy/api/autoload.inc
index f4aad13..e33e424 100644
--- a/democracy/api/autoload.inc
+++ b/democracy/api/autoload.inc
@@ -1,3 +1,5 @@
+
+Bitte bestätige den Erhalt von unserem Newsletter indem du folgenden Link klickst:
+
https://test.democracy-deutschland.de/api.php?call=account&action=confirm&token=${token}
+
+Herzliche Grüße
+Team DEMOCRACY
\ No newline at end of file
diff --git a/democracy/page/default_page/css/style.css b/democracy/page/default_page/css/style.css
index 8ac52eb..9a018f6 100644
--- a/democracy/page/default_page/css/style.css
+++ b/democracy/page/default_page/css/style.css
@@ -831,7 +831,7 @@ i.fa.fa-quote-right {
}
.agileinfo-social-grids {
- margin:1em 0 0 -10px;
+ margin:1em 0 0 -7px;
}
.agileinfo-social-grids ul {
diff --git a/democracy/page/default_page/js/default_page.js b/democracy/page/default_page/js/default_page.js
index 0afa8ea..9816173 100644
--- a/democracy/page/default_page/js/default_page.js
+++ b/democracy/page/default_page/js/default_page.js
@@ -18,4 +18,64 @@ $(document).ready(function() {
$('.navbar-nav>li>a').on('click', function(){
$('.navbar-collapse').collapse('hide');
});
-});
\ No newline at end of file
+
+ $('#beta').change(function(){
+ $('#plattform').toggle();
+ });
+
+ $('#subscribe').click(function(){
+ var ok = true;
+ var email = $('#email').val();
+ var beta = $('#beta').is(':checked');
+ var android = $('#android').is(':checked');
+ var ios = $('#ios').is(':checked');
+
+ if(!validateEmail(email)){
+ $('#email').addClass("blink-class");
+ ok = false;
+ } else {
+ $('#email').removeClass("blink-class");
+ }
+
+ if(beta && (!android && !ios)){
+ $('#android').addClass("blink-class");
+ $('#ios').addClass("blink-class");
+ ok = false;
+ } else {
+ $('#android').removeClass("blink-class");
+ $('#ios').removeClass("blink-class");
+ }
+
+ if(ok){
+ $.ajax({
+ async: true,
+ url: './api.php',
+ type: 'GET',
+ dataType: 'JSON',
+ data: {
+ call: 'send_subscribe',
+ data: { email: email,
+ beta: beta,
+ android:android,
+ ios: ios}
+ },
+ success: function(data){
+ if(!data.status){
+ alert("Das Eintragen in den Newsletter hat leider nicht funktioniert. Bitte versuche es später noch einmal. Danke.");
+ } else {
+ $('#confirm').show();
+ $('#formular').hide();
+ }
+ },
+ error: function(){
+ alert("Das Eintragen in den Newsletter hat leider nicht funktioniert. Bitte versuche es später noch einmal. Danke.");
+ }
+ });
+ }
+ });
+});
+
+function validateEmail(email) {
+ var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ return re.test(String(email).toLowerCase());
+}
\ No newline at end of file
diff --git a/democracy/page/default_page/tpl/default_page.tpl b/democracy/page/default_page/tpl/default_page.tpl
index 8b6eccd..998283e 100644
--- a/democracy/page/default_page/tpl/default_page.tpl
+++ b/democracy/page/default_page/tpl/default_page.tpl
@@ -138,6 +138,48 @@