Last active
February 3, 2023 06:31
-
-
Save camilamoreiradev/a6f8d014ea15ad2f1f056feafb820f0c to your computer and use it in GitHub Desktop.
Código para ajudar uma colega do fórum - Scriptcase
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1° - Coloquei na query pra pegar somente o dia atual. | |
SELECT * FROM calendar WHERE STR_TO_DATE(CONCAT(start_date, " ", start_time), "%Y-%m-%d %H:%i:%s") >= NOW() AND STR_TO_DATE(CONCAT(start_date, " ", start_time), "%Y-%m-%d %H:%i:%s") <= NOW() + INTERVAL 24 HOUR; | |
2° - Coloquei esses links no evento onScriptInit para poder importar o link do fontawesome e da biblioteca animate pra animar o sino. | |
echo <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css">'; | |
3° - Coloquei esse código no evento onRecord para habilitar o sino de acordo com o tempo de proximidade. | |
//pego os periodos que quero comparar | |
$periodo_inicial = date("Y-m-d H:i:s"); | |
$periodo_final = {start_date}." ".{start_time}; | |
//capturo a diferença de tempo | |
$retorno = sc_time_diff($periodo_final, "yyyy-mm-dd hh:ii:ss", $periodo_inicial, "yyyy-mm-dd hh:ii:ss"); | |
//se a diferença de tempo for menor que 24 horas | |
if($retorno[0] < "24") { | |
//concateno o retorno da diferença de tempo pra montar a hora | |
$diferenca = strtotime($retorno[0].":".$retorno[1].":".$retorno[2]); | |
//aqui vai o tempo que você notificar a pessoa | |
$tempo = strtotime("01:00:00"); | |
//se o retorno do período for menor ou igual ao tempo que você informou, ativa o sino e envia o e-mail | |
if($diferenca <= $tempo) { | |
{icone} = '<i class="fas fa-bell fa-2x animated infinite pulse" style="color: #9f3a38;"></i> '; | |
//arrumo os horários pra sair certinho no e-mail | |
$hora = (strlen($retorno[0]) == 1) ? "0".$retorno[0] : $retorno[0]; | |
$minuto = (strlen($retorno[1]) == 1) ? "0".$retorno[1] : $retorno[1]; | |
$segundo = (strlen($retorno[2]) == 1) ? "0".$retorno[2] : $retorno[2]; | |
$falta = $hora.":".$minuto.":".$segundo; | |
//envia o e-mail para a pessoa | |
send_mail_alert($falta); | |
//caso contrário mostra o sino simples, mas você pode ocultar o sino se preferir | |
} else { | |
{icone} = '<i class="far fa-bell fa-2x" style="color: #8492a6;"></i>'; | |
} | |
} | |
4° - Criei um método PHP com o nome send_mail_alert, recebendo a variável $tempo. | |
$assunto = "Você tem um evento próximo: ".{title}; | |
$mensagem = "Faltam ".$tempo." horas para o seu evento."; | |
sc_mail_send("servidor", "usuario", "senha", "de", "para", $assunto, $mensagem, "H","", "", "465", "S"); | |
5° - Na configuração da grid, eu coloco 300 de intervalo de refresh, pra consulta atualizar sozinha a cada 5 minutos e poder verificar se tem algum evento próximo. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment