|
|
LIII. MCAL functionsBevezet�s
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.
Megjegyz�s:
PHP had an ICAP extension previously, but the original library
and the PHP extension is not supported anymore. The suggested
replacement is MCAL.
K�vetelm�nyek
This extension requires the mcal library to be installed. Grab the
latest version from
and compile and install it.
Telep�t�s
After you installed the mcal library, to get these functions to
work, you have to compile PHP with
--with-mcal.
Fut�sidej� be�ll�t�sokEz a kiterjeszt�s semmilyen konfigur�ci�s
be�ll�t�sokat nem defini�l. Er�forr�s t�pusokEz a kiterjeszt�s semmilyen er�forr�s
t�pust nem defini�l. El�re defini�lt �lland�k
Az itt list�zott �lland�kat ez a kiterjeszt�s
defini�lja, �s csak akkor el�rhet�ek, ha az adott
kiterjeszt�s be van ford�tva a PHP-be, vagy
dinamikusan bet�lt�tt.
User Contributed Notes MCAL functions |
|
[email protected]
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.
|
|
[email protected]
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.
|
|
[email protected]
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.
|
|
[email protected]
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:
|
|
[email protected]
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.
|
|
[email protected]
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;
|
|
[email protected]
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
|
|
|
| |