|
|
LIII. MCAL functionsIntroductie
MCAL stands for Modular Calendar Access Library.
Libmcal is a C library for accessing calendars. It's written to be
very modular, with pluggable drivers. MCAL is the calendar
equivalent of the IMAP module for mailboxes.
With mcal support, a calendar stream can be opened much like the
mailbox stream with the IMAP support. Calendars can be local file
stores, remote ICAP servers, or other formats that are supported
by the mcal library.
Calendar events can be pulled up, queried, and stored. There is
also support for calendar triggers (alarms) and recurring events.
With libmcal, central calendar servers can be accessed,
removing the need for any specific database or local file
programming.
Most of the functions use an internal event structure that is
unique for each stream. This alleviates the need to pass around
large objects between functions. There are convenience functions
for setting, initializing, and retrieving the event structure
values.
Opmerking:
PHP had an ICAP extension previously, but the original library
and the PHP extension is not supported anymore. The suggested
replacement is MCAL.
Opmerking: Deze module is niet verkrijgbaar voor de
windows versie van PHP.
Afhankelijkheden
This extension requires the mcal library to be installed. Grab the
latest version from
and compile and install it.
Installatie
After you installed the mcal library, to get these functions to
work, you have to compile PHP
-with-mcal[=DIR].
Configuratie tijdens scriptuitvoerDeze extensie gebruikt geen configuratie regels. Resource typesDeze extensie maakt geen gebruik van resources. Voorgedefineerde constanten
Deze constanten worden gedefineerd door deze extensie, en
zullen alleen beschikbaar zijn als de extensie met PHP is
meegecompileerd, of als deze dynamisch is geladen vanuit een script.
User Contributed Notes MCAL functions |
add a note |
inan at canada dot com
25-Mar-2000 10:59 |
|
MCAL is a great little package, but has changed quite a bit since the
documentation has been updated. If you're having trouble stop by
mcal.chek.com and pop a question onto the mcal users mailing list and
we'll be happy to help you out.
|
|
lurker at shadowtech dot org
23-Dec-2000 08:04 |
|
After a thorough search of the web for documentation of how recurence works
in MCAL, or even for documentation of the recurence function parameters, I
found nothing. So, I gave up and dove into the MCAL source code for
answers, and this is what I have found. Please keep in mind that this is
all "As far as I can tell" information.
First of all, I
believe that mcal_list_events DOES return events that recur in the range
being searched.
The mcal_event_set_recur_* functions take in an
mcal stream, and date for the event to stop recuring by (given by day,
month, year), and an
"interval".
mcal_event_set_recur_weekly takes an
additional integer parameter "weekdays" which is basicly a
binary mask created by bitwise ANDing together integers representing the
days of the week.
Sunday = 1
Monday = 2
Tuesday =
4
Wednesday = 8
Thursday = 16
Friday = 32
Saturday =
64
So if I wanted the value that represented "Monday,
Wednesday, and Friday" I would do this:
$weekdays = 2 & 8
& 32;
Here is how to interpret "interval" and
"weekdays".
For mcal_event_set_recur_daily:
This
event should recur every "interval" days.
For
mcal_event_set_recur_weekly:
This event should recur on every day
specified in "weekdays", and should do so every
"interval" weeks.
For
mcal_event_set_recur_monthly_mday:
This event should recur on the
"interval" day of every month.
For
mcal_event_set_recur_monthly_wday:
This event should recur every on
every Xday of the Yth week of the month, every "interval"
months. (Where Xday is a day of the week, e.g. Monday, Tuesday, etc.
Note: This is the one I am the least sure about though it seems to be the
logical assumption for how it should work based on the fact that there are
two monthly functions and the other one's operation is
intuitive.)
For mcal_event_set_recur_yearly:
This event
should recur every "interval" years.
|
|
lars at sral dot org
11-Jan-2001 11:31 |
|
If you compile the libmcal tarball - be sure to copy all the .h files to
/usr/local/mcal/include (or whatever) - the Makefile doesn't copy all of
them.
|
|
mikep at oeone dot com
11-Jan-2001 10:37 |
|
Lurker had it a bit wrong (I think)...
If you want Monday, Wednesday
and Friday, you would do
2 | 8 | 64
Check out Kronolith (part of
the horde project) for more information:
|
|
jeff at univrel dot pr dot uconn dot edu
03-Jul-2001 07:03 |
|
As of 7/3/2001, libmcal can be built shared (libmcal.so), which should get
rid of the linking problem with the MySQL driver. Check the latest version
out of the repository if you're planning on building it this way.
|
|
verdy_p at wanadoo dot fr
12-May-2002 06:55 |
|
Correction to previous extensive note: ANDing distinct bit values will
always result in zero, so your weekly events won't ever be raised. You
must use the bitwise-or operator (|) to combine several week
days.
mcal_event_set_recur_weekly takes an additional integer
parameter "weekdays" which is basicly a binary mask created
by bitwise ORing together integers representing the days of the
week.
Sunday = 1 Monday = 2 Tuesday = 4 Wednesday =
8 Thursday = 16 Friday = 32 Saturday = 64
So if I wanted
the value needed to raise the event every "Monday, Wednesday, and
Friday" I would do this: $weekdays = 2 | 8 | 32;
|
|
dhorwitz at ched dot uct dot ac dot za
24-May-2002 09:58 |
|
Warning to Redhat 7.3 users - the PhP rpms in redhat 7.3 seem to sugest
that they have mcal suport - phpinfo() includes the entry '-enable-mcal'
but mcal doesn't seem to work
|
|
jpmkn at iki dot fi
06-Oct-2002 05:58 |
|
Mcal/mstore is not GPL. Read the license and decide if you can live with it
before embarking on a big project around mcal.
|
|
mmusone at synacor dot com
15-Jan-2003 10:23 |
|
Being the author of MCAL, i am completely releasing it as GPL. It will
be modifiied in all subsequent MCAL documentation, but for now take
this as official GPL license notice.
Mark Musone
|
|
add a note |
| |