send email; manage notis and email logs
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
INSERT INTO `badminton_coach`.`setting` (`set_name`, `set_setting_type_st_id`) VALUES ('E-mail küldés log', '3');
|
||||
|
||||
INSERT INTO `badminton_coach`.`setting_value` (`setv_id`, `setv_set_date`, `setv_setting_set_id`, `setv_varchar`) VALUES (NULL, '2017-03-14 00:00:00', '7', 'emails');
|
||||
@@ -255,6 +255,14 @@ class page {
|
||||
# email log details
|
||||
include('include_email.php');
|
||||
break;
|
||||
case 'notifications':
|
||||
# értesítések
|
||||
include('include_notifications.php');
|
||||
break;
|
||||
case 'delete_notification':
|
||||
# ÉRTESÍTÉS TÖRLÉS (NULLÁZÁS)
|
||||
include('include_delete_notification.php');
|
||||
break;
|
||||
case 'delete_training_type':
|
||||
# EDZÉS TÍPUS TÖRLÉS
|
||||
include('include_delete_training_type.php');
|
||||
|
||||
@@ -50,7 +50,7 @@ class sql extends mysqli {
|
||||
$i++;
|
||||
}
|
||||
$this->_query = 'insert into ' . $table . ' (' . $fields . ') values (' . $values . ');';
|
||||
var_dump($this->_query);
|
||||
//var_dump($this->_query);
|
||||
self::query($this->_query);
|
||||
return $this->insert_id;
|
||||
}
|
||||
|
||||
@@ -174,6 +174,13 @@ td.create a {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.list.noti {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
a.addbutton.noti {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.list_item table.money {
|
||||
width: 100%;
|
||||
@@ -387,6 +394,10 @@ table.log tr.delete:hover {
|
||||
background-color: #f02a2a;
|
||||
}
|
||||
|
||||
table.email.log tr:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.date_separator img {
|
||||
width: 20px;
|
||||
float: right;
|
||||
|
||||
9
_include/include_delete_notification.php
Normal file
9
_include/include_delete_notification.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
if ($this->is_id()) {
|
||||
$sql->update_table('user_kid', array('uk_last_notification' => 'null'), array('uk_id' => $this->get_id()));
|
||||
header("Location: /admin/notifications");
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -7,7 +7,7 @@ if ($this->is_id()) {
|
||||
$email_log = new email_log();
|
||||
$email_log->set_el_data_by_id($this->get_id());
|
||||
|
||||
$smarty->assign('email_log', $email_log);
|
||||
$smarty->assign('email', $email_log);
|
||||
$smarty->display('email.tpl');
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -5,7 +5,7 @@ if ($this->is_id()) {
|
||||
# EMAIL LISTA (50 / oldal)
|
||||
|
||||
$all_emails_query = "SELECT count(DISTINCT el_id) FROM email_log";
|
||||
$emails_query = "SELECT * FROM email_log LIMIT ".($this->is_id()?($this->get_id()-1) * 50:"0").",50";
|
||||
$emails_query = "SELECT * FROM email_log ORDER BY el_sent_date DESC LIMIT ".($this->is_id()?($this->get_id()-1) * 50:"0").",50";
|
||||
$el_assoc_array = $sql->assoc_array($emails_query);
|
||||
$el_count = $sql->single_variable($all_emails_query);
|
||||
$next_link = true;
|
||||
|
||||
@@ -7,7 +7,6 @@ if ($this->is_id()) {
|
||||
# EDZÉS ZÁROLÁS/FELOLDÁS
|
||||
|
||||
$locked = $sql->single_variable('select tr_locked from training where tr_id =' . $this->get_id());
|
||||
/*
|
||||
$sql->update_table('training', array(
|
||||
'tr_locked' => ($locked?0:1)
|
||||
),
|
||||
@@ -16,7 +15,6 @@ if ($this->is_id()) {
|
||||
)
|
||||
);
|
||||
log::register(($locked?'training_open':'training_close'), $this->get_id());
|
||||
*/
|
||||
//SEND NOTIFICATION
|
||||
|
||||
if (!$locked) {
|
||||
@@ -83,8 +81,9 @@ if ($this->is_id()) {
|
||||
$mail = new PHPMailer(true); // Passing `true` enables exceptions
|
||||
try {
|
||||
//Server settings
|
||||
$mail->SMTPDebug = 2; // Enable verbose debug output
|
||||
$mail->SMTPDebug = 0; // Enable verbose debug output
|
||||
$mail->isSMTP(); // Set mailer to use SMTP
|
||||
$mail->CharSet = PHPMailer::CHARSET_UTF8; // UTF-8
|
||||
$mail->Host = 'mail.gginternet.com '; // Specify main and backup SMTP servers
|
||||
$mail->SMTPAuth = true; // Enable SMTP authentication
|
||||
$mail->Username = 'hirlevel@tollaslabda.info'; // SMTP username
|
||||
@@ -94,8 +93,8 @@ if ($this->is_id()) {
|
||||
|
||||
//Recipients
|
||||
$mail->setFrom($emailTemplate->get_et_from_email(), $emailTemplate->get_et_from_name());
|
||||
$mail->addBCC($kid->get_uk_notify_email(), $kid->get_uk_notify_name());
|
||||
$mail->addBCC('tricsusz@gmail.com', 'Tóth Richárd'); // TEST
|
||||
//$mail->addBCC($kid->get_uk_notify_email(), $kid->get_uk_notify_name());
|
||||
|
||||
|
||||
//Content
|
||||
@@ -104,7 +103,8 @@ if ($this->is_id()) {
|
||||
$mail->Body = $personalizedMessage;
|
||||
$mail->AltBody = 'Az Ön levelezője nem támogatja a HTML tartalom megjelenítését!';
|
||||
|
||||
//$mail->send();
|
||||
//send mail
|
||||
$mail->send();
|
||||
//LOG SUCCESS
|
||||
email_log::create_email_log(
|
||||
$personalizedMessage,
|
||||
@@ -114,7 +114,8 @@ if ($this->is_id()) {
|
||||
$emailTemplate->get_et_id()
|
||||
);
|
||||
|
||||
//TODO: Update kids last noti date
|
||||
//Update kids last noti date
|
||||
$sql->update_table('user_kid', array('uk_last_notification' => date('Y-m-d H:i:s')), array('uk_id' => $kid->get_uk_id()));
|
||||
|
||||
} catch (Exception $e) {
|
||||
//LOG ERROR
|
||||
@@ -124,7 +125,7 @@ if ($this->is_id()) {
|
||||
$kid->get_uk_notify_name(),
|
||||
$kid->get_uk_notify_email(),
|
||||
$emailTemplate->get_et_id(),
|
||||
$e
|
||||
mysql_escape_string($e)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -132,7 +133,7 @@ if ($this->is_id()) {
|
||||
}
|
||||
}
|
||||
|
||||
//header('Location: /admin/presence/' . $this->get_id());
|
||||
header('Location: /admin/presence/' . $this->get_id());
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
36
_include/include_notifications.php
Normal file
36
_include/include_notifications.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
# HA NINCS ID, AKKOR ÉRTESÍTÉSEK
|
||||
|
||||
if ($this->is_id()) {
|
||||
|
||||
}
|
||||
else {
|
||||
# ÉRTESÍTÉSEK
|
||||
|
||||
//hány óránként küldünk emailt
|
||||
$notify_hours = $sql->single_variable(' SELECT
|
||||
setv_int
|
||||
FROM
|
||||
setting_value
|
||||
JOIN
|
||||
setting ON setv_setting_set_id = set_id
|
||||
WHERE
|
||||
set_name = "Értesítések közt eltelt idő";
|
||||
;');
|
||||
|
||||
//akiket értesítettünk az elmúlt x órában
|
||||
$notifiedKids = $sql->assoc_array('select * from user_kid WHERE DATE_SUB(CURDATE(),INTERVAL '.$notify_hours.' HOUR) <= uk_last_notification order by uk_name ASC;');
|
||||
|
||||
$kid_array = array();
|
||||
foreach ($notifiedKids as $key => $kid) {
|
||||
$new_kid = new user_kid();
|
||||
$new_kid->set_user_data_by_id($kid['uk_id']);
|
||||
$kid_array[] = $new_kid;
|
||||
}
|
||||
$smarty->assign('kid_array', $kid_array);
|
||||
$smarty->display('notifications.tpl');
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
37
template/templates/email.tpl
Normal file
37
template/templates/email.tpl
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="list">
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_duration">
|
||||
Címzett:
|
||||
</label>
|
||||
<div>{$email->get_el_to_name()}<br><{$email->get_el_to_email()}></div>
|
||||
</div>
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_duration">
|
||||
Tárgy:
|
||||
</label>
|
||||
<div>{$email->get_el_subject()}</div>
|
||||
</div>
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_duration">
|
||||
Kiküldés dátuma:
|
||||
</label>
|
||||
<div>{$email->get_el_sent_date()}</div>
|
||||
</div>
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_duration">
|
||||
Üzenet:
|
||||
</label>
|
||||
<div>{$email->get_el_message()}</div>
|
||||
</div>
|
||||
|
||||
{if $email->get_el_exception()}
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_duration">
|
||||
Üzenet:
|
||||
</label>
|
||||
<div>{$email->get_el_exception()}</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
</div>
|
||||
@@ -24,7 +24,7 @@
|
||||
{/if}
|
||||
|
||||
<div style="overflow-x:auto;">
|
||||
<table class="log">
|
||||
<table class="email log">
|
||||
<tr>
|
||||
<th class="left">#ID</th>
|
||||
<th class="left">Címzett</th>
|
||||
@@ -34,7 +34,7 @@
|
||||
<th class="left">Hibaüzenet</th>
|
||||
</tr>
|
||||
{foreach $el_array as $log}
|
||||
<tr class="email-log{if $log->get_el_exception()} delete{else} tick{/if}">
|
||||
<tr class="email-log{if $log->get_el_exception()} delete{else} tick{/if}" data-log-id="{$log->get_el_id()}">
|
||||
<td>#{$log->get_el_id()}</td>
|
||||
<td>{$log->get_el_to_name()}<br><{$log->get_el_to_email()}></td>
|
||||
<td>{$log->get_el_sent_date()}</td>
|
||||
@@ -67,3 +67,9 @@
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('table.email.log tr.email-log').click(function() {
|
||||
window.location.href = '/admin/email/'+$(this).data('log-id');
|
||||
});
|
||||
</script>
|
||||
|
||||
14
template/templates/notifications.tpl
Normal file
14
template/templates/notifications.tpl
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="list noti">
|
||||
{if !count($kid_array)}
|
||||
Nincs találat!
|
||||
{/if}
|
||||
{foreach $kid_array as $kid}
|
||||
<div class="list_item noti">
|
||||
<label>
|
||||
{$kid->get_uk_name()}
|
||||
</label>
|
||||
<div>{$kid->get_uk_last_notification()}</div>
|
||||
</div>
|
||||
<a href="/admin/delete_notification/{$kid->get_uk_id()}" class="addbutton delete noti">Törlés</a>
|
||||
{/foreach}
|
||||
</div>
|
||||
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
<div class="list_item">
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_date">
|
||||
<img src="/_image/training.png">
|
||||
Dátum:
|
||||
@@ -21,9 +21,9 @@
|
||||
{$days[$training->get_tr_date_day_of_week()]}
|
||||
{$training->get_tr_date_time()}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list_item">
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title2" for="tr_training_type_trt_id">
|
||||
<img src="/_image/tipus.png">
|
||||
Típus:
|
||||
@@ -31,18 +31,18 @@
|
||||
<div>
|
||||
{$training->get_tr_type_name_by_id()}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list_item">
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_duration">
|
||||
<img src="/_image/time.png">
|
||||
Időtartam:
|
||||
</label>
|
||||
<div>{$training->get_tr_duration()} perc</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $trc_coaches}
|
||||
<div class="list_item">
|
||||
{if $trc_coaches}
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="coaches">
|
||||
<img src="/_image/coach.png">
|
||||
Edző(k):
|
||||
@@ -55,10 +55,10 @@
|
||||
<span class="italic">{$coach->get_ua_name()}</span><br>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="list_item">
|
||||
<div class="list_item">
|
||||
<label class="desc" id="title1" for="tr_headcount">
|
||||
<img src="/_image/letszam.png">
|
||||
Létszám:
|
||||
@@ -66,7 +66,7 @@
|
||||
<div id="headcount">
|
||||
{$headcount} fő
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user