1 # <a name="%TOPIC%"></a><a name=" %TOPIC%"></a> %TOPIC%
3 [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl), packaged for use by plugins, skins and add-ons.
7 <li><a href="#Summary of Contents"> Summary of Contents</a></li>
8 <li><a href="#Detailed Documentation"> Detailed Documentation</a><ul>
9 <li><a href="#Settings"> Settings</a></li>
10 <li><a href="#Installation Instructions"> Installation Instructions</a></li>
11 <li><a href="#Contrib Info"> Contrib Info</a></li>
17 ## <a name="Summary of Contents"></a> Summary of Contents
19 This module packages the [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl) Javascript in a form suitable for use with TWiki.
21 ## <a name="Detailed Documentation"></a> Detailed Documentation
23 Read [the Mishoo documentation](http://www.dementia.org/twiki//view/doc/html/reference.html) or [visit the demo page](http://www.dementia.org/twiki//view).
25 This package provides a `renderFormFieldForEditHandler` that could be invoked by a plugin to ensure that forms use the [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl) for editing.
27 This package also includes a small Perl module to make using the calendar easier from TWiki plugins. This module includes the function:
31 that can automatically add the required headers to the page being rendered. `$setup` is the name of the calendar setup module; it can either be ommitted, in which case the method described in the Mishoo documentation can be used to create calendars, or it can be `'twiki'`, in which case a helper function is added that simplifies using calendars to set a value in a text field. For example,
33 # Add styles and javascript for the calendar
34 require TWiki::Contrib::JSCalendarContrib;
35 if( $@ || !$TWiki::Contrib::JSCalendarContrib::VERSION ||
36 $TWiki::Contrib::JSCalendarContrib::VERSION < 0.961 ) {
37 TWiki::Func::writeWarning('JSCalendarContrib >=0.961 not found '.$@);
39 TWiki::Contrib::JSCalendarContrib::addHEAD( 'twiki' );
42 $html .= CGI::textfield(
43 { name => 'datefield',
44 id => "id_datefield" });
47 -name => 'datefield_calendar',
49 "return showCalendar('id_datefield','%e %B %Y')",
50 -src=> TWiki::Func::getPubUrlPath() . '/' .
51 TWiki::Func::getTwikiWebname() .
52 '/JSCalendarContrib/img.gif',
58 The first parameter to showCalendar is the id of the textfield. See the Mishoo documentation for details of the '$e %B %Y' parameter.
60 Note that the header will only be added once, regardless of the number of times that addHEAD is called.
62 `addHEAD` can be called from `commonTagsHandler` for adding the header to all pages, or to `beforeEditHandler` just for edit pages etc.
64 ### <a name="Settings"></a> Settings
66 - Name of the perl package
67 - Set STUB = TWiki::Contrib::JSCalendarContrib
69 - Set SHORTDESCRIPTION = [Mishoo JSCalendar](http://dynarch.com/mishoo/calendar.epl), packaged for use by plugins, skins and add-ons.
71 ### <a name="Installation Instructions"></a> Installation Instructions
73 - Download the archive from the Plugins web (see below)
74 - Unpack it in your twiki installation directory. Content: <table border="1" cellpadding="0" cellspacing="0">
76 <th bgcolor="#99CCCC"><strong> File: </strong></th>
77 <th bgcolor="#99CCCC"><strong> Description: </strong></th>
80 <td><code><b>data/TWiki/JSCalendarContrib.txt</b></code></td>
84 <td><code><b>lib/TWiki/Contrib/JSCalendarContrib.pm</b></code></td>
88 <td><code><b>pub/TWiki/JSCalendarContrib/twiki.js</b></code></td>
92 <td><code><b>pub/TWiki/JSCalendarContrib/bugtest-hidden-selects.html</b></code></td>
96 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-blue2.css</b></code></td>
100 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-blue.css</b></code></td>
104 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-brown.css</b></code></td>
108 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-green.css</b></code></td>
112 <td><code><b>pub/TWiki/JSCalendarContrib/calendar.js</b></code></td>
116 <td><code><b>pub/TWiki/JSCalendarContrib/calendar.php</b></code></td>
120 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-setup.js</b></code></td>
124 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-setup_stripped.js</b></code></td>
128 <td><code><b>pub/TWiki/JSCalendarContrib/calendar_stripped.js</b></code></td>
132 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-system.css</b></code></td>
136 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-tas.css</b></code></td>
140 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-win2k-1.css</b></code></td>
144 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-win2k-2.css</b></code></td>
148 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-win2k-cold-1.css</b></code></td>
152 <td><code><b>pub/TWiki/JSCalendarContrib/calendar-win2k-cold-2.css</b></code></td>
156 <td><code><b>pub/TWiki/JSCalendarContrib/ChangeLog</b></code></td>
160 <td><code><b>pub/TWiki/JSCalendarContrib/dayinfo.html</b></code></td>
164 <td><code><b>pub/TWiki/JSCalendarContrib/doc/html/field-button.jpg</b></code></td>
168 <td><code><b>pub/TWiki/JSCalendarContrib/doc/html/reference.css</b></code></td>
172 <td><code><b>pub/TWiki/JSCalendarContrib/doc/html/reference.html</b></code></td>
176 <td><code><b>pub/TWiki/JSCalendarContrib/doc/html/reference-Z-S.css</b></code></td>
180 <td><code><b>pub/TWiki/JSCalendarContrib/doc/reference.pdf</b></code></td>
184 <td><code><b>pub/TWiki/JSCalendarContrib/img.gif</b></code></td>
188 <td><code><b>pub/TWiki/JSCalendarContrib/index.html</b></code></td>
192 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-af.js</b></code></td>
196 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-al.js</b></code></td>
200 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-bg.js</b></code></td>
204 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-big5.js</b></code></td>
208 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-big5-utf8.js</b></code></td>
212 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-br.js</b></code></td>
216 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-ca.js</b></code></td>
220 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-cs-utf8.js</b></code></td>
224 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-cs-win.js</b></code></td>
228 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-da.js</b></code></td>
232 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-de.js</b></code></td>
236 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-du.js</b></code></td>
240 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-el.js</b></code></td>
244 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-en.js</b></code></td>
248 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-es.js</b></code></td>
252 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-fi.js</b></code></td>
256 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-fr.js</b></code></td>
260 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-he-utf8.js</b></code></td>
264 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-hr.js</b></code></td>
268 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-hr-utf8.js</b></code></td>
272 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-hu.js</b></code></td>
276 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-it.js</b></code></td>
280 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-jp.js</b></code></td>
284 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-ko.js</b></code></td>
288 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-ko-utf8.js</b></code></td>
292 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-lt.js</b></code></td>
296 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-lt-utf8.js</b></code></td>
300 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-lv.js</b></code></td>
304 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-nl.js</b></code></td>
308 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-no.js</b></code></td>
312 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-pl.js</b></code></td>
316 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-pl-utf8.js</b></code></td>
320 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-pt.js</b></code></td>
324 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-ro.js</b></code></td>
328 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-ru_win_.js</b></code></td>
332 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-ru.js</b></code></td>
336 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-si.js</b></code></td>
340 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-sk.js</b></code></td>
344 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-sp.js</b></code></td>
348 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-sv.js</b></code></td>
352 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-tr.js</b></code></td>
356 <td><code><b>pub/TWiki/JSCalendarContrib/lang/calendar-zh.js</b></code></td>
360 <td><code><b>pub/TWiki/JSCalendarContrib/lang/cn_utf8.js</b></code></td>
364 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/active-bg.gif</b></code></td>
368 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/dark-bg.gif</b></code></td>
372 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/hover-bg.gif</b></code></td>
376 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/menuarrow.gif</b></code></td>
380 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/normal-bg.gif</b></code></td>
384 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/rowhover-bg.gif</b></code></td>
388 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/status-bg.gif</b></code></td>
392 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/theme.css</b></code></td>
396 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/title-bg.gif</b></code></td>
400 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/today-bg.gif</b></code></td>
404 <td><code><b>pub/TWiki/JSCalendarContrib/skins/aqua/transparent-bg.png</b></code></td>
408 <td><code><b>pub/TWiki/JSCalendarContrib/menuarrow.gif</b></code></td>
412 <td><code><b>pub/TWiki/JSCalendarContrib/menuarrow2.gif</b></code></td>
416 <td><code><b>pub/TWiki/JSCalendarContrib/multiple-dates.html</b></code></td>
420 <td><code><b>pub/TWiki/JSCalendarContrib/README</b></code></td>
424 <td><code><b>pub/TWiki/JSCalendarContrib/release-notes.html</b></code></td>
428 <td><code><b>pub/TWiki/JSCalendarContrib/simple-1.html</b></code></td>
432 <td><code><b>pub/TWiki/JSCalendarContrib/simple-2.html</b></code></td>
436 <td><code><b>pub/TWiki/JSCalendarContrib/simple-3.html</b></code></td>
440 <td><code><b>pub/TWiki/JSCalendarContrib/test.php</b></code></td>
444 <td><code><b>pub/TWiki/JSCalendarContrib/test-position.html</b></code></td>
449 - Make sure that all files are readable by the web server user
450 - An administrator can customize the appearance of the calendar by setting the following in `LocalSite.cfg`<table border="1" cellpadding="0" cellspacing="0">
452 <th bgcolor="#99CCCC"><strong> Setting </strong></th>
453 <th bgcolor="#99CCCC"><strong> Default </strong></th>
456 <td><code>$TWiki::cfg{JSCalendarContrib}{style}</code></td>
457 <td><code>'blue'</code></td>
460 <td><code>$TWiki::cfg{JSCalendarContrib}{lang}</code></td>
461 <td><code>'en'</code></td>
464 <td><code>$TWiki::cfg{JSCalendarContrib}{format}</code></td>
465 <td><code>'%e %b %Y'</code></td>
469 ### <a name="Contrib Info"></a> Contrib Info
471 <table border="1" cellpadding="0" cellspacing="0">
473 <td align="right"> Author: </td>
474 <td> TWiki:Main/CrawfordCurrie <a href="http://www.c-dot.co.uk" target="_top">http://www.c-dot.co.uk</a></td>
477 <td align="right"> Version: </td>
478 <td> 11704 of the Mishoo calendar </td>
481 <td align="right"> Copyright ©: </td>
482 <td> See <a href="http://www.dementia.org/twiki//view/doc/html/reference.html" target="_top">the Mishoo documentation</a></td>
485 <td align="right"> License: </td>
486 <td> GPL (<a href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a>) </td>
489 <td align="right"> Dependencies: </td>
493 <td> Change History: </td>
498 <td> Allow format to be configured. </td>
502 <td> Add a <code>renderFormFieldForEditHandler</code> so other plugins can forward to this handler to add the date field to the [[Main/TWikiForms]]. (TWiki:Main.ThomasWeigert) </td>
506 <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item2054" rel="nofollow">Item2054</a> put the calendar at z-index 2000, way above pattern skin divs. </td>
510 <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item453" rel="nofollow">Item453</a> removed [[Main/EditTablePlugins]] private copy of the Mishoo JS calendar, and made sure it works with [[Main/JSCalendarContrib]]. Improved the documentation of the JSCalendar while I was there. </td>
514 <td><a href="http://develop.twiki.org/~develop/cgi-bin/view/Bugs/Item468" rel="nofollow">Item468</a> updated docs for Dakar release </td>
518 <td> Cairo readiness </td>
522 <td> Split from [[Main/SharedCode]]</td>
525 <td align="right"> 27 Dec 2005 </td>
526 <td> updated to calendar version 1.0; set style for Safari to win2k-1 </td>
529 <td align="right"> 14 Aug 2004 </td>
530 <td> Separated out from [[Main/SharedCode]] module </td>
533 <td align="right"> Home: </td>
534 <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%</a></td>
537 <td align="right"> Feedback: </td>
538 <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev</a></td>
541 <td align="right"> Appraisal: </td>
542 <td><a href="http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal" target="_top">http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal</a></td>
546 **_Related Topics:_** [[TWikiPreferences]]