Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save theprincy/f59740b97cd4edcf5fa3981375363571 to your computer and use it in GitHub Desktop.
Save theprincy/f59740b97cd4edcf5fa3981375363571 to your computer and use it in GitHub Desktop.
Código para ajudar uma colega do fórum - Scriptcase
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