<?php
/******************************************************************************/
/* class_calendar.php: Gregorian calendar to easily create calendars. */
/* Copyright (C) 2005 Ken Stanley <phpclasses@kennethpaul.com> */
/* */
/* This library is free software; you can redistribute it and/or */
/* modify it under the terms of the GNU Lesser General Public */
/* License as published by the Free Software Foundation; either */
/* version 2.1 of the License, or (at your option) any later version. */
/* */
/* This library is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */
/* Lesser General Public License for more details. */
/* */
/* You should have received a copy of the GNU Lesser General Public */
/* License along with this library; if not, write to the Free Software */
/* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
/******************************************************************************/
include_once('class_calendar.php');
/* Check to see if the user requested a specific language */
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'en';
/* Create the class object */
$cal = new calendar($lang);
/* Pad all digits less than ten with a leading zero */
$cal->pad_dates = TRUE;
/* This sets an upper and lower limit for the year */
$cal->min_year = 1977;
$cal->max_year = 2007;
/* Set the current month, day and year; either use requested date or today's date */
$cal->month = (isset($_GET['month']) ? $_GET['month'] : date("m"));
$cal->day = (isset($_GET['day']) ? $_GET['day'] : date("d"));
$cal->year = (isset($_GET['year']) ? $_GET['year'] : date("Y"));
/* Validate the date we have to ensure it falls within our parameters */
$cal->valid_date($cal->month, $cal->day, $cal->year);
/* Create the array that contains the requested month */
$cal->month_array = $cal->get_month($cal->month, $cal->year);
/* Get the length of the requested month */
$cal->month_length = $cal->month_length($cal->month, $cal->year);
/* This array holds the day name and the month name */
$cal->name = array(
'day' => $cal->day_name($cal->get_day($cal->month, $cal->day, $cal->year)),
'month' => $cal->month_name($cal->month)
);
/* Check to see if the user requested to view the events for a given date */
$get_events = (isset($_GET['ge']) && is_numeric($_GET['ge'])) ? $_GET['ge'] : 0;
/* Check to see if the user requested to store an event */
$add_event = (isset($_POST['e'])) ? $_POST['e'] : NULL;
/* Add the event to the SQLite database */
if (!is_null($add_event)) {
$cal->add_event($cal->month, $cal->day, $cal->year, $add_event);
}
/* Check to see if the user requested to delete an event */
$del_event = (isset($_POST['d'])) ? $_POST['d'] : NULL;
if (!is_null($del_event)) {
$cal->del_event($del_event);
}
/* Cycle through all possible parameters and build a query string for the forms;
this ensures consistency for the end-user */
$query_string = '';
if (isset($_GET) && (sizeof($_GET) > 0)) {
$query_string .= '?';
}
if (isset($cal->month) && is_numeric($cal->month)) {
$query_string .= "month=" . $cal->month;
}
if (isset($cal->day) && is_numeric($cal->day)) {
$query_string .= "&day=" . $cal->day;
}
if (isset($cal->year) && is_numeric($cal->year)) {
$query_string .= "&year=" . $cal->year;
}
if (isset($get_events) && is_numeric($get_events)) {
$query_string .= "&ge=" . $get_events;
}
if (isset($lang) && is_string($lang)) {
$query_string .= "&lang=" . $lang;
}
/* End building query_string */
?>
<html lang="en">
<head>
<title>Calendar: <?php printf("%s, %s %s, %s", $cal->name['day'], $cal->name['month'], $cal->day, $cal->year);?></title>
<meta http-equiv="Pragma" content="No-cache">
<style type="text/css" media="screen">
BODY, FORM {
background-color: white; color: black;
font-size: 12px;
margin: 0; padding: 0;
}
#CAL {
border: 1px solid black;
background-color: darkred;
}
#CAL A.DAY:LINK, #CAL A.DAY:VISITED {
display: block;
width: 100%; height: 100%;
color: red;
font-weight: bolder;
text-decoration: none;
}
#CAL A.DAY:HOVER {
background-color: red;
color: white;
}
#CAL A.NORMAL:LINK, #CAL A.NORMAL:VISITED {
color: red;
}
#CAL A.NORMAL:HOVER {
color: white;
background-color: red;
}
#CAL .HEADER {
background-color: white; color: black;
font-weight: bolder;
border-bottom: 1px solid black;
padding: 2px 4px 2px 4px;
}
#CAL .FOOTER {
background-color: white; color: black;
font-weight: bolder;
border-top: 1px solid black;
padding: 2px 4px 2px 4px;
}
#CAL .EVENT {
background-color: white; color: black;
padding: 2px 4px 2px 4px;
}
#CAL .INDENT {
width: 100%; height: 100%;
text-indent: 10px;
}
#CAL .DAY_NORMAL {
background-color: white;
}
#CAL .DAY_SELECTED {
color: white;
font-weight: bolder;
}
</style>
</head>
<body>
<table border=0 cellpadding=0 cellspacing=0 width="100%" style="height: 100%">
<tr>
<td align="center" valign="middle">
<table id="cal" border=0 cellpadding=0 cellspacing=5 width=300>
<tr>
<td align="left" class="header" colspan=7>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tr>
<td>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get" name="lang">
<input type="hidden" name="month" value="<?php echo $cal->month;?>">
<input type="hidden" name="day" value="<?php echo $cal->day;?>">
<input type="hidden" name="year" value="<?php echo $cal->year;?>">
<label>Language:</label>
<select name="lang" onchange="document.forms.lang.submit()">
<option value="en" <?php if ($lang == "en") { echo "selected"; }?>>English
<option value="fr" <?php if ($lang == "fr") { echo "selected"; }?>>French
<option value="de" <?php if ($lang == "de") { echo "selected"; }?>>German
<option value="hu" <?php if ($lang == "hu") { echo "selected"; }?>>Hungarian
<option value="it" <?php if ($lang == "it") { echo "selected"; }?>>Italian
</select>
</form>
</td>
<td align="left">
<a class="normal" href="<?php echo $_SERVER['PHP_SELF'];?>">Reset</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" valign="middle" class="header" colspan=7>
<?php printf("%s, %s %s, %s", $cal->name['day'], $cal->name['month'], $cal->day, $cal->year);?>
</td>
</tr>
<tr>
<?php
for ($i = 0; $i < 7; $i += 1) {
?>
<td align="center" valign="middle" class="header"><?php echo $cal->day_name($i, 2);?></td>
<?php
}
?>
</tr>
<?php
for ($i = 0; $i <= 5; $i += 1) {
?>
<tr>
<?php
for ($j = 0; $j <= 6; $j += 1) {
$d = $cal->month_array[$i][$j];
if ($d == 0) {
?>
<td align="center" valign="middle" class="day_selected"> </td>
<?php
} else {
$num_events = $cal->num_events($cal->month, $d, $cal->year);
if ($num_events > 0) {
$day = sprintf(
"<a class=\"day\" href=\"%s?month=%s&day=%s&year=%s&lang=%s&ge=1\">%s</a>",
$_SERVER['PHP_SELF'],
(int)$cal->month,
(int)$d,
(int)$cal->year,
$lang,
$d
);
} else {
$day = $d;
}
if ($d == $cal->day) {
?>
<td align="center" valign="middle" class="day_selected"><?php echo $day;?></td>
<?php
} else {
?>
<td align="center" valign="middle" class="day_normal"><?php echo $day;?></td>
<?php
}
}
}
?>
</tr>
<?php
}
?>
<tr>
<td align="center" valign="middle" class="footer" colspan=7>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
<input type="hidden" name="lang" value="<?php echo $lang;?>">
<select name="month">
<?php
for ($i = 1; $i <= 12; $i += 1) {
if ($i == $cal->month) {
?>
<option value="<?php echo $i;?>" SELECTED><?php echo $cal->month_name($i);?>
<?php
} else {
?>
<option value="<?php echo $i;?>"><?php echo $cal->month_name($i);?>
<?php
}
}
?>
</select>
<input type="text" name="day" value="<?php echo $cal->day;?>" size=2 maxlength=2>
<input type="text" name="year" value="<?php echo $cal->year;?>" size=4 maxlength=4>
<input type="submit" value="Submit">
</form>
</td>
</tr>
<?php
if ($cal->has_sqlite) {
?>
<tr>
<td align="center" class="footer" colspan=7>
<form action="<?php echo $_SERVER['PHP_SELF'] . $query_string;?>" method="post">
<label>Add Event:</label>
<input type="text" name="e">
<input type="submit" value="Add">
</form>
</td>
</tr>
<?php
if ($get_events == TRUE) {
$events = $cal->get_events($cal->month, $cal->day, $cal->year);
if ($events) {
for ($i = 0, $j = sizeof($events); $i < $j; $i += 1) {
?>
<tr>
<td class="event" colspan=7>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><strong><cite><?php echo $cal->date("%a, %d %b %Y %T %Z", $events[$i]['added']);?></cite></strong></td>
<td align="right">
<form action="<?php echo $_SERVER['PHP_SELF'] . $query_string;?>" method="post">
<input type="hidden" name="d" value="<?php echo $events[$i]['id'];?>">
<input type="submit" value="Delete">
</form>
</td>
</tr>
<tr>
<td colspan=2><span class="indent"><?php echo $events[$i]['event'];?></span></td>
</tr>
</table>
</td>
</tr>
<?php
}
}
}
}
?>
</table>
</td>
</tr>
</table>
</body>
</html>
|