Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    aiuto su calendario perpetuo

    Codice PHP:
    <?php
    //Sat_
    //calendario perpetuo, non serve altro che chiamare la funzione con calendario($mese,$anno)
    //open source, fanne un po' che ti pare.


    function calendario($mese,$anno){
    Global 
    $_GET;

    if (
    $_GET['x'] == NULL){
    $mese_ $mese;
    $anno_ $anno;
    }
    else{
    $mese_ = (int)strftime"%m" ,(int)$_GET['x']);
    $anno_ = (int)strftime"%Y" ,(int)$_GET['x']);
    }


    $prev mktime(000$mese_ -11,  $anno_);

    $next mktime(000$mese_ +11,  $anno_);


    $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(000$mese1$anno));  //giorni del mese in questione
    $primo_lunedidate("w",mktime(000$mese1$anno));  //Array_parte da 0

    if($primo_lunedi==0){
    $primo_lunedi 7;  //siamo mica americani
    }

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

    foreach($settimana as $val){

    print(
    "\n\t\t<td height=\"20\" class=\"txtwhiteB\">".$val."\t</td>");

    }
    print(
    "</tr>");

    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"));

    /* uncomment when debugging
    print($giorno_."-".$mese_."-".$anno_);
    print(" -> ");
    print(strftime("%d-%m-%Y",$a));
    //print($a);
    print(" -> ");
    print(strftime("%d-%m-%Y",$b));
    //print($b);
    print("
    ");
    */

    if($a != $b){
    print(
    "\n\t\t<td class=\"txtredB\"><a href=\"?x=".$a."\">".$giorno_."</a></td>");
    }
    else{
    print(
    "\n\t\t<td><a href=\"?x=".$a."\"><span class=\"txtwhiteB\">".$giorno_."</span></a></td>");
    }
    }
    if(
    $i%$colonne==0){
    print(
    "\n\t</tr>");
    }
    }                                                                                                       
    print(
    "\n\t<tr height=\"30\">\n\t</tr>");
    print(
    "\n</table>");
    }
    calendario(date("m"),date("Y"));
    ?>
    Partendo da questo calendario, chi mi da una mano per un sistema di gestione eventi.

    Tipo segnare se quel giorno la stanza è libera o no, o si sta a casa o no.....

  2. #2
    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","Maggi o","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></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 "&laquo; ";
    print "".$nomemese[$mm-1]." ".$aa." ";
    print "&raquo;";
    print " </div>";
    ?>


    Ho trovato anche questo, ma non riesco a farlo funzionare...

    Ovviamente manca la parte di DB.

  3. #3
    Il primo mi funziona, ma mi da sempre divembre? come mai?

    E' caricato a http://www.ilbonzo.org/calendario/cal.php

    se volete dare un'occhiata.

    Il secondo non riesco a farlo andare, qualcuno sa cosa manca?

  4. #4
    Nessuno sa perché il primo non funziona?

    Il mese resta sempre dicembre

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.