/*************************************************************
* This script is developed by Arturs Sosins aka ar2rsawseen, http://webcodingeasy.com
* Fee free to distribute and modify code, but keep reference to its creator
*
* This can be used to display month calendars browsable using AJAX.
* It can generate HTML and JavaScript to display a month calendar with
* links to browse the months using AJAX to avoid page reloading.
*
* For more information, examples and online documentation visit:
* http://webcodingeasy.com/PHP-classes/Ajax-calendar-class
**************************************************************/
<?php
/*********************/
//This is an example with all possible calendar customizations and generating calendar and ajax request in the same file
/*********************/
//All methods are divided in 2 groups
//One should be used in same file or scope, where calendar will be generated
//Other should be used in same file or scope, where ajax request will be made
//The ones used in if(isset($_GET['ajax_calendar'])) clause should be used within request file or scope
//The ones in else clause should be used within calendar generator file or scope
//you should always sepecify timezone when dealing with date function like used in calendar
date_default_timezone_set("Europe/Helsinki");
//declaring class instance
include("./calendar.class.php");
$calendar = new calendar();
if(isset($_GET['ajax_calendar']))
{
//if $_GET['ajax_calendar'] is set, it means request is beeing made by ajax to get days of other months or year
//make sure that you do not output anything to browser, so you won't mess json structure of calendar
//other parameters that are passed with this request are
//$_GET['date'] - for date
//$_GET['month'] - for month
//$_GET['year'] - for year
//$_GET['start'] - which day to start week with
//and any other custom parameters added
//for this example it is parameter $_GET['param'] = "value"
//set start month and year which is an oldest motnh to show
$calendar->set_start_date(1,1987);
//set end month and year which is a newest motnh to show
$calendar->set_end_date(3,1987);
//set url pattern, for all active days to be used as links where $1 will be replaced by date, $2 replaces by month and $3 by year,
$calendar->set_url_pattern("javascript:alert('Date selected $3-$2-$1');");
//$arr = array(1 => "#beginning_of_a_month", 30 => "#end_of_a_month");
//$calendar->set_events($arr);
//if ajax request is made to the same page, make sure nothing other is outputted to browser
//you can specify request url in the file where you generate calendar
//if nothing is specified then request will be made to the same page
$calendar->process_request();
}
else
{
//defining path to jquery and style css included in package
echo '<script type="text/javascript" src="./jquery.js"></script>';
echo '<style type="text/css" media="all">@import "./style.css";</style>';
//array with custom month names
$months = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
//applying custom month names
$calendar->set_months($months);
//array with custom days of week names
$weekdays = array("M", "T", "W", "Th", "F", "S", "Sun");
//applying custom days of week names
$calendar->set_weekdays($weekdays);
//define with which day to start week 0 - Monday, ..., 6 - Sunday
//here in example it is Tuesday
$calendar->set_week_start(1);
//adding request parameter name and value which will appear in ajax request
$calendar->add_request_param("param", "value");
//getting errors
$errors = $calendar->get_errors();
if(!empty($errors))
{
foreach($errors as $error)
{
echo "<p>".$error."</p>";
}
}
//generating calendar, you can specify date like in example
//if no date is specified, than todays date will be used
$calendar->generate_calendar(23,2,1987);
}
?>
|