Script date compleanno

« Older   Newer »
  Share  
erkillatore
view post Posted on 5/3/2010, 09:08




Questo script va inserito in Amministrazioni>Gestione codici HTML. Dopo aver aggiunto le date di nascita degli utenti, queste verranno ricordate con precisione in 3 modi:

Oggi è il compleanno di NOME UTENTE!! AUGURI!

Domani NOME UTENTE compirà gli anni!

Il prossimo compleanno sarà di NOME UTENTE tra 7 giorni.

Le date vanno inserite manualmente dove c'è scritto p[0]= new birthday("UTENTE1",31,5) (ovviamente dove sta UTENTE1 va il nome dell'utente e dove c'è 31,5 va la data del suo compleanno).
Una volta compilata la lista basta mettarla in "inserisci codice html" in amministrazione.
Questa parte del codice , p[0]= , va modificata in modo "crescente" ovvero p[0]= , p[1]= , p[2]= ecc
Nell'esempio sono inseriti 3 utenti ma voi potete aggiungere tutti quelli che volete copiando le righe. Eventuali compleanni "doppi" saranno mostrati senza problemi. ;) Attenzione a non scrivere virgolette per il nome dell'utente o a togliere le due che già ci sono e le virgole.
("Nome"uno",1,2) <- sbagliato
("Nomeuno,1,2) <- sbagliato mancano le vigolette di destra
("Nomeuno",12) <- sbagliato manca la virgola tra un dato e l'altro
("Nomeuno",1,2) <- corretto

Potete modificare a piacere la variabile preavviso, di default è imposta per avvertire di una ricorrenza con una settimana d'anticipo. Se non ve ne sono, non apparirà alcuna scritta sul forum.

CODICE
<script type="text/javascript">function person(nick,date,month){this.nick=nick; this.date=date; this.month=month-1} p=new Array();

preavviso=7
colore="#3D8AD8"
p[0]=new person("Utente_A",12,7)
p[1]=new person("Utente_B",15,7)
p[2]=new person("Utente_C",15,7)

var now=new Date(); today=new Date(0,now.getMonth(),now.getDate()); function delta(sdate){return Math.round((sdate.getTime()-today.getTime())/(24*60*60*1000))}

function tmpa(n,z){this.n=n; this.z=z} tmpx=new Array(); function tmpb(n){this.n=n} tmp1=new Array(); tmp0=new Array(); aa=bb=cc=-1; for(var i in p){birthday=new Date(0,p[i].month,p[i].date); if(delta(birthday)<0) birthday=new Date(1,p[i].month,p[i].date); z=delta(birthday); if(z==0){cc++; tmp0[cc]=new tmpb(p[i].nick)} else if(z<=preavviso){if(z==1){bb++; tmp1[bb]=new tmpb(p[i].nick)} else{aa++; tmpx[aa]=new tmpa(p[i].nick,z)}}} document.write("<span style='color:"+colore+"'>"); s="";

if(cc>=0){s=" - "; document.write("<b>Oggi è il compleanno di ");
for(x=0; x<=cc; x++){document.write(tmp0[x].n); if(x<cc-1) document.write(", "); else if(x<cc) document.write(" e ")} document.write(" AUGURI!<\/b>")}

if(bb>=0){if(bb>0) document.write(s+"Domani compiranno gli anni "); else document.write(s+"Domani compirà gli anni ");
for(x=0; x<=bb; x++){document.write("<b>"+tmp1[x].n+"<\/b>"); if(x<bb-1) document.write(", "); else if(x<bb) document.write(" e ")}
s=" - "}

if(aa>=0){tmpy=new Array(); for(i=0; i<aa-1; i++){min=i; for(j=i+1; j<aa; j++) if(tmpx[j].z<tmpx[min].z) min=j; if(i!=min){tmpy[0]=new tmpa(tmpx[i].n,tmpx[i].z); tmpx[i]=tmpx[min]; tmpx[min]=tmpy[0]}}

if(aa>0) document.write(s+"I prossimi compleanni sono di "); else document.write(s+"Il prossimo compleanno è di ");
for(x=0; x<=aa; x++){document.write("<b>"+tmpx[x].n+"<\/b>"); on=0; if(x+1<=aa){if(tmpx[x].z!=tmpx[x+1].z) on=1} else on=1; if(on) document.write(" tra "+tmpx[x].z+" giorni"); if(x<aa-1) document.write(", "); else if(x<aa) document.write(" e ")}} document.write("<\/span>")
</script>
 
Top
0 replies since 5/3/2010, 09:08   109 views
  Share