utentionline
add to delicious

searchengine
Inserisci i termini di ricerca
NewsLetter
Hai poco tempo? C'e' un modo velocissimo per rimanere sempre aggiornato con nuovi articoli e tutorial, nuovi corsi in partenza, approfondimenti e link utili e tanto altro ancora...
nome
email
quicklinks
Web Directory
WebDesigner
Tutorials Flash Mx
Tutorials ASP
Tutorials XHTML
Tutorials Javascript
Tutorials HTML-CSS
Tutorials SQL
Tutorials PHP & MySQL
AJAX applicazioni web
Web Marketing
Web Development
Template & Layout
Non solo Web :: Blog
Portfolio Lavori
Who is Yappy?
Benvenuto nella Newsletter
libririviste
Calendario motoGP 2007
newscorsi
FAQ & Domande
newscorsi
Web Designer gratuito
Corso Web Designer Gratuito per creare siti internet trucchi, consigli, esempi pratici e template per diventare un vero web designer.


Seo Extreme 2007
Al corso nazionale "Seo Extreme 2007" troverai le ultime tecniche e strategie di Posizionamento nei motori di ricerca. Parteciperai ad un corso di alto livello dedicato a chi vuole fare posizionamento...

Leggi tutti...
libririviste
Web Design Facile
"Web Design Facile" di Davide Vasta è una guida pratica che conduce il lettore, passo per passo attraverso la realizzazione di un sito Internet: dalla creazione di un prototipo da mostrare al cliente fino al suo sviluppo definitivo.

WebDesigner 22
Web Designer Magazine n.22. Flash in prima linea, conoscere l'ultima versione del programma Macromedia. Inserire video Flash nelle vostre pagine. In primo piano "diventare Designer di successo".

Leggi tutti...
Web Marketing
Trucchi headlines efficaci 8
 

Trucchi headlines efficaci 7
 

Leggi tutti...
tagclouds
XHTML ?? Si, grazie. Tutorials Javascript Macromedia Web Classes Orologio digitale Yes Man - Danny Wallace Apartments in Florence James Bond Casino Royale Un Forum in ASP [Fase II] Creazione di un Layout con tab Orologio digitale Pensa se non ci avessi provato HackNews Blog Trucchi per Web Designer Galleria dinamica con JS Corso Avanzato di Web Marketin Come si fa un blog Motomondiale 2006
syndicate
RSS 2.0
Atom feed

 

CreativeCommons
Licenza Creative Commons
Questo/a opera e' pubblicata sotto una Licenza Creative Commons.

 

Calendario eventi in PHP

[05 Mar  2006]
Calendario universale in PHP, risolveremo il problema a vari livelli fino a realizzare il risultato desiderato...

Abbiamo utilizzato questo codice per il sito www.dotplanning.com in cui l'obiettivo è di avere un sistema di visualizzazione delle disponibilità? di appartamenti e Bed & Breakfast.
Può essere utilizzato anche per eventi e spettacoli naturalmente se associato opportunamente ad una struttura database.

Prima di tutto definisco i vettori per i giorni della settimana e dei mesi dell'anno, saranno necessari per la visualizzazione del calendario.

<?
$giorno = Array("L","M","M","G","V","S","D");
$nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno", "Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
?>

La struttura è studiata per ricevere dal server la data attuale o di riceverla  direttamente dall'esterno dall'utente.
Questa caratteristica ci servirà? poi per definire un'efficace sistema di navigazione per muoversi avanti ed indietro nel tempo.

<?
$aa=$_REQUEST['aa'];
if ($aa=="") $aa=date("Y");
$mm=$_REQUEST['mm'];
if ($mm=="") $mm=date("n");
?>

Iniziamo la tabella con la prima riga dei giorni della settimana. Utilizzo un ciclo FOR.

<?
print  "<table align='center'>";
// ciclo per i giorni della settimana
print "  <tr>";
for ($i=0;$i<7;$i++){
   print "    <th>".$giorno[$i]."</th>";
}
print "  </tr>";
?>

Nella fase successiva devo calcolare gli spazi da lasciare vuoti in funzione del giorno della settimana del primo giorno del mese.
Per questo calcolo il primo giorno del mese e memorizzo in $delta il giorno della settimana corrispondente.
Il valore ottenuto viene utilizzato per effettuare il ciclo.

<?
$primo=mktime(0,0,0,$mm,1,$aa); //calcolo il primo giorno del mese
$delta=date("w",$primo)-1;

print "  <tr>n";
for ($i=0;$i<$delta;$i++){
   print "    <td>&nbsp;</td>";
}
?>

Finalmente posso effettuare il ciclo per posizionare correttamente i giorni del mese nel calendario, dal primo all'ultimo (date("t",$primo)).
Il meccanismo per andare a capo tiene conto del valore $delta calcolato nel passaggio precedente.

<?
for ($i=1;$i<=date("t",$primo);$i++){

  if (($i+$delta)%7==1) print "  <tr>"; //inizio riga
 
    if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) {
      print "    <td style='border:1px solid #f00'>".$i."</td>";
    } else print "    <td>".$i."</td>";
 
  if (($i+$delta)%7==0) print "  </tr>"; //chiusura riga
}
print  "</table>n";
?>

Navigazione del tipo  « Marzo 2006 »

Ed infine creiamo un sistema per muoversi avanti ed indietro nel tempo, a partire dai valori correnti, tenendo conto del passaggio di anno se $mese==1 oppure se $mese==12.

<?
   $anno=$aa; $mese=$mm;
   if ($mese==1) $back="aa=".($anno-1)."&mm=12";     
   else $back="aa=".$anno."&mm=".($mese-1);
   if ($mese==12) $next="aa=".($anno+1)."&mm=1";     
   else $next="aa=".$anno."&mm=".($mese+1);

   print "     <div align='center'>";
   print "<a href="?".$back."">&laquo;</a> &nbsp; ";
   print "<b>".$nomemese[$mm-1]." &nbsp;".$aa."</b> &nbsp; ";
   print "<a href="?".$next."">&raquo;</a>";
   print "     </div>";
?>

Navigazione con menu a tendina

<?
print "<div align='center'>";
print "<form method='get' action='calendario.php' name='modulo'>";

print "<select name='mm' onchange='document.modulo.submit()'>";
for ($i=1;$i<=12;$i++){
    if ($i==$mm)   print "<option value='$i' selected>".$nomemese[$i-1]."</option>";
    else   print "<option value='$i'>".$nomemese[$i-1]."</option>";
}
print "</select> &nbsp;";
print "<select name='aa' onchange='document.modulo.submit()'>";
for ($i=date("Y")-10;$i<=date("Y")+100;$i++){
   if ($i==$aa) print "<option value='$i' selected>".$i."</option>";
   else print "<option value='$i'>".$i."</option>";
}
print "</select>";
print "</form></div>";
?>

 
extralink
yappy.it © 2003/2004/2005/2006/2007 Fight Spam! Click Here!
Valid css2 & xhtml 1.0 - powered by dotflorence.com
--