Calendario eventi in PHP

24 01 2008

    CalendarioEcco una mia creazione, niente di particolarmente complesso, solo un calendario eventi scritto in php che non fa uso di alcun database. Il suo utilizzo è semplicissimo, in pratica è composto da soli 3 files: calendario.php, eventi_dispari.php, eventi_pari.php. Il primo file genera una tabella contenente il calendario, mentre gli altri due contengono gli eventi che verranno visualizzati al suo interno. Prima di tutto partiamo con un esempio

    Come vedete gli eventi vengono visualizzati al passaggio del mouse; l’effetto grafico usato sfrutta MooTools, ma procediamo per gradi e partiamo dal codice.

    ##calendario.php

    <?php
    $data = getdate(time());
    $mese = $data[‘mon’];
    $anno = $data[‘year’];$first = getdate(mktime (0, 0, 0, $mese, 1, $anno));
    $first_day = $first [‘wday’];

    $last = getdate(mktime (0, 0, 0, $mese + 1, 0, $anno));
    $last_day = $last[‘wday’];
    $max_giorno = $last[‘mday’];

    if ($mese & 1)
    {
    include (“eventi_dispari.php”);
    }
    else
    {
    include (“eventi_pari.php”);
    }

    $mesi = array(”,’gennaio’,’febbraio’,’marzo’,’aprile’,’maggio’,’giugno’,’luglio’, ‘agosto’,’settembre’,’ottobre’,’novembre’,’dicembre’);

    echo “<table id=\”calendario\”>\n”;
    echo “\t\t\t<TR>\n”;
    echo “\t\t\t\t<TH scope=\”col\” colspan=\”7\” class=\”mese\”>”.$mesi[$mese].”</TH>\n”;
    echo “\t\t\t</TR>\n”;
    echo “\t\t\t<TR>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>lu</TH>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>ma</TH>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>me</TH>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>gi</TH>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>ve</TH>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>sa</TH>\n”;
    echo “\t\t\t\t<TH scope=\”col\” class=\”settimana\”>do</TH>\n”;
    echo “\t\t\t</TR>\n”;

    $giorno = 1;
    $inizio = false;
    $fine = false;

    if ($first_day == 0)
    $first_day = 7;

    if ($last_day == 0)
    $last_day = 7;

    while ($giorno <= $max_giorno)
    {
    echo “\t\t\t<TR>\n”;

    for ($k = 0; $k < 7; $k++)
    {
    if ($inizio != true && $k < $first_day – 1)
    {
    echo “\t\t\t\t<TD class=\”giorno\”></TD>\n”;

    if ($k == $first_day – 2)
    $inizio = true;
    }
    else if ($fine == true)
    echo “\t\t\t\t<TD class=\”giorno\”></TD>\n”;

    else
    {
    $festa = array(‘giorno’,’festivo’);
    $p;
    if ( $k == 6 )
    $p = 1;

    else
    $p = 0;

    if ( $festivi[0] != null)
    {
    for ($l = 0; $l < count($festivi); $l++)
    {
    if ( $giorno == $festivi[$l])

    $p = 1;
    }
    }

    echo “\t\t\t\t<TD class=\””.$festa[$p].”\”>”;

    if ($eventi[$giorno] != null)
    echo “<a class=\”Tips\” title=\””.$eventi[$giorno].”\” href=\””.$link[$giorno].”\”>”.$giorno.”</a></TD>\n”;
    else
    echo $giorno.”</TD>\n”;

    $giorno++;
    }

    if ($giorno > $max_giorno)
    $fine = true;

    }

    echo “\t\t\t</TR>\n”;
    }

    echo “\t\t</table>\n”;

    ?>

    Questo file (calendario.php) inizialmente controlla la data attuale e di conseguenza decide se usare il file relativo ai mesi dispari (eventi_dispari.php) o quello relativo ai mesi pari (eventi_pari.php), successivamente genera una tabella contenente il calendario. Per ogni giorno del mese controllerà la presenza di eventuali eventi dal file eventi_*.php ed in caso affermativo inserirà un tag <a> contenente nel campo “title” l’evento stesso e nel campo “href” un possibile suo link. In più all’interno di ogni file eventi_*.php c’è la possibilità di inserire i giorni festivi del mese (escluse le domeniche), in modo da poterle “segnare di rosso” sul calendario.

    All’interno del file compresso troverete i tre files precedentemente elencati ed altri due files: esempio.php e mootools.js, il primo è un esempio di inclusione del componente “calendario” all’interno di una pagina html, il secondo è il javascript utilizzato per l’effetto grafico al passaggio del mouse. Per eseguire l’esempio ovviamente vi basterà decomprimere il file ed avviare esempio.php tramite un server web (es. Apache) in locale o direttamente online.

    Zip Icon
    Scarica il file cliccando sull’icona.

    Advertisements

    Azioni

    Information

    One response

    11 10 2009
    Valerio

    Ciao, innanzitutto grazie mille per il tuo script… Davvero molto bello, professionale e funzionale!
    L’ho inserito sulla Home del mio sito (la prima pagina che visualizzi dopo essere entrato, http://www.in20va.it/home.php) e devo dire che è ESATTAMENTE ciò che cercavo!

    Bellissima anche la funzione che deriva dal file “MootoTools.js” per visualizzare gli Eventi passandoci sopra con il mouse!

    A tal riguardo vorrei chiederti, se possibile, come posso modificare lo sfondo ed il colore del carattere del riquadro che esce passando il mouse sopra l’evento…

    Grazie mille anticipatamente!
    A presto, spero!
    Valerio

    Rispondi

    Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

    Logo WordPress.com

    Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

    Foto Twitter

    Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

    Foto di Facebook

    Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

    Google+ photo

    Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

    Connessione a %s...




    %d blogger hanno fatto clic su Mi Piace per questo: