• User

    Calendario con eventi

    Carissimi, cercavo nel vostro o nostro forum l'aiuto per un piccolo calendario con eventi ma non sono riuscito a comunicare._Oggi ho trovato uno script un po' strano, quando vado a vedere gli eventi del mese di dicembre o gennaio mi va avanti di un mese rispetto a dove mi trovo, non sono esperto altrimenti non chiederei aiuto vorrei postare lo script nella speranza che qualcuno possa aiutarmi.

    P.S. se vi è qualche script di calendario con massimo due file ne sarei grato.
    Scusate per la lunghezza ma ho bisogno.

    [php]<?php
    //Declare some variables
    //
    $calendar_script = "calendar2.php"; //The location of this script
    $calendar_language = "uk"; //The extension of the calendar language file.
    $content_background_color = "#EEEEEE"; //Background color of the column
    $content_font_color = "#000000"; //The font color
    $content_font_size = 10; //Font-size in pixels
    $content_font_style = "normal"; //Set to italic or normal
    $content_font_weight = "normal"; //Set to bold or normal
    $today_background_color = "white"; //Background color of the column
    $today_font_color = "green"; //The font color
    $today_font_size = 10; //Font-size in pixels
    $today_font_style = "normal"; //Set to italic or normal
    $today_font_weight = "bold"; //Set to bold or normal
    $event_background_color = "#DDDDDD"; //Background color of the column
    $event_background_color2 = "#EEEEEE"; //Background color of the 2nd column (event popup)
    $event_font_color = "#000000"; //The font color
    $event_font_size = 10; //Font-size in pixels
    $event_font_style = "normal"; //Set to italic or normal
    $event_font_weight = "bold"; //Set to bold or normal
    $event_popup_width = "250"; //Width of the popup for the events
    $event_popup_height = "350"; //Height of the popup for the events

    $head_background_color = "#DDDDDD"; //Background color of the column
    $head_font_color = "green"; //The font color
    $head_font_size = 11; //Font-size in pixels
    $head_font_style = "normal"; //Set to italic or normal
    $head_font_weight = "bold"; //Set to bold or normal

    // CSS OPTIONS FOR WEEK DAYS
    $days_head_background_color = "#DDDDDD"; //Background color of the column
    $days_head_font_color = "gray"; //The font color
    $days_head_font_size = 11; //Font-size in pixels
    $days_head_font_style = "normal"; //Set to italic or normal
    $days_head_font_weight = "bold"; //Set to bold or normal

    $table_border = 0; //The border of the table
    $table_cellspacing = 1; //Cellspacing of the table
    $table_cellpadding = 2; //Cellpadding of the table
    $table_width = ''; //Table width in pixels or %'s
    $table_height = ''; //Table height in pixels or %'s

    $head_link_color = "green"; //The color of the link for previous/next month

    $font_family = "Verdana";

    /* 17 June 2004 : Check readme.txt for MySQL code for the database table */
    $events_from_database = false; //Set to true if you want to retrieve events
    $database = "calenbiagio"; //Name of the database within the event_table
    $server = "localhost"; //Name of the server
    $username = "root"; //MySQL username
    $password = ""; //MySQL password
    $event_table = "calendar_events"; //Name of the calendar_events
    //
    /////////////////////////////////////////////

    /////////////////////////////////////////////
    //Load the language into usable variables
    //
    //TRANSLATION (18 May 2004)
    // : Fill in the names of the days/months in variables
    //e-man : LOAD TRANSLATION FILE INTO VARIABLES (from darussol)(19 May 2004)
    // : Put the days/months names from language file into a array
    $language_file = "calendar." . $calendar_language; //Language file into variable
    $fd = fopen( $language_file, "r" ); //Open the language file
    $fd = fread( $fd, filesize( $language_file ) ); //Read the opened file
    $language_array = explode( "\n" , $fd ); //Put file info into array
    $dayname = array_slice($language_array,0,7); //The names of the days
    $monthname = array_slice($language_array,7); //The rest of the language file are the monthnames
    //
    /////////////////////////////////////////////

    /////////////////////////////////////////////
    //Use the date to build up the calendar. From the Query_string or the current date
    //
    if( isset( $_GET['date'] ) )
    list($month,$year) = explode("-",$GET['date']);
    else
    {
    $month = date("m");
    $year = date("Y");
    }
    //
    /////////////////////////////////////////////
    $date_string = mktime(0,0,0,$month,1,$year); //The date string we need for some info... saves space ^
    ^
    $day_start = date("w",$date_string); //The number of the 1st day of the week
    /////////////////////////////////////////////
    //Filter the current $_GET['date'] from the QUERY_STRING
    //
    $QUERY_STRING = ereg_replace("&date=".$month."-".$year,"",$_SERVER['QUERY_STRING']);
    //
    /////////////////////////////////////////////

    /////////////////////////////////////////////
    //Calculate the previous/next month/year
    //
    if( $month < 12 )
    {
    $next_month = $month+1;
    $next_date = $next_month."-".$year;
    }
    else
    {
    $next_year = $year+1;
    $next_date = "1-".$next_year;
    $next_month = 1;
    }
    if( $month > 1 )
    {
    $previous_month = $month-1;
    $next_month = $month+1;
    $previous_date = $previous_month."-".$year;
    }
    else
    {
    $previous_year = $year-1;
    $previous_date = "12-".$previous_year;
    $previous_month = 12;
    }
    //
    /////////////////////////////////////////////
    // DEFINITION OF THETRANSLATED MONTH+YEAR TO BE USED IN THE TABLE AND INFO-TITLES (18 May 2004)
    // e-man : USING THE VALUES OF THE PREVIOUS AND NEXT MONTH FOR THE TITLE DAY (19 May 2004);
    $table_caption_prev = $monthname[$previous_month-1] . " " . $year; // previous
    $table_caption = $monthname[date("n",$date_string)-1] . " " . $year; // current
    if ($next_month == 13){
    $next_month = 1;
    $year++;
    }
    $table_caption_foll = $monthname[$next_month-1] . " " . $year; // following

    /////////////////////////////////////////////
    //Print the calendar css code
    //
    echo "
    <style type="text/css">
    a.cal_head
    {
    color: " . $head_link_color . ";
    }
    a.cal_head:hover
    {
    text-decoration: none;
    }
    .cal_head
    {
    background-color: " . $head_background_color . ";
    color: " . $head_font_color . ";
    font-family: " . $font_family . ";
    font-size: " . $head_font_size . ";
    font-weight: " . $head_font_weight . ";
    font-style: " . $head_font_style . ";
    }
    .cal_days /darussol/
    {
    background-color: " . $days_head_background_color . ";
    color: " . $days_head_font_color . ";
    font-family: " . $font_family . ";
    font-size: " . $days_head_font_size . ";
    font-weight: " . $days_head_font_weight . ";
    font-style: " . $days_head_font_style . ";
    }
    .cal_content
    {
    background-color: " . $content_background_color . ";
    color: " . $content_font_color . ";
    font-family: " . $font_family . ";
    font-size: " . $content_font_size . ";
    font-weight: " . $content_font_weight . ";
    font-style: " . $content_font_style . ";
    }
    .cal_today
    {
    background-color: " . $today_background_color . ";
    color: " . $today_font_color . ";
    font-family: " . $font_family . ";
    font-size: " . $today_font_size . ";
    font-weight: " . $today_font_weight . ";
    font-style: " . $today_font_style . ";
    }
    .cal_event, a.cal_event /* e-man 17-06-04 */
    {
    background-color: " . $event_background_color . ";
    color: " . $event_font_color . ";
    font-family: " . $font_family . ";
    font-size: " . $event_font_size . ";
    font-weight: " . $event_font_weight . ";
    font-style: " . $event_font_style . ";
    }
    </style>
    ";
    //
    /////////////////////////////////////////////

    /////////////////////////////////////////////
    //show events in popup?
    //
    if (isset ($_GET['show_event'])){
    list ($year, $month, $day) = explode ("-", $_GET['event_date']);
    $query = "
    SELECT *
    FROM " . $event_table . "
    WHERE EventYear = '" . $year . "'
    AND EventMonth = '" . $month . "'
    AND EventDay = '" . $day . "'
    ORDER BY EventTime ASC
    ";
    /* connect to the database /
    $database_connection = mysql_connect ($server, $username, $password);
    mysql_select_db ($database, $database_connection);
    $result = mysql_query ($query) or die(mysql_error());
    /
    initize the variabele color_alternated (boolean) /
    $color_alternated = false;
    /
    header of the table /
    echo "<table width="100%" border="" . $table_border . "" cellpadding="" . $table_cellpadding . "" cellspacing="" . $table_cellspacing . "">";
    $date_string = mktime(0,0,0,$month,$day,$year);
    $month = sprintf("%01d",$month);
    echo "<tr><td align="center" class="cal_head" colspan="2">".$day." " . $monthname[$month] . " ".$year."</td></tr>";
    /
    loop through the results via a mysql_fetch_assoc () /
    while ($record = mysql_fetch_assoc ($result)){
    if ($color_alternated){
    $color_alternated = false;
    $background_color_row = $event_background_color;
    }
    else{
    $color_alternated = true;
    $background_color_row = $event_background_color2;
    }
    echo "<tr class="cal_event">
    <td style="background-color:".$background_color_row."" width="1">" . $record['EventTime'] . "</td>
    <td style="background-color:".$background_color_row."">" . nl2br($record['Event']) . "</td>
    </tr>";
    }
    /
    close the table /
    echo "</table>";
    /
    bring an exit so the script will terminate*/
    exit;
    }
    //
    /////////////////////////////////////////////

    /////////////////////////////////////////////
    //Print the calendar table header
    //
    echo "
    <script language="javascript">
    function open_event(date_stamp){
    window.open("" . $calendar_script . "?show_event=true&event_date=" + date_stamp, "calendar_popup","height=" . $event_popup_height . ",width=".$event_popup_width."");
    }
    </script>
    <table border="" . $table_border . "" cellpadding="" . $table_cellpadding . "" cellspacing="" . $table_cellspacing . "" style="height:" . $table_height . "" width="" . $table_width . "">
    <tr>
    <td align="center" class="cal_head"><a class="cal_head" href="" . $_SERVER['PHP_SELF'] . "?" . $QUERY_STRING . "&date=" .
    $previous_date . "" title="" . $table_caption_prev . "">«</a></td>
    <td align="center" class="cal_head" colspan="5">" . $table_caption . "</td>
    <td align="center" class="cal_head"><a class="cal_head" href="" . $_SERVER['PHP_SELF'] . "?" . $QUERY_STRING . "&date=" .
    $next_date . "" title="" . $table_caption_foll . "">»</a></td>
    </tr>
    <tr>
    <td class="cal_days">".$dayname[0]."</td>
    <td class="cal_days">".$dayname[1]."</td>
    <td class="cal_days">".$dayname[2]."</td>
    <td class="cal_days">".$dayname[3]."</td>
    <td class="cal_days">".$dayname[4]."</td>
    <td class="cal_days">".$dayname[5]."</td>
    <td class="cal_days">".$dayname[6]."</td>
    </tr><tr>
    ";
    //
    /////////////////////////////////////////////

    /////////////////////////////////////////////
    //The empty columns before the 1st day of the week
    //
    for( $i = 0 ; $i < $day_start; $i++ )
    {
    echo "<td class="cal_content"> </td>";
    }
    //
    /////////////////////////////////////////////

    $current_position = $day_start; //The current (column) position of the current day from the loop

    $total_days_in_month = date("t",$date_string); //The total days in the month for the end of the loop
    /////////////////////////////////////////////
    //Retrieve events for the current month + year
    //e-man : added 07 June 04
    if ($events_from_database)
    {
    $database_connection = mysql_connect ($server, $username, $password);
    mysql_select_db ($database, $database_connection);
    $result = mysql_query("
    SELECT *
    FROM " . $event_table . "
    WHERE
    EventYear = '" . $year . "'
    AND
    EventMonth = '" . $month . "'
    ");
    while ($record = mysql_fetch_assoc($result)){
    $event[$record['EventDay']] = $record;
    }
    }
    //
    /////////////////////////////////////////////
    /////////////////////////////////////////////
    //Loop all the days from the month
    //
    for( $i = 1; $i <= $total_days_in_month ; $i++)
    {
    $class = "cal_content";

    if( $i == date("j") && $month == date("n") && $year == date("Y") )
    $class = "cal_today";

    $current_position++;
    /* is there any event on this day? Yes, create a link. No clear the (previous) string */
    $link_start = "";
    $link_end = "";

    /* if there is an event do */
    

    if( isset($event*) )
    {
    $link_start = "<a href="javascript:;" class="cal_event" onclick="javascript: open_event('".$year."-".$month."-".$i."');">";
    $link_end = "</a>";
    $class = "cal_event";
    }
    /* for the event filter /
    /
    e-man : added 07 June 04 */
    $date_stamp = $year."-".$month."-".sprintf( "%02d",$i);

    echo "<td align="center" class="" . $class . "">" . $link_start . $i . $link_end . "</td>";
    if( $current_position == 7 )
    {
    echo "</tr><tr>\n";
    $current_position = 0;
    }
    }
    //
    /////////////////////////////////////////////

    $end_day = 7-$current_position; //There are

    /////////////////////////////////////////////
    //Fill the last columns
    //
    for( $i = 0 ; $i < $end_day ; $i++ )
    echo "<td class="cal_content"></td>\n";
    //
    /////////////////////////////////////////////

    echo "</tr></table>"; // Close the table
    ?>[/php]
    Questo script si trova nel WEB, è collegato ad un db e il file uk rappresenta un calendario dove ci sono i giorni e i mesi della settimana.
    Ci sarà qualcuno che potrà aiutarmi.
    Biagio