* #2105829 Call to undefined function _calendar_systems_fix_display() fixed
[project/calendar_systems.git] / README.txt
1 === DESCRIPTION  ===
2
3   Support for various calendar systems like Jalali, Gregorian, Hijir, Hebew, Thai, etc.
4
5   - Supports Iranian/Persian , Arabic/Hijri/Islamic, Thai, Gregorian Calendar systems
6   - Integration with Drupal's node "authored on" and "admin authored" fields
7   - Supports Single language websites
8   - Views Support including views built-in date filters
9   - Compatible with all Drupal standard forms out of the box
10   - Supports Multi language websites via locale module. Each language can have a different calendar system
11   - Integration with jquery world calendars date picker
12   - Supports all date module's widgets
13   - Scheduler module support (If set to use standard text field)
14   - API for third party usage
15
16 === INSTALLATION ===
17
18   - Install and enable the module as usual: http://drupal.org/node/70151
19
20   - Add the following code right after "$timezones = &$drupal_static_fast['timezones'];" in "/includes/common.inc" file
21     or apply the patch located in patches/ in module's directory. if you don't know how to apply patches, there is a
22     good guide here: http://drupal.org/patch/apply
23
24   // Calendar Systems module new hook (The actual hook is hook_format_date this one is only a workaround to 
25   // prevent incompatibility with modules that already have a function called module_name_format_date)
26   foreach (module_implements('format_date_calendar_systems') AS $module) {
27     $function = $module .'_format_date_calendar_systems';
28     $r = $function($timestamp, $type, $format, $timezone, $langcode);
29     
30     if ($r != FALSE) {
31       return $r;
32     }
33   }
34
35   - Goto "admin/config/regionals/calendar-systems" and configure your profiles.
36   - Optionally you can download and install JQuery Calendar API (http://drupal.org/project/jquery_calendar) module to add date popup support
37     Will be automatically actived for popup date fields
38   
39 === API ===
40
41 calendar_systems_get_calendar_instance
42
43   You can use calendar_systems_get_calendar_instance($calendar_system = NULL, $language = NULL) to get and instance
44   of a calendar system.
45   For exmaple to get an instance of iranian calendar system : 
46   $calendar = calendar_systems_get_calendar_instance('iranian');
47   $calendar->date('Y-m-d',time());
48
49 Available methods :
50   $calendar->timestampToStr($format, $timestamp=null);
51   $calendar->strToTimestamp($string);
52   $calendar->timestampToInfoArray($timestamp=null);
53   $calendar->infoArrayToTimestamp($arr);
54   $calendar->date($format, $maket=null);
55   $calendar->fromGregorian($g_y, $g_m, $g_d);
56   $calendar->toGregorian($j_y, $j_m, $j_d);
57   $calendar->smartGet($type,$value="now");
58   $calendar->makeTime($hour="",$minute="",$second="",$jmonth="",$jday="",$jyear="");
59   $calendar->isDateValid($month,$day,$year);
60   $calendar->dateDiff($first,$second);
61
62 Converting from one calendar system to another :
63   $iranian_calendar = calendar_systems_get_calendar_instance('iranian');
64   $val = $iranian_calendar->strToTimestamp('1380-05-10');
65   $arabic_calendar->date('Y-m-d',$val);
66
67 calendar_systems_get_calendar_system_name
68   calendar_systems_get_calendar_system_name()
69   Result : 'default'
70   
71   calendar_systems_get_calendar_system_name(NULL, 'fa')
72   Result : 'iranian'
73
74
75 === Extend : Plugin System and adding new calendar system ===
76
77 Calendar systems mopdule has a plugable architecure which means that each calendar system is a plugin
78 new calendar system can easily be added.
79 Plugins are located at calendar\v1\calendarSystems, they will be automatically detected and included by
80 Caledanr systems module once put on this location.
81 Copy and rename one of the calendar system in this folder and start implementing you new calendar :)
82
83 === Support ===
84
85   Found a bug? report it here http://drupal.org/node/add/project-issue/calendar_systems
86
87 AUTHORS AND MAINTAINERS
88 =======================
89
90   Sina Salek - http://sina.salek.ws
91   Sepehr Lajevardi - D7 co-maintainer