Mishoo JSCalendar, packaged for use by plugins, skins and add-ons.
Summary of Contents
This module packages the
Mishoo JSCalendar Javascript in a form suitable for use with TWiki.
Detailed Documentation
Read
the Mishoo documentation or
visit the demo page.
This package also includes a small Perl module to make using the calendar
easier from TWiki plugins. This module includes the functions:
TWiki::Contrib::JSCalendarContrib::renderDateForEdit($name, $value, $format) -> $html
This is the simplest way to use calendars from a plugin.
-
$name is the name of the CGI parameter for the calendar (it should be unique),
-
$value is the current value of the parameter (may be undef)
-
$format is the format to use (optional; the default is set in configure). The
HTML returned will display a date field and a drop-down calendar.
Example:
use TWiki::Contrib::JSCalendarContrib;
...
my $fromDate = TWiki::Contrib::JSCalendarContrib::renderDateForEdit(
'from', '1 April 1999');
my $toDate = TWiki::Contrib::JSCalendarContrib::renderDateForEdit(
'to', undef, '%Y');
TWiki::Contrib::JSCalendarContrib::addHEAD( $setup )
This function will automatically add the required headers to the page being
rendered. It's intended for use when you want more control over the formatting
of your calendars than
renderDateForEdit affords.
$setup is the name of
the calendar setup module; it can either be omitted, 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 Javascript helper function called
'showCalendar' is added that simplifies using calendars to set a value in a
text field. For example, say we wanted to display the date with the calendar
icon
before the text field, using the format
%Y %b %e
# Add styles and javascript for the calendar
use TWiki::Contrib::JSCalendarContrib;
...
sub commonTagsHandler {
....
# Enable 'showCalendar'
TWiki::Contrib::JSCalendarContrib::addHEAD( 'twiki' );
my $cal = CGI::image_button(
-name => 'img_datefield',
-onclick =>
"return showCalendar('id_datefield','%Y %b %e')",
-src=> TWiki::Func::getPubUrlPath() . '/' .
TWiki::Func::getTwikiWebname() .
'/JSCalendarContrib/img.gif',
-alt => 'Calendar',
-align => 'MIDDLE' )
. CGI::textfield(
{ name => 'date', id => "id_datefield" });
....
}
The first parameter to
showCalendar is the id of the textfield, and the second parameter is the . See the Mishoo documentation for details of the '$e %B %Y' parameter.
addHEAD can be called from
commonTagsHandler for adding the header to all pages, or from
beforeEditHandler just for edit pages etc.
Settings
- What do I do
- Set SHORTDESCRIPTION = Mishoo JSCalendar, packaged for use by plugins, skins and add-ons.
Installation Instructions
You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server where TWiki is running.
Like many other TWiki extensions, this module is shipped with a fully automatic installer script written using the BuildContrib.
- If you have TWiki 4.1 or later, you can install from the
configure interface (Go to Plugins->Find More Extensions)
- The webserver user has to have permission to write to all areas of your installation for this to work.
- If you have a permanent connection to the internet, you are recommended to use the automatic installer script
- Just download the
JSCalendarContrib_installer perl script and run it.
- Notes:
- The installer script will:
- Automatically resolve dependencies,
- Copy files into the right places in your local install (even if you have renamed data directories),
- check in new versions of any installed files that have existing RCS histories files in your existing install (such as topics).
- If the $TWIKI_PACKAGES environment variable is set to point to a directory, the installer will try to get archives from there. Otherwise it will try to download from twiki.org or cpan.org, as appropriate.
- (Developers only: the script will look for twikiplugins/JSCalendarContrib/JSCalendarContrib.tgz before downloading from TWiki.org)
- If you don't have a permanent connection, you can still use the automatic installer, by downloading all required TWiki archives to a local directory.
- Point the environment variable
$TWIKI_PACKAGES to this directory, and the installer script will look there first for required TWiki packages.
-
$TWIKI_PACKAGES is actually a path; you can list several directories separated by :
- If you are behind a firewall that blocks access to CPAN, you can pre-install the required CPAN libraries, as described at http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules
- If you don't want to use the installer script, or have problems on your platform (e.g. you don't have Perl 5.8), then you can still install manually:
- Download and unpack one of the
.zip or .tgz archives to a temporary directory.
- Manually copy the contents across to the relevant places in your TWiki installation.
- Check in any installed files that have existing
,v files in your existing install (take care not to lock the files when you check in)
- Manually edit LocalSite.cfg to set any configuration variables.
- Run
configure and enable the module, if it is a plugin.
- Repeat from step 1 for any missing dependencies.
- An administrator can customize the appearance of the calendar by setting the following in
LocalSite.cfg | Setting | Default |
$TWiki::cfg{JSCalendarContrib}{style} | 'blue' |
$TWiki::cfg{JSCalendarContrib}{lang} | 'en' |
$TWiki::cfg{JSCalendarContrib}{format} | '%e %b %Y' |
Contrib Info
Related Topics: TWikiPreferences