This repository has been archived on 2025-04-04. You can view files and clone it, but cannot push or open issues or pull requests.

263 lines
12 KiB
PHP

<?php
namespace SAI;
class saimod_beta extends \SYSTEM\SAI\sai_module{
public static function sai_mod__SAI_saimod_beta(){
$vars = array();
$vars['store_android_count'] = \SQL\BETA_COUNT_STORE_ANDROID::Q1()['count'];
$vars['store_ios_count'] = \SQL\BETA_COUNT_STORE_IOS::Q1()['count'];
//$vars['mail_count'] = \SQL\BETA_COUNT_MAIL::Q1()['count'];
return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/saimod_beta.tpl'))->SERVERPATH(),$vars);}
public static function sai_mod__SAI_saimod_beta_action_all(){
$vars = array();
$vars['data'] = '';
$beta = \SQL\BETA_GET::QQ();
while($row = $beta->next()){
if($row['android']){
$row['device'] = 'android';}
if($row['ios']){
$row['device'] = 'apple';}
$row['generated'] = $row['createdAt'] ? \SYSTEM\time::time_ago_string(strtotime($row['createdAt'])) : 'invalid';
if($row['redeemedAt']){
$row['redeemed'] = 'check';
$row['redeemed_time'] = \SYSTEM\time::time_ago_string(strtotime($row['redeemedAt']));
} else {
$row['redeemed'] = 'times';
$row['redeemed_time'] = '';
}
if($row['storedAt']){
$row['stored'] = 'check';
$row['stored_time'] = \SYSTEM\time::time_ago_string(strtotime($row['storedAt']));
} else {
$row['stored'] = 'times';
$row['stored_time'] = '';
}
if($row['emailedAt']){
$row['emailed'] = 'check';
$row['emailed_time'] = \SYSTEM\time::time_ago_string(strtotime($row['emailedAt']));
} else {
$row['emailed'] = 'times';
$row['emailed_time'] = '';
}
$row['used_code'] = $row['used_code'] == '' ? 'invalid' : $row['used_code'];
if($row['used_code'] == $row['code']){
$row['valid'] = 'green';
} else {
$row['valid'] = 'red';
}
$vars['data'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/all_tr.tpl'))->SERVERPATH(),$row);
}
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('time'));
return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/all.tpl'))->SERVERPATH(),$vars);
}
public static function sai_mod__SAI_saimod_beta_action_code(){
$vars = array();
$vars['data'] = '';
$beta = \SQL\BETA_CODES_FIND::QQ();
$i = 0;
while($row = $beta->next()){
$row['i'] = $i++;
$row['generated'] = \SYSTEM\time::time_ago_string(strtotime($row['createdAt']));
$row['code_delete_disabled'] = $row['count'] == 0 ? '' : 'disabled';
$vars['data'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/code_tr.tpl'))->SERVERPATH(),$row);
}
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('time'));
return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/code.tpl'))->SERVERPATH(),$vars);
}
public static function sai_mod__SAI_saimod_beta_action_generate($comment){
$code = bin2hex(openssl_random_pseudo_bytes(4));
\SQL\BETA_CODE_INSERT::QI(array($code,$comment));
return \JsonResult::ok();
}
public static function sai_mod__SAI_saimod_beta_action_comment($code,$comment){
\SQL\BETA_COMMENT::QI(array($comment,$code));
return \JsonResult::ok();
}
public static function sai_mod__SAI_saimod_beta_action_code_delete($code){
\SQL\BETA_CODE_DELETE::QI(array($code));
return \JsonResult::ok();
}
public static function sai_mod__SAI_saimod_beta_action_email_delete($email){
\SQL\BETA_EMAIL_DELETE::QI(array($email));
return \JsonResult::ok();
}
public static function sai_mod__SAI_saimod_beta_action_store_android(){
$vars = array();
$vars['data'] = '';
$beta = \SQL\BETA_STORE_ANDROID_FIND::QQ();
$i = 0;
while($row = $beta->next()){
$row['i'] = $i++;
if($row['android']){
$row['device'] = 'android';}
if($row['ios']){
$row['device'] = 'apple';}
$row['generated'] = $row['createdAt'] ? \SYSTEM\time::time_ago_string(strtotime($row['createdAt'])) : 'invalid';
if($row['redeemedAt']){
$row['redeemed'] = 'check';
$row['redeemed_time'] = \SYSTEM\time::time_ago_string(strtotime($row['redeemedAt']));
} else {
$row['redeemed'] = 'times';
$row['redeemed_time'] = '';
}
if($row['storedAt']){
$row['stored'] = 'check';
$row['stored_time'] = \SYSTEM\time::time_ago_string(strtotime($row['storedAt']));
$row['disabled'] = 'disabled';
} else {
$row['stored'] = 'times';
$row['stored_time'] = '';
$row['disabled'] = '';
}
$row['used_code'] = $row['used_code'] == '' ? 'invalid' : $row['used_code'];
if($row['used_code'] == $row['code']){
$row['valid'] = 'green';
} else {
$row['valid'] = 'red';
}
$vars['data'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/store_android_tr.tpl'))->SERVERPATH(),$row);
}
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('time'));
return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/store_android.tpl'))->SERVERPATH(),$vars);
}
public static function sai_mod__SAI_saimod_beta_action_store_ios(){
$vars = array();
$vars['data'] = '';
$beta = \SQL\BETA_STORE_IOS_FIND::QQ();
$i = 0;
while($row = $beta->next()){
$row['i'] = $i++;
if($row['android']){
$row['device'] = 'android';}
if($row['ios']){
$row['device'] = 'apple';}
$row['generated'] = $row['createdAt'] ? \SYSTEM\time::time_ago_string(strtotime($row['createdAt'])) : 'invalid';
if($row['redeemedAt']){
$row['redeemed'] = 'check';
$row['redeemed_time'] = \SYSTEM\time::time_ago_string(strtotime($row['redeemedAt']));
} else {
$row['redeemed'] = 'times';
$row['redeemed_time'] = '';
}
if($row['storedAt']){
$row['stored'] = 'check';
$row['stored_time'] = \SYSTEM\time::time_ago_string(strtotime($row['storedAt']));
$row['disabled'] = 'disabled';
} else {
$row['stored'] = 'times';
$row['stored_time'] = '';
$row['disabled'] = '';
}
$row['used_code'] = $row['used_code'] == '' ? 'invalid' : $row['used_code'];
if($row['used_code'] == $row['code']){
$row['valid'] = 'green';
} else {
$row['valid'] = 'red';
}
$vars['data'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/store_ios_tr.tpl'))->SERVERPATH(),$row);
}
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('time'));
return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/store_ios.tpl'))->SERVERPATH(),$vars);
}
public static function sai_mod__SAI_saimod_beta_action_store($email,$android,$ios){
\SQL\BETA_STORE::QI(array($email));
return self::action_email($email,$android,$ios);
}
/* public static function sai_mod__SAI_saimod_beta_action_mail(){
$vars = array();
$vars['data'] = '';
$beta = \SQL\BETA_MAIL_FIND::QQ();
$i = 0;
while($row = $beta->next()){
$row['i'] = $i++;
if($row['android']){
$row['device'] = 'android';}
if($row['ios']){
$row['device'] = 'apple';}
if($row['redeemedAt']){
$row['redeemed'] = 'check';
$row['redeemed_time'] = \SYSTEM\time::time_ago_string(strtotime($row['redeemedAt']));
} else {
$row['redeemed'] = 'times';
$row['redeemed_time'] = '';
}
if($row['storedAt']){
$row['stored'] = 'check';
$row['stored_time'] = \SYSTEM\time::time_ago_string(strtotime($row['storedAt']));
} else {
$row['stored'] = 'times';
$row['stored_time'] = '';
}
if($row['emailedAt']){
$row['mailed'] = 'check';
$row['mailed_time'] = \SYSTEM\time::time_ago_string(strtotime($row['emailedAt']));
$row['disabled'] = 'disabled';
} else {
$row['mailed'] = 'times';
$row['mailed_time'] = '';
$row['disabled'] = '';
}
$row['used_code'] = $row['used_code'] == '' ? 'invalid' : $row['used_code'];
if($row['used_code'] == $row['code']){
$row['valid'] = 'green';
} else {
$row['valid'] = 'red';
}
$vars['data'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/mail_tr.tpl'))->SERVERPATH(),$row);
}
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('time'));
return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/mail.tpl'))->SERVERPATH(),$vars);
} */
public static function action_email($email,$android,$ios){
$bcc = null;
$delay = 0;
$from = 'Prototyp | DEMOCRACY <prototyping@democracy-deutschland.de>';
$subject = '📱 DEMOCRACY: Dein Prototyp Zugang';
$html_file = $android ? (new \PSAI('saimod_beta/tpl/mail_android.tpl'))->SERVERPATH() : (new \PSAI('saimod_beta/tpl/mail_ios.tpl'))->SERVERPATH();
$text_file = $android ? (new \PSAI('saimod_beta/tpl/mail_android.txt'))->SERVERPATH() : (new \PSAI('saimod_beta/tpl/mail_ios.txt'))->SERVERPATH();
$to = $email;
$unsubscribe_list = null;
$images = ["democracy_logo" => (new \PSAI('saimod_beta/img/logo.png'))->SERVERPATH()];
$attachments = [];
$replacements = [];
$smtp = [ "host" => "ssl://atmanspacher.eu",
"port" => 465,
"auth" => true,
"username" => "prototyping@democracy-deutschland.de",
"password" => "7$7ar0pZ"
];
$silent = true;
\mailcannon::fire($bcc, $delay, $from, $subject, $html_file, $text_file, $to, $unsubscribe_list, $images, $attachments, $replacements,$smtp, $silent);
\SQL\BETA_MAIL::QI(array($email));
return \JsonResult::ok();
}
public static function menu(){
return new \SYSTEM\SAI\sai_module_menu( 99,
\SYSTEM\SAI\sai_module_menu::POISITION_LEFT,
\SYSTEM\SAI\sai_module_menu::DIVIDER_LEFT,
\SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_beta/tpl/menu.tpl'))->SERVERPATH()));}
public static function right_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);}
public static function js(){
return array(new \PSAI('saimod_beta/js/saimod_beta.js'));}
}