Sei sulla pagina 1di 6

Cdigo fuente de 'Multicalendario.

php'
<html> <head> <title>Multicalendario</title> </head> <body style="font-family: Arial; font-size: 9pt"> <center><b><font face="Arial" size="3">Multicalendario</font></b><br><br> <br> <?php /****************************************************** Calender 2.21 Written by Erik Holman at 6 May 2004 Started at 16:00 and ended at 17:00 CHANGES by Daniele Russolillo, 18 May 2004 + variables for CSS definition of week days + variables for easy translation of week days and months + infotitles for previous/following URLS on the calendar Personal homepage at http://daniele.nkoni.org If you like the changes have a look at http://www.nkoni.org/ and pass it on to help 500 Ugandan AIDS Orphans. CHANGES by Erik Holman, 19 May 2004 + variables for the language file. + added possibility to load language files CHANGES by Erik Holman, 17 June 2004 + Added possibility to load events from MySQL database BUG SOLVED by Erik Holman, 24 June 2004 - Instead of loading one event, all the events will be shown now. To look for from Erik Holman changes just FIND e-man within this script... To look for from darussol changes just FIND darussol within this script... =================================== This scripts prints a calendar into a table on the page. You can set some variables to get a differend layout. Visit www.my-php.tk for more free PHP scripts. ******************************************************/ ///////////////////////////////////////////// //Declare some variables // $calendar_language = "uk"; //The extension of the calendar language file. $content_background_color $content_font_color $content_font_size $content_font_style $content_font_weight $today_background_color $today_font_color $today_font_size $today_font_style $today_font_weight $event_background_color $event_background_color2 popup) $event_font_color = $event_font_size = $event_font_style = $event_font_weight = $event_popup_width = "250"; $event_popup_height = "350"; "#000000"; //The font color 10; //Font-size in pixels "normal"; //Set to italic or normal "bold"; //Set to bold or normal //Width of the popup for the events //Height of the popup for the events = = = = = = = = = = "#EEEEEE"; "#000000"; 10; "normal"; "normal"; "white"; "green"; 10; "normal"; "bold"; //Background color of the column //The font color //Font-size in pixels //Set to italic or normal //Set to bold or normal //Background color of the column //The font color //Font-size in pixels //Set to italic or normal //Set to bold or normal //Background color of the column //Background color of the 2nd column (event

= "#DDDDDD"; = "#EEEEEE";

$head_background_color $head_font_color $head_font_size $head_font_style $head_font_weight

= = = = =

"#DDDDDD"; //Background color of the column "green"; //The font color 11; //Font-size in pixels "normal"; //Set to italic or normal "bold"; //Set to bold or normal WEEK DAYS = "#DDDDDD"; //Background color of the column = "gray"; //The font color = 11; //Font-size in pixels = "normal"; //Set to italic or normal = "bold"; //Set to bold or normal 0; 1; 2; ''; ''; //The border of the table //Cellspacing of the table //Cellpadding of the table //Table width in pixels or %'s //Table height in pixels or %'s //The color of the link for previous/next month

//darussol: CSS OPTIONS FOR $days_head_background_color $days_head_font_color $days_head_font_size $days_head_font_style $days_head_font_weight $table_border $table_cellspacing $table_cellpadding $table_width $table_height $head_link_color $font_family = "Verdana"; = = = = =

= "green";

/* 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 = "database"; //Name of the database within the event_table $server = "localhost"; //Name of the server $username = "username"; //MySQL username $password = "********"; //MySQL password $event_table = "calendar_events"; //Name of the calendar_events // ///////////////////////////////////////////// ///////////////////////////////////////////// //Load the language into usable variables // //darussol: // : //e-man : // : 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 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 = array_slice($language_array,0,7); //The names of the days //The rest of the language file are the TRANSLATION (18 May 2004) Fill in the names of the days/months in variables LOAD TRANSLATION FILE INTO VARIABLES (from darussol)(19 May 2004) Put the days/months names from language file into a array = "calendar." . $calendar_language; //Language file into

$language_file

$monthname = array_slice($language_array,7);

/////////////////////////////////////////////

//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; } // ///////////////////////////////////////////// // darussol: DEFINITION OF THETRANSLATED MONTH+YEAR TO BE USED IN THE TABLE AND INFOTITLES (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 $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: color: font-family: font-size: font-weight: font-style: } .cal_today { background-color: color: font-family: font-size: font-weight: font-style: " " " " " " . . . . . . $today_background_color . "; $today_font_color . "; $font_family . "; $today_font_size . "; $today_font_weight . "; $today_font_style . "; " " " " " " . . . . . . $content_background_color . "; $content_font_color . "; $font_family . "; $content_font_size . "; $content_font_weight . "; $content_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 . "&amp;date=" . $previous_date . "\" title=\"" . $table_caption_prev . "\">&laquo;</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 . "&amp;date=" . $next_date . "\" title=\"" . $table_caption_foll . "\">&raquo;</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\">&nbsp;</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[$i]) ) { $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>"; ?> </center> </body> </html> // Close the table

Potrebbero piacerti anche