[OT] Javascript

Si lo so, ma in Off Topic non sarebbe stato visto!

Dunque, ho appena terminato un calendario "collaborativo", niente di speciale o super-evoluto, gli utenti possono inserire/cancellare eventi che vengono visualizzati su un calendario mensile con una vista tipo quella di sunbird.

Solo l'utente che ha inserito un evento lo può cancellare, si possono inserire eventi "privati" cioè visibili solo all'utente che l'ha inserito o eventi "normali" ovvero visibili a tutto il proprio ufficio; il responsabile del settore vede tutti gli eventi degli uffici sottoposti (tranne eventi privati, ovviamente).

Insomma, una cosa semplicissima, infatti ci è voluto meno di una giornata per realizzarlo.

Veniamo alla domanda.

Tramite javascript è possibile mettere un orologio che si aggiorna con lo scorrere del tempo, è possibile fargli creare un alert quando si raggiunge una certa ora?

Farei creare tramite lo script php che genera il calendario l'equivalente di un array (o altro) con gli eventi della giornata, consultabile dallo script js (anche qui come fare? )

Così un utente al mattino si apre la paginetta, si autentica et voilà, tutto pronto; certamente se non aggiorna la pagina ogni tanto e qualcun altro inserisce eventi se li perde, ma a questo penseremo successivamente.

Come ripetuto in tutti i miei post di js non so nulla.

Grazie a tutti!

inviato 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

vedi se questo esempio ti può servire:

http://www.yappy.it/timer_eventi_javascript.php

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Grazie controllerò!

risposto 9 anni fa
LonelyWolf
X 0 X

Ok, ho quasi trovato la mia soluzione!

Ho modificato uno script che visualizzava un orologio e riesco a fargli fare un alert ad un orario specifico, per ora scritto a manina nello script, vedrò di sistemarlo per bene.

Il controllo lo faccio eseguire ogni minuto, tanto è lato client e non è pesante.

Devo solo trovare un evento adatto, ora come ora è onload del body, ma a quel punto ancora non è generato nulla!

risposto 9 anni fa
LonelyWolf
X 0 X

Ok sistemato!

Ho fatto qualche test e sembra funzionare correttamente, forse cercherò di far scattare l'avviso qualche minuto prima!

risposto 9 anni fa
LonelyWolf
X 0 X

non è che ti va di postare il codice?  :P

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Quale codice esattamente?

Per il js?

Sicuramente non è la soluzione migliore e/o la più ordinata, ma se lo volete posso anche riportarlo con le spiegazioni!

risposto 9 anni fa
LonelyWolf
X 0 X

se ti va...

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Dunque, nel file dell'intestazione ho questo:

if (!$_SESSION['logged']) {
   echo '<body>';
}
else {
     echo '<body onload="mytime()">';
}

Se l'utente ha fatto il login e quindi sono visibili gli eventi abilita il js per gli allarmi.

Nel file che recupera gli eventi (viene richiamato dalla pagina che genera il calendario "on the fly") viene generato un array con gli orari degli allarmi della sola giornata odierna, non riporto codice perchè è semplice php.

Nella pagina che genera il calendario e visualizza gli eventi, come ultima operazione, nello script js genera i vari if per controllare gli allarmi, con un timeout di un minuto (ogni minuto controlla l'ora e confronta con l'orario dell'allarme):

<script language="JavaScript">
function mytime() {
var x=new Date();
h=x.getHours();
m=x.getMinutes();
<?php
//se ci sono eventi prepara lo script
if (count($allarmi)>0) {
   for ($i_alarm=0;$i_alarm<count($allarmi);$i_alarm++) {
       list($ore,$minuti,$oggetto) = split("§",$allarmi[$i_alarm]);
       echo "if ((h==$ore) && (m==$minuti)) {window.alert('$oggetto');}";
   }
}
unset ($allarmi);
?>
setTimeout("mytime()",60000);
}

//-->
</script>

Devo ancora sistemarlo per bene, come è adesso anche se non ci sono eventi nella giornata la funzione js controlla l'ora ogni minuto, appena ho il tempo lo sistemo è una modifica veloce!

risposto 9 anni fa
LonelyWolf
X 0 X

Bene si può dire che il pacchetto è operativo, ho fatto pure lo script di installazione!

Certo mancano alcuni controlli, come ad esempio se una cartella è scrivibile dallo script di installazione, l'allarme solo su richiesta (ora per qualsiasi evento del giorno), ma piano piano...

risposto 9 anni fa
LonelyWolf
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda