Un calendario perpetuo in PHP

Con questo breve tutorial commenteremo un codice php dedicato alla creazione di un semplice calendario perpetuo; capiremo poi come integrare il calendario con una tabella MySql ove inserire wholesale nfl jerseys eventi che verranno visualizzati cliccando sul relativo giorno del calendario.Nel seguito andremo a commentare il codice che genera il calendario:

<?php
//calendario perpetuo, non serve altro che chiamare la funzione con calendario($mese,$anno)
function calendario($mese,$anno)
{

// Se e’ presente la variabile “x” prendo mese ed anno altrimenti prendo i dati di oggi (data del server!)

isset($_GET[‘x’]) ? $x = $_GET[‘x’] : $x = “”;
if ($x == “”)
{<br nba jerseys sales />
$mese_ = $mese;
$anno_ = $anno;
}
else
{
$mese_ = (int)strftime( “%m” ,(int)$_GET[‘x’]);
$anno_ = (int)strftime( “%Y” ,(int)$_GET[‘x’]);
}

// prendo i dati precedenti e successivi…

$prev = mktime(0, 0, 0, $mese_ -1, 1, $anno_);
$next = mktime(0, 0, 0, $mese_ +1, 1, $anno_);

// Rendo i tempi del server…umani.

$human_month = array(“error”, “Gennaio”, “Febbraio”, “Marzo”, “Aprile”, “Maggio”, “Giugno”, “Luglio”, “Agosto”, “Settembre”, “Ottobre”, “Novembre”, “Dicembre” );
$settimana = array(“Lun”, “Mar”, “Mer”, “Gio”, “Ven”, “Sab”, “Dom”);
$colonne = 7;
$giorni = date(“t”,mktime(0, 0, 0, $mese_, 1, $anno_)); //giorni del mese in questione
$primo_lunedi= date(“w”,mktime(0, 0, 0, $mese_, 1, $anno_)); //Array_parte da 0

if($primo_lunedi==0)
$primo_lunedi = 7; //non siamo americani

// Creiamo la tabella ove visualizzare intestazione (<< Mese Anno >>)

print(“<table width=\”210\” colspacing=\”0\” border=\”0\”>”); //table
print(“\n\t<tr height=\”20\”>\n\t\t<td colspan=\””.$colonne.”\” align=\”center\”><a href=\”?x=”.$prev.”\”><<</a> <span>”.$human_month[(int)$mese_].” “.$anno_.”</span> <a href=\”?x=”.$next.”\”>>></a></td>\n\t</tr>”); //mese/anno

// Mostro i giorni della settimana…

foreach($settimana as $val)
print(“\n\t\t<td height=\”20\”>”.$val.”\t</td>”);

print(“</tr>”);
// Stampiamo i NFL Jerseys Cheap giorni del mese…
for($i = 1; $i<$giorni+$primo_lunedi; $i++)
{
if($i%$colonne+1==0)
print(“\n\t<tr>”);

if($i<$primo_lunedi)
print(“\n\t\t<td> </td>”);
else
{
$giorno_= $i-($primo_lunedi-1);
$a = strtotime(date($anno_.”-“.$mese_.”-“.$giorno_));
$b = strtotime(date(“Y-m-d”));

// Evidenziamo oggi…
if($a != $b)
print(“\n\t\t<td><a href=\”?x=”.$a.”\”>”.$giorno_.”</a></td>”);
else
print(“\n\t\t<td><a href=\”?x=”.$a.”\”><strong>”.$giorno_.”</strong></a></td>”);
}

if($i%$colonne==0)
print(“\n\t</tr>”);
}

print(“\n\t<tr height=\”30\”> \n\t</tr>”);
print(“\n</table>”);
}

// Richiamiamo la funzione che genera il calendario…
calendario(date(“m”),date(“Y”));
?>

Salviamo il codice sopra esposto in un file chiamato calendario.php. Avviamo il Web Server (supponiamo Apache) ed inserendo il file appena salvato all’interno della cartella di lavoro wholesale nfl jerseys che desideriamo (Supponendo di utilizzare Windows ed EasyPHP possiamo posizionare il file in c:\Programmi\EasyPHP1.8\www\calendario.php)

Per lanciare lo script bastera’:

TASTOWIN + R — iexplore http://127.0.0.1/calendario.php<INVIO>

Si aprira’ Internet Explorer e comparira’ il calendario. Al calendario mancano ovviamente gli stili che verranno associati dallo sviluppatore della parte grafica. Potremo collegare oakley sunglasses sale il calendario ad un Database MySql in modo da visualizzare gli eventi giornalieri dando particolare enfasi ai giorni che presentano degli eventi in modo che l’utente possa trovarli con piu’ facilita’.

Per ogni pagina potremo inserire un semplice form con il campo hidden x per inserire gli eventi direttamente nel Database con i seguenti campi: Titolo, +TV Autore, Descrizione, data_Inserimento, Giorno_Cal (corrisponde ad x del codice PHP sopra esposto).

5 pensieri riguardo “Un calendario perpetuo in PHP”

  1. C’è almeno un errore in questa righe:

    print(“”); //table
    print(“\n\t\n\t\t<< ”.$human_month[(int)$mese_].” “.$anno_.” >>\n\t”); //mese/anno

  2. Ciao Nik,

    e’ probabile che nel copia incolla che fai dal blog le virgolette vengano codificate in maniera scorretta.
    Prova a sostituirle con le virgolette presenti sopra il tasto “2”; vedrai che tutto funziona correttamente.

    Se hai suggerimenti o script scrivici pure avremo piacere a pubblicare tutto il materiale.

    Grazie per la segnalazione!

  3. Si, infatti funziona tutto con le virgolette giuste. Sarebbe molto utile un calendario che invece di essere disposto in modo classico, fosse messo con i giorni per esteso. Tutti in un’unica riga. Ovviamente i giorni partono tutti da 1 fino all’ultimo del mese, ma i giorni della settimana ovviamente non da lunedi, ma dal giorno corrispondente al primo di quel mese… come si può fare ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.