diff --git a/docs/api/awl/caldav/RRule.html b/docs/api/awl/caldav/RRule.html
new file mode 100644
index 00000000..0be1c518
--- /dev/null
+++ b/docs/api/awl/caldav/RRule.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+ Docs For Class RRule
+
+
+
+
+
+
RRule
+
+
+
+
Description
+
+
+
+
A Class for handling Events on a calendar which repeat
+
Here's the spec, from RFC2445:
At this point we are going to restrict ourselves to parts of the RRULE specification seen in the wild. And by "in the wild" I don't include within people's timezone definitions. We always convert time zones to canonical names and assume the lower level libraries can do a better job with them than we can.
We will concentrate on: FREQ=(YEARLY|MONTHLY|WEEKLY|DAILY) UNTIL= COUNT= INTERVAL= BYDAY= BYMONTHDAY= BYSETPOS= WKST= BYYEARDAY= BYWEEKNO= BYMONTH=
+
+ Located in /inc/RRule.php (line 675 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
+
RRule
+
RRule
+ (
$start ,
$rrule )
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
The constructor takes a start date and an RRULE definition. Both of these follow the iCalendar standard.
+
+
+ RRule
+
+ RRule
+
+ ( $start , $rrule )
+
+
+
+
+
+ $start
+
+
+ $rrule
+
+
+
+
+
+
+
+
+
+
+
This is most of the meat of the RRULE processing, where we find the next date.
+
We maintain an
+
+
+ void
+
+ &GetNext
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Processes the array of $relative_days to $base and removes any which are not within the scope of our rule.
+
+
+ void
+
+ WithinScope
+
+ ( $base , $relative_days )
+
+
+
+
+
+ $base
+
+
+ $relative_days
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/awl/caldav/_inc---RRule.php.html b/docs/api/awl/caldav/_inc---RRule.php.html
new file mode 100644
index 00000000..8c2e1ba5
--- /dev/null
+++ b/docs/api/awl/caldav/_inc---RRule.php.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+ Docs for page RRule.php
+
+
+
+
+
+
/inc/RRule.php
+
+
+
+
Description
+
+
+
+
Class for parsing RRule and getting us the dates
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ iCalDate
+
+
+ A Class for handling dates in iCalendar format. We do make the simplifying assumption that all date handling in here is normalised to GMT. One day we might provide some functions to do that, but for now it is done externally.
+
+
+
+
+
+ RRule
+
+
+ A Class for handling Events on a calendar which repeat
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/awl/caldav/iCalDate.html b/docs/api/awl/caldav/iCalDate.html
new file mode 100644
index 00000000..67105d75
--- /dev/null
+++ b/docs/api/awl/caldav/iCalDate.html
@@ -0,0 +1,908 @@
+
+
+
+
+
+ Docs For Class iCalDate
+
+
+
+
+
+
iCalDate
+
+
+
+
Description
+
+
+
+
A Class for handling dates in iCalendar format. We do make the simplifying assumption that all date handling in here is normalised to GMT. One day we might provide some functions to do that, but for now it is done externally.
+
+ Located in /inc/RRule.php (line 21 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
+
+
+
+
+
+
+
void
+
DaysInMonth
+ ([
$mo =
false ], [
$yy =
false ])
+
+
+
+
+
+
+
+
boolean
+
LessThan
+ (
string $greater )
+
+
+
+
array
+
&MonthDays
+ (
string $dow_first ,
string $days_in_month ,
string $dayspec )
+
+
+
+
void
+
Render
+ ([
$fmt =
'Y-m-d H:i:s' ])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
The constructor takes either an iCalendar date, a text string formatted as an iCalendar date, or epoch seconds.
+
+
+ iCalDate
+
+ iCalDate
+
+ ( $input )
+
+
+
+
+
+
+
+
+
+
+
+
+
Add some integer number of days to a date
+
+
+ void
+
+ AddDays
+
+ ( $dd )
+
+
+
+
+
+
+
+
+
+
+
+
+
Add duration
+
+
+ void
+
+ AddDuration
+
+ ( $duration )
+
+
+
+
+
+
+
+
+
+
+
+
+
Add some number of months to a date
+
+
+ void
+
+ AddMonths
+
+ ( $mo )
+
+
+
+
+
+
+
+
+
+
+
+
+
Given set position descriptions like '1', '3', '11', '-3' or '-1' and a set, return the subset matching the list of set positions.
+
+
+
+ array
+
+ &ApplyBySetPos
+
+ (string $bysplist , string $set )
+
+
+
+
+ string
+ $bysplist : The list of set positions.
+
+ string
+ $set : The set of days that we will apply the positions to.
+
+
+
+
+
+
+
+
+
+
+
Produce an iCalendar format DURATION for the difference between this an another iCalDate
+
+
+
+ string
+
+ DateDifference
+
+ (date $from )
+
+
+
+
+ date
+ $from : The start of the period
+
+
+
+
+
+
+
+
+
+
+
No of days in a month 1(Jan) - 12(Dec)
+
+
+ void
+
+ DaysInMonth
+
+ ([ $mo = false ], [ $yy = false ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Applies any BYDAY to the month to return a set of days
+
+
+
+ array
+
+ GetMonthByDay
+
+ (string $byday )
+
+
+
+
+ string
+ $byday : The BYDAY rule
+
+
+
+
+
+
+
+
+
+
+
Applies any BYMONTHDAY to the month to return a set of days
+
+
+
+ array
+
+ GetMonthByMonthDay
+
+ (string $bymonthday )
+
+
+
+
+ string
+ $bymonthday : The BYMONTHDAY rule
+
+
+
+
+
+
+
+
+
+
+
Applies any BYDAY to the week to return a set of days
+
+
+
+ array
+
+ GetWeekByDay
+
+ (string $byday )
+
+
+
+
+ string
+ $byday : The BYDAY rule
+
+
+
+
+
+
+
+
+
+
+
Test if $this is greater than the date parameter
+
+
+
+ boolean
+
+ GreaterThan
+
+ (string $lesser )
+
+
+
+
+ string
+ $lesser : The other date, as a local time string
+
+
+
+
+
+
+
+
+
+
+
Test if $this is less than the date parameter
+
+
+
+ boolean
+
+ LessThan
+
+ (string $greater )
+
+
+
+
+ string
+ $greater : The other date, as a local time string
+
+
+
+
+
+
+
+
+
+
+
Given a MonthDays string like "1MO", "-2WE" return an integer day of the month.
+
+
+
+ array
+
+ &MonthDays
+
+ (string $dow_first , string $days_in_month , string $dayspec )
+
+
+
+
+ string
+ $dow_first : The day of week of the first of the month.
+
+ string
+ $days_in_month : The number of days in the month.
+
+ string
+ $dayspec : The specification for a month day (or days) which we parse.
+
+
+
+
+
+
+
+
+
+
+
Set the day of week used for calculation of week starts
+
+
+ void
+
+ Render
+
+ ([ $fmt = 'Y-m-d H:i:s' ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the date from an epoch
+
+
+ void
+
+ SetEpochDate
+
+ ( $input )
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the date from a text string
+
+
+ void
+
+ SetGMTDate
+
+ ( $input )
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the date from a text string
+
+
+ void
+
+ SetLocalDate
+
+ ( $input )
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the day in the month to what we have been given
+
+
+ void
+
+ SetMonthDay
+
+ ( $dd )
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the day of week used for calculation of week starts
+
+
+ void
+
+ SetWeekStart
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Test to see if our _mo matches something in the list of months we have received.
+
+
+
+ boolean
+
+ TestByMonth
+
+ (string $monthlist )
+
+
+
+
+ string
+ $monthlist : A comma-separated list of months.
+
+
+
+
+
+
+
+
+
+
+
Given a local text date, convert it to an epoch
+
+
+ void
+
+ _EpochFromParts
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Given a GMT text date, convert it to an epoch
+
+
+ void
+
+ _GMTEpochFromParts
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Given a GMT epoch date, convert it to text
+
+
+ void
+
+ _GMTTextFromEpoch
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Given a text date, convert it to parts
+
+
+ void
+
+ _PartsFromText
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Given an epoch date, convert it to text
+
+
+ void
+
+ _TextFromEpoch
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/blank.html b/docs/api/blank.html
new file mode 100644
index 00000000..d1b76446
--- /dev/null
+++ b/docs/api/blank.html
@@ -0,0 +1,13 @@
+
+
+ DAViCal
+
+
+
+
+
DAViCal
+Welcome to davical!
+
+This documentation was generated by phpDocumentor v1.3.2
+
+
\ No newline at end of file
diff --git a/docs/api/classtrees_awl.html b/docs/api/classtrees_awl.html
new file mode 100644
index 00000000..fd09c2f6
--- /dev/null
+++ b/docs/api/classtrees_awl.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Root class iCalDate
+
+
+Root class RRule
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/classtrees_davical.html b/docs/api/classtrees_davical.html
new file mode 100644
index 00000000..f7a04152
--- /dev/null
+++ b/docs/api/classtrees_davical.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Root class CalDAVPrincipal
+
+
+Root class CalDAVRequest
+
+
+Root class HTTPAuthSession
+
+
+Root class ldapDrivers
+
+
+Root class squidPamDrivers
+
+
+Root class Tools
+
+
+Root class Session
+
+
+Root class User
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/Admin/_htdocs---users.php.html b/docs/api/davical/Admin/_htdocs---users.php.html
new file mode 100644
index 00000000..6aa3524f
--- /dev/null
+++ b/docs/api/davical/Admin/_htdocs---users.php.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+ Docs for page users.php
+
+
+
+
+
+
/htdocs/users.php
+
+
+
+
Description
+
+
+
+
Display a list of all users
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("classBrowser.php" )
+ (line 38 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 11 )
+
+
+
+
+
Display a list of all users
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
translate_relationship_list (line
22 )
+
+
+
+
Translate relationship names in the relationship_list for each user. See the documentation for classBrowser::BrowserColumn for the definition of the hook function parameters.
+
+ void
+
+ translate_relationship_list
+
+ ( $value , $field , $row )
+
+
+
+
+
+ $value
+
+
+ $field
+
+
+ $row
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html b/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html
new file mode 100644
index 00000000..8ac800a7
--- /dev/null
+++ b/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html
@@ -0,0 +1,360 @@
+
+
+
+
+
+ Docs For Class HTTPAuthSession
+
+
+
+
+
+
HTTPAuthSession
+
+
+
+
Description
+
+
+
+
A Class for handling a session using HTTP Basic Authentication
+
+ Located in /inc/HTTPAuthSession.php (line 17 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
+
+
boolean
+
AllowedTo
+ (
string $whatever )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
The constructor, which just calls the actual type configured
+
+
+ HTTPAuthSession
+
+ HTTPAuthSession
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Checks whether a user is allowed to do something.
+
The check is performed to see if the user has that role.
+
+
+
+ boolean
+
+ AllowedTo
+
+ (string $whatever )
+
+
+
+
+ string
+ $whatever : The role we want to know if the user has.
+
+
+
+
+
+
+
+
+
+
+
Internal function used to assign the session details to a user's new session.
+
+
+ void
+
+ AssignSessionDetails
+
+ (object $u )
+
+
+
+
+ object
+ $u : The user+session object we (probably) read from the database.
+
+
+
+
+
+
+
+
+
+
+
Authorisation failed, so we send some headers to say so.
+
+
+ void
+
+ AuthFailedResponse
+
+ ([string $auth_header = "" ])
+
+
+
+
+ string
+ $auth_header : The WWW-Authenticate header details.
+
+
+
+
+
+
+
+
+
+
+
Handle Basic HTTP Authentication (not secure unless https)
+
+
+ void
+
+ BasicAuthSession
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
CheckPassword does all of the password checking and returns a user record object, or false if it all ends in tears.
+
+
+ void
+
+ CheckPassword
+
+ ( $username , $password )
+
+
+
+
+
+ $username
+
+
+ $password
+
+
+
+
+
+
+
+
+
+
+
Handle Digest HTTP Authentication (no passwords were harmed in this transaction!)
+
Note that this will not actually work, unless we can either: (A) store the password plain text in the database (B) store an md5( username || realm || password ) in the database
The problem is that potentially means that the administrator can collect the sorts of things people use as passwords. I believe this is quite a bad idea. In scenario (B) while they cannot see the password itself, they can see a hash which only varies when the password varies, so can see when two users have the same password, or can use some of the reverse lookup sites to attempt to reverse the hash. I think this is a less bad idea, but not ideal. Probably better than running Basic auth of HTTP though!
+
+
+ void
+
+ DigestAuthSession
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Internal function used to get the user's roles from the database.
+
+
+ void
+
+ GetRoles
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Parse the HTTP Digest Auth Header
+
largely sourced from the PHP documentation
+
+
+ void
+
+ ParseDigestHeader
+
+ ( $auth_header )
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html b/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html
new file mode 100644
index 00000000..2d01e495
--- /dev/null
+++ b/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Docs for page HTTPAuthSession.php
+
+
+
+
+
+
/inc/HTTPAuthSession.php
+
+
+
+
Description
+
+
+
+
A Class for handling HTTP Authentication
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ HTTPAuthSession
+
+
+ A Class for handling a session using HTTP Basic Authentication
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/Principal/CalDAVPrincipal.html b/docs/api/davical/Principal/CalDAVPrincipal.html
new file mode 100644
index 00000000..631b4f10
--- /dev/null
+++ b/docs/api/davical/Principal/CalDAVPrincipal.html
@@ -0,0 +1,351 @@
+
+
+
+
+
+ Docs For Class CalDAVPrincipal
+
+
+
+
+
+
CalDAVPrincipal
+
+
+
+
Description
+
+
+
+
A class for things to do with a DAV Principal
+
+ Located in /inc/CalDAVPrincipal.php (line 25 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
Constructor
+
+
+
+ boolean
+
+ CalDAVPrincipal
+
+ ([mixed $parameters = null ])
+
+
+
+
+ mixed
+ $parameters : If null, an empty Principal is created. If it is an integer then that ID is read (if possible). If it is an array then the Principal matching the supplied elements is read.
+
+
+
+
+
+
+
+
+
+
+
Initialise the Principal object from a $usr record from the DB.
+
+
+ void
+
+ InitialiseRecord
+
+ (object $usr )
+
+
+
+
+ object
+ $usr : The usr record from the DB.
+
+
+
+
+
+
+
+
+
+
+
Work out the username, based on elements of the path.
+
+
+ void
+
+ UsernameFromPath
+
+ (string $path , [array $options = null ])
+
+
+
+
+ string
+ $path : The path to be used.
+
+ array
+ $options : The request options, controlling whether e-mail paths are allowed.
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/Principal/_inc---CalDAVPrincipal.php.html b/docs/api/davical/Principal/_inc---CalDAVPrincipal.php.html
new file mode 100644
index 00000000..6329cd28
--- /dev/null
+++ b/docs/api/davical/Principal/_inc---CalDAVPrincipal.php.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Docs for page CalDAVPrincipal.php
+
+
+
+
+
+
/inc/CalDAVPrincipal.php
+
+
+
+
Description
+
+
+
+
An object representing a DAV 'Principal'
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ CalDAVPrincipal
+
+
+ A class for things to do with a DAV Principal
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/RSCDSSession/RSCDSSession.html b/docs/api/davical/RSCDSSession/RSCDSSession.html
new file mode 100644
index 00000000..652683fc
--- /dev/null
+++ b/docs/api/davical/RSCDSSession/RSCDSSession.html
@@ -0,0 +1,236 @@
+
+
+
+
+
+ Docs For Class RSCDSSession
+
+
+
+
+
+
RSCDSSession
+
+
+
+
Description
+
+
+
+
A class for creating and holding session information.
+
+ Located in /inc/RSCDSSession.php (line 50 )
+
+
+
+
Session
+ |
+ --RSCDSSession
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
Create a new RSCDSSession object.
+
We create a Session and extend it with some additional useful RSCDS related information.
+
+
+ RSCDSSession
+
+ RSCDSSession
+
+ ([string $sid = "" ])
+
+
+
+
+ string
+ $sid : A session identifier.
+
+
+
+
+
+
+
+
+
+
+
Internal function used to assign the session details to a user's new session.
+
+
+ void
+
+ AssignSessionDetails
+
+ (object $u )
+
+
+
+
+ object
+ $u : The user+session object we (probably) read from the database.
+
+
+
+
+
+
+
+
+
+
+
Method used to get the user's relationships
+
+
+ void
+
+ GetRelationships
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Method used to get the user's roles
+
+
+ void
+
+ GetRoles
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Checks that this user is logged in, and presents a login screen if they aren't.
+
The function can optionally confirm whether they are a member of one of a list of roles, and deny access if they are not a member of any of them.
+
+
+
+ boolean
+
+ LoginRequired
+
+ ([string $roles = "" ])
+
+
+
+
+ string
+ $roles : The list of roles that the user must be a member of one of to be allowed to proceed.
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/RSCDSSession/Tools.html b/docs/api/davical/RSCDSSession/Tools.html
new file mode 100644
index 00000000..f5328afc
--- /dev/null
+++ b/docs/api/davical/RSCDSSession/Tools.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+ Docs For Class Tools
+
+
+
+
+
+
Tools
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
+
+ void
+
+ importFromDirectory
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void
+
+ render
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void
+
+ renderImportFromDirectory
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void
+
+ renderSyncLDAP
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/RSCDSSession/_htdocs---tools.php.html b/docs/api/davical/RSCDSSession/_htdocs---tools.php.html
new file mode 100644
index 00000000..b78af666
--- /dev/null
+++ b/docs/api/davical/RSCDSSession/_htdocs---tools.php.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+ Docs for page tools.php
+
+
+
+
+
+
/htdocs/tools.php
+
+
+
+
Description
+
+
+
+
Tools for manipulating calendars
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ Tools
+
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("DataEntry.php" )
+ (line 16 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 12 )
+
+
+
+
+
Tools for manipulating calendars
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("classBrowser.php" )
+ (line 18 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/RSCDSSession/_inc---RSCDSSession.php.html b/docs/api/davical/RSCDSSession/_inc---RSCDSSession.php.html
new file mode 100644
index 00000000..a39eb0ed
--- /dev/null
+++ b/docs/api/davical/RSCDSSession/_inc---RSCDSSession.php.html
@@ -0,0 +1,192 @@
+
+
+
+
+
+ Docs for page RSCDSSession.php
+
+
+
+
+
+
/inc/RSCDSSession.php
+
+
+
+
Description
+
+
+
+
DAViCal extensions to AWL Session handling
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ RSCDSSession
+
+
+ A class for creating and holding session information.
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ('PgQuery.php' )
+ (line 15 )
+
+
+
+
+
All session data is held in the database.
+
+
+
+
+
+
+
+
+ require_once
+ ('Session.php' )
+ (line 41 )
+
+
+
+
+
We extend the AWL Session class.
+
+
+
+
+
+
+
+
+
Variables
+
+
+
+
+
+
+
+
+ resource
+ $session
+ The session object is global.
+ (line 22 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
local_session_sql (line
31 )
+
+
+
+
+
+ void
+
+ local_session_sql
+
+ ()
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/RSCDSUser/RSCDSUser.html b/docs/api/davical/RSCDSUser/RSCDSUser.html
new file mode 100644
index 00000000..369883eb
--- /dev/null
+++ b/docs/api/davical/RSCDSUser/RSCDSUser.html
@@ -0,0 +1,432 @@
+
+
+
+
+
+ Docs For Class RSCDSUser
+
+
+
+
+
+
RSCDSUser
+
+
+
+
Description
+
+
+
+
A class for viewing and maintaining DAViCal User records
+
+ Located in /inc/RSCDSUser.php (line 24 )
+
+
+
+
User
+ |
+ --RSCDSUser
+
+
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
+
RSCDSUser
+
RSCDSUser
+ (
$id , [
$prefix =
"" ])
+
+
+
+
boolean
+
AllowedTo
+ (
string $whatever )
+
+
+
+
+
string
+
Render
+ ([
$title =
"" ])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
Constructor - nothing fancy as yet.
+
+
+ RSCDSUser
+
+ RSCDSUser
+
+ ( $id , [ $prefix = "" ])
+
+
+
+
+
+ $id
+
+
+ $prefix
+
+
+
+
+
+
+
+
+
+
+
Extend parent definition of what the current user is allowed to do
+
+
+
+ boolean
+
+ AllowedTo
+
+ (string $whatever )
+
+
+
+
+ string
+ $whatever : What the user wants to do
+
+
+
+
+
+
+
+
+
+
+
Handle any unusual actions we might invent
+
+
+ void
+
+ HandleAction
+
+ ( $action )
+
+
+
+
+
+
+
+
+
+
+
+
+
Render the form / viewer as HTML to show the user
+
+
+
+ string
+
+ Render
+
+ ([ $title = "" ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Render the user's collections
+
+
+
+ string
+
+ RenderCollections
+
+ ( $ef , [ $title = null ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Render input file to import ics in calendar user
+
+
+
+ string
+
+ RenderImportIcs
+
+ ( $ef , [ $title = null ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Render the user's relationships to other users & resources
+
+
+
+ string
+
+ RenderRelationshipsFrom
+
+ ( $ef , [ $title = null ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Render the user's relationships to other users & resources
+
+
+
+ string
+
+ RenderRelationshipsTo
+
+ ( $ef , [ $title = null ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Validate the information the user submitted
+
+
+
+ boolean
+
+ Validate
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Write the record to the file
+
+
+ void
+
+ Write
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/RSCDSUser/_inc---RSCDSUser.php.html b/docs/api/davical/RSCDSUser/_inc---RSCDSUser.php.html
new file mode 100644
index 00000000..4a297330
--- /dev/null
+++ b/docs/api/davical/RSCDSUser/_inc---RSCDSUser.php.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+ Docs for page RSCDSUser.php
+
+
+
+
+
+
/inc/RSCDSUser.php
+
+
+
+
Description
+
+
+
+
User maintain / view with DAViCal specific associated tables
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ RSCDSUser
+
+
+ A class for viewing and maintaining DAViCal User records
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("User.php" )
+ (line 12 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("classBrowser.php" )
+ (line 13 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/Request/CalDAVRequest.html b/docs/api/davical/Request/CalDAVRequest.html
new file mode 100644
index 00000000..f0c6027c
--- /dev/null
+++ b/docs/api/davical/Request/CalDAVRequest.html
@@ -0,0 +1,887 @@
+
+
+
+
+
+ Docs For Class CalDAVRequest
+
+
+
+
+
+
CalDAVRequest
+
+
+
+
Description
+
+
+
+
A class for collecting things to do with this request.
+
+ Located in /inc/CalDAVRequest.php (line 27 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
+
+
+
+
void
+
DoResponse
+ (
int $status , [
string $message =
"" ], [
$content_type =
"text/plain; charset=\"utf-8\"" ])
+
+
+
+
+
+
+
void
+
GetLockRow
+ (
$lock_token ,
string $dav_name )
+
+
+
+
+
+
void
+
IsLocked
+ (
string $dav_name )
+
+
+
+
+
+
+
+
+
+
void
+
XMLResponse
+ (
int $status ,
XMLElement $xmltree )
+
+
+
+
+
+
+
+
Variables
+
+
+
+
+
+
+
+
+
+
The ID of the collection containing this path, or of this path if it is a collection
+
+
+
+
+
+
+
+
+
+
+
+
+
The path corresponding to the collection_id
+
+
+
+
+
+
+
+
+
+
+
+
+
The depth parameter from the request headers, coerced into a valid integer: 0, 1 or DEPTH_INFINITY which is defined above. The default is set per various RFCs.
+
+
+
+
+
+
+
+
+
+
+
+
+
The HTTP request method: PROPFIND, LOCK, REPORT, OPTIONS, etc...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The 'principal' (user/resource/...) which this request seeks to access
+
+
+
+
+
+
+
+
+
+
+
+
+
The raw data sent along with the request
+
+
+
+
+
+
+
+
+
+
+
+
+
The user agent making the request.
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
Create a new CalDAVRequest object.
+
+
+ CalDAVRequest
+
+ CalDAVRequest
+
+ ([ $options = array() ])
+
+
+
+
+
+
+
+
+
+
+
+
+
Are we allowed to do the requested activity
+
+------------+------------------------------------------------------+ | METHOD | PRIVILEGES | +------------+------------------------------------------------------+ | MKCALENDAR | DAV:bind | | REPORT | DAV:read or CALDAV:read-free-busy (on all referenced | | | resources) | +------------+------------------------------------------------------+
+
+
+ void
+
+ AllowedTo
+
+ (string $activity )
+
+
+
+
+ string
+ $activity : The activity we want to do.
+
+
+
+
+
+
+
+
+
+
+
Returns the tail of a Regex appropriate for this Depth, when appended to
+
+
+ void
+
+ DepthRegexTail
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Utility function we call when we have a simple status-based response to return to the client. Possibly
+
+
+ void
+
+ DoResponse
+
+ (int $status , [string $message = "" ], [ $content_type = "text/plain; charset=\"utf-8\"" ])
+
+
+
+
+ int
+ $status : The HTTP status code to send.
+
+ string
+ $message : The friendly text message to send with the response.
+
+
+ $content_type
+
+
+
+
+
+
+
+
+
+
+
This will either (a) return false if no locks apply, or (b) return the lock_token which the request successfully included to open the lock, or: (c) respond directly to the client with the failure.
+
+
+
+ mixed
+
+ FailIfLocked
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Returns the name for this depth: 0, 1, infinity
+
+
+ void
+
+ GetDepthName
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Returns the DB object associated with a lock token, or false.
+
+
+ void
+
+ GetLockDetails
+
+ (string $lock_token )
+
+
+
+
+ string
+ $lock_token : The opaquelocktoken which we are looking for
+
+
+
+
+
+
+
+
+
+
+
Returns the locked row, either from the cache or from the database
+
+
+ void
+
+ GetLockRow
+
+ ( $lock_token , string $dav_name )
+
+
+
+
+ string
+ $dav_name : The resource which we want to know the lock status for
+
+
+ $lock_token
+
+
+
+
+
+
+
+
+
+
+
Returns true if the URL referenced by this request points at a collection.
+
+
+ void
+
+ IsCollection
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Returns true if the request asked for infinite depth
+
+
+ void
+
+ IsInfiniteDepth
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Checks whether the resource is locked, returning any lock token, or false
+
FIXME: This logic does not catch all locking scenarios. For example an infinite depth request should check the permissions for all collections and resources within that. At present we only maintain permissions on a per-collection basis though.
+
+
+ void
+
+ IsLocked
+
+ (string $dav_name )
+
+
+
+
+ string
+ $dav_name : The resource which we want to know the lock status for
+
+
+
+
+
+
+
+
+
+
+
Returns true if the URL referenced by this request points at a principal.
+
+
+ void
+
+ IsPrincipal
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Permissions are controlled as follows:
+
if the path is '/', the request has read privileges if the requester is an admin, the request has read/write priviliges if there is a <user name> component which matches the logged on user
+ then the request has read/write privileges otherwise we query the defined relationships between users and use
+ the minimum privileges returned from that analysis.
+
+
+ void
+
+ setPermissions
+
+ (int $user_no )
+
+
+
+
+ int
+ $user_no : The current user number
+
+
+
+
+
+
+
+
+
+
+
Return an array of what the DAV privileges are that are supported
+
+
+
+ array
+
+ SupportedPrivileges
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Sometimes it's a perfectly formed request, but we just don't do that :-(
+
+
+ void
+
+ UnsupportedRequest
+
+ (array $unsupported )
+
+
+
+
+ array
+ $unsupported : An array of the properties we don't support.
+
+
+
+
+
+
+
+
+
+
+
Work out the user whose calendar we are accessing, based on elements of the path.
+
+
+ void
+
+ UserFromPath
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
Checks to see whether the lock token given matches one of the ones handed in with the request.
+
+
+ void
+
+ ValidateLockToken
+
+ (string $lock_token )
+
+
+
+
+ string
+ $lock_token : The opaquelocktoken which we are looking for
+
+
+
+
+
+
+
+
+
+
+
Send an XML Response. This function will never return.
+
+
+ void
+
+ XMLResponse
+
+ (int $status , XMLElement $xmltree )
+
+
+
+
+ int
+ $status : The HTTP status to respond
+
+ XMLElement
+ $xmltree : An XMLElement tree to be rendered
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/Request/_inc---CalDAVRequest.php.html b/docs/api/davical/Request/_inc---CalDAVRequest.php.html
new file mode 100644
index 00000000..812b07cf
--- /dev/null
+++ b/docs/api/davical/Request/_inc---CalDAVRequest.php.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+ Docs for page CalDAVRequest.php
+
+
+
+
+
+
/inc/CalDAVRequest.php
+
+
+
+
Description
+
+
+
+
Functions that are needed for all CalDAV Requests
+
Ascertaining the paths Ascertaining the current user's permission to those paths. Utility functions which we can use to decide whether this
+ is a permitted activity for this user.
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
+
+
+
+
+ CalDAVRequest
+
+
+ A class for collecting things to do with this request.
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("XMLElement.php" )
+ (line 17 )
+
+
+
+
+
Functions that are needed for all CalDAV Requests
+
Ascertaining the paths Ascertaining the current user's permission to those paths. Utility functions which we can use to decide whether this
+ is a permitted activity for this user.
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+
+
+
+
+
+ DEPTH_INFINITY = 9999
+ (line 20 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---collection.php.html b/docs/api/davical/_htdocs---collection.php.html
new file mode 100644
index 00000000..611e69c2
--- /dev/null
+++ b/docs/api/davical/_htdocs---collection.php.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+ Docs for page collection.php
+
+
+
+
+
+
/htdocs/collection.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("classBrowser.php" )
+ (line 17 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---freebusy.php.html b/docs/api/davical/_htdocs---freebusy.php.html
new file mode 100644
index 00000000..27b6a8df
--- /dev/null
+++ b/docs/api/davical/_htdocs---freebusy.php.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+ Docs for page freebusy.php
+
+
+
+
+
+
/htdocs/freebusy.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
We also allow URLs like .../freebusy.php/user@example.com to work, so long as the e-mail matches a single user whose calendar we have rights to.
+
NOTE: It is OK for there to *be* duplicate e-mail addresses, just so long as we only have read permission (or more) for only one of them.
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---help.php.html b/docs/api/davical/_htdocs---help.php.html
new file mode 100644
index 00000000..80bcf5b0
--- /dev/null
+++ b/docs/api/davical/_htdocs---help.php.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+ Docs for page help.php
+
+
+
+
+
+
/htdocs/help.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---index.php.html b/docs/api/davical/_htdocs---index.php.html
new file mode 100644
index 00000000..81b1e21a
--- /dev/null
+++ b/docs/api/davical/_htdocs---index.php.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+ Docs for page index.php
+
+
+
+
+
+
/htdocs/index.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ include
+ ("../inc/always.php" )
+ (line 10 )
+
+
+
+
+
+
+
+
+
+
+
+
+
If the request is not a GET or POST then they must really want caldav.php!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---relationship_types.php.html b/docs/api/davical/_htdocs---relationship_types.php.html
new file mode 100644
index 00000000..617085c8
--- /dev/null
+++ b/docs/api/davical/_htdocs---relationship_types.php.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+ Docs for page relationship_types.php
+
+
+
+
+
+
/htdocs/relationship_types.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("DataUpdate.php" )
+ (line 9 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("classBrowser.php" )
+ (line 10 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("DataEntry.php" )
+ (line 8 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---roles.php.html b/docs/api/davical/_htdocs---roles.php.html
new file mode 100644
index 00000000..a672e39d
--- /dev/null
+++ b/docs/api/davical/_htdocs---roles.php.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+ Docs for page roles.php
+
+
+
+
+
+
/htdocs/roles.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("classBrowser.php" )
+ (line 9 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_htdocs---usr.php.html b/docs/api/davical/_htdocs---usr.php.html
new file mode 100644
index 00000000..481a8534
--- /dev/null
+++ b/docs/api/davical/_htdocs---usr.php.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+ Docs for page usr.php
+
+
+
+
+
+
/htdocs/usr.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
If the user has uploaded a .ics file as a calendar, we fake this out
+
as if it were a "PUT" request against a collection. This is something of a hack. It works though :-)
+
+
+
+
+
+
+
+
+
Handle any actions, such as 'delete_relation'
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---caldav-LOCK.php.html b/docs/api/davical/_inc---caldav-LOCK.php.html
new file mode 100644
index 00000000..976cb2a1
--- /dev/null
+++ b/docs/api/davical/_inc---caldav-LOCK.php.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+ Docs for page caldav-LOCK.php
+
+
+
+
+
+
/inc/caldav-LOCK.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("XMLElement.php" )
+ (line 10 )
+
+
+
+
+
We support both LOCK and UNLOCK methods in this function
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---caldav-PUT-functions.php.html b/docs/api/davical/_inc---caldav-PUT-functions.php.html
new file mode 100644
index 00000000..c25cbd3b
--- /dev/null
+++ b/docs/api/davical/_inc---caldav-PUT-functions.php.html
@@ -0,0 +1,254 @@
+
+
+
+
+
+ Docs for page caldav-PUT-functions.php
+
+
+
+
+
+
/inc/caldav-PUT-functions.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ include_once
+ ("iCalendar.php" )
+ (line 9 )
+
+
+
+
+
Check if the user wants to put just one EVENT/TODO or a whole calendar
+
if the collection = calendar = $request_container doesn't exist then create it return true if it's a whole calendar
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
controlRequestContainer (line
42 )
+
+
+
+
Work out the location we are doing the PUT to, and check that we have the rights to do the needful.
+
+ void
+
+ controlRequestContainer
+
+ (string $username , int $user_no , string $path , boolean $caldav_context )
+
+
+
+
+ string
+ $username : The name of the destination user
+
+ int
+ $user_no : The user making the change
+
+ string
+ $path : The DAV path the resource is bing PUT to
+
+ boolean
+ $caldav_context : Whether we are responding via CalDAV or interactively
+
+
+
+
+
+
+
+
+
+
import_collection (line
122 )
+
+
+
+
This function will import a whole calendar
+
+ void
+
+ import_collection
+
+ (string $ics_content , int $user_no , string $path , boolean $caldav_context )
+
+
+
+
+ string
+ $ics_content : the ics file to import
+
+ int
+ $user_no : the user wich will receive this ics file
+
+ string
+ $path : the $path where it will be store such as /user_foo/home/
+
+ boolean
+ $caldav_context : Whether we are responding via CalDAV or interactively
+
+
+
+
+
+
+
+
+
+
public_events_only (line
91 )
+
+
+
+
Check if this collection should force all events to be PUBLIC.
+
+
+ boolean
+
+ public_events_only
+
+ (string $user_no , string $dav_name )
+
+
+
+
+ string
+ $user_no : the user that owns the collection
+
+ string
+ $dav_name : the collection to check
+
+
+
+
+
+
+
+
+
+
putCalendarResource (line
273 )
+
+
+
+
Put the resource from this request
+
+
+ string
+
+ putCalendarResource
+
+ ( &$request , int $author , boolean $caldav_context , object $request )
+
+
+
+
+ object
+ $request : A reference to the request object
+
+ int
+ $author : The user_no who wants to put this resource on the server
+
+ boolean
+ $caldav_context : Whether we are responding via CalDAV or interactively
+
+
+ &$request
+
+
+
+
+
+
+
+
+
+
rollback_on_error (line
19 )
+
+
+
+
This function launches an error
+
+ void
+
+ rollback_on_error
+
+ (boolean $caldav_context , int $user_no , string $path , [string $message = '' ], [int $error_no = 500 ])
+
+
+
+
+ boolean
+ $caldav_context : Whether we are responding via CalDAV or interactively
+
+ int
+ $user_no : the user wich will receive this ics file
+
+ string
+ $path : the $path where the PUT failed to store such as /user_foo/home/
+
+ string
+ $message : An optional error message to return to the client
+
+ int
+ $error_no : An optional value for the HTTP error code
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---caldav-REPORT-calquery.php.html b/docs/api/davical/_inc---caldav-REPORT-calquery.php.html
new file mode 100644
index 00000000..358d7815
--- /dev/null
+++ b/docs/api/davical/_inc---caldav-REPORT-calquery.php.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+ Docs for page caldav-REPORT-calquery.php
+
+
+
+
+
+
/inc/caldav-REPORT-calquery.php
+
+
+
+
Description
+
+
+
+
Build the array of properties to include in the report output
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
apply_filter (line
57 )
+
+
+
+
While we can construct our SQL to apply some filters in the query, other filters need to be checked against the retrieved record. This is for handling those ones.
+
+
+ boolean
+
+ apply_filter
+
+ ( $filters , string $item , array $filter )
+
+
+
+
+ array
+ $filter : An array of XMLElement which is the filter definition
+
+ string
+ $item : The database row retrieved for this calendar item
+
+
+ $filters
+
+
+
+
+
+
+
+
+
+
BuildSqlFilter (line
228 )
+
+
+
+
Build an SQL 'WHERE' clause which implements (parts of) the filter. The elements of the filter which are implemented in the SQL will be removed.
+
+
+ string
+
+ BuildSqlFilter
+
+ ( $filter , arrayref &$filter )
+
+
+
+
+ arrayref
+ &$filter : A reference to an array of XMLElement defining the filter
+
+
+ $filter
+
+
+
+
+
+
+
+
+
+
SqlFilterFragment (line
72 )
+
+
+
+
Process a filter fragment returning an SQL fragment
+
+ void
+
+ SqlFilterFragment
+
+ ( $filter , $components , [ $property = null ], [ $parameter = null ])
+
+
+
+
+
+ $filter
+
+
+ $components
+
+
+ $property
+
+
+ $parameter
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html b/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html
new file mode 100644
index 00000000..4097d792
--- /dev/null
+++ b/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+ Docs for page caldav-REPORT-freebusy.php
+
+
+
+
+
+
/inc/caldav-REPORT-freebusy.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ include_once
+ ("iCalendar.php" )
+ (line 5 )
+
+
+
+
+
Handle the FREE-BUSY-QUERY variant of REPORT
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---caldav-REPORT-multiget.php.html b/docs/api/davical/_inc---caldav-REPORT-multiget.php.html
new file mode 100644
index 00000000..a5eda617
--- /dev/null
+++ b/docs/api/davical/_inc---caldav-REPORT-multiget.php.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Docs for page caldav-REPORT-multiget.php
+
+
+
+
+
+
/inc/caldav-REPORT-multiget.php
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---caldav-REPORT-principal.php.html b/docs/api/davical/_inc---caldav-REPORT-principal.php.html
new file mode 100644
index 00000000..beb0b52f
--- /dev/null
+++ b/docs/api/davical/_inc---caldav-REPORT-principal.php.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+ Docs for page caldav-REPORT-principal.php
+
+
+
+
+
+
/inc/caldav-REPORT-principal.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
principal_to_xml (line
14 )
+
+
+
+
Return XML for a single Principal (user) from the DB TODO: Refactor this functionality into the CalDAVPrincipal object
+
+
+ string
+
+ principal_to_xml
+
+ (array $properties , string $item )
+
+
+
+
+ array
+ $properties : The requested properties for this principal
+
+ string
+ $item : The user data for this calendar
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---check_UTF8.php.html b/docs/api/davical/_inc---check_UTF8.php.html
new file mode 100644
index 00000000..89fce8c4
--- /dev/null
+++ b/docs/api/davical/_inc---check_UTF8.php.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+ Docs for page check_UTF8.php
+
+
+
+
+
+
/inc/check_UTF8.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
check_string (line
211 )
+
+
+
+
+ void
+
+ check_string
+
+ ( $ics )
+
+
+
+
+
+
+
+
+
+
+
+
unicodeToUtf8 (line
179 )
+
+
+
+
Takes an array of ints representing the Unicode characters and returns a UTF-8 string. Astral planes are supported ie. the ints in the input can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates are not allowed.
+
Returns false if the input array contains ints that represent surrogates or are outside the Unicode range.
+
+ void
+
+ unicodeToUtf8
+
+ ( &$arr )
+
+
+
+
+
+
+
+
+
+
+
+
utf8ToUnicode (line
59 )
+
+
+
+
Takes an UTF-8 string and returns an array of ints representing the Unicode characters. Astral planes are supported ie. the ints in the output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates are not allowed.
+
Returns false if the input string isn't a valid UTF-8 octet sequence.
+
+ void
+
+ utf8ToUnicode
+
+ ( &$str )
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---davical_configuration_missing.php.html b/docs/api/davical/_inc---davical_configuration_missing.php.html
new file mode 100644
index 00000000..321084f4
--- /dev/null
+++ b/docs/api/davical/_inc---davical_configuration_missing.php.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+ Docs for page davical_configuration_missing.php
+
+
+
+
+
+
/inc/davical_configuration_missing.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---freebusy-GET.php.html b/docs/api/davical/_inc---freebusy-GET.php.html
new file mode 100644
index 00000000..40109d88
--- /dev/null
+++ b/docs/api/davical/_inc---freebusy-GET.php.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+ Docs for page freebusy-GET.php
+
+
+
+
+
+
/inc/freebusy-GET.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("iCalendar.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---interactive-page.php.html b/docs/api/davical/_inc---interactive-page.php.html
new file mode 100644
index 00000000..18c67bde
--- /dev/null
+++ b/docs/api/davical/_inc---interactive-page.php.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+ Docs for page interactive-page.php
+
+
+
+
+
+
/inc/interactive-page.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("MenuSet.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---other_translated_strings.php.html b/docs/api/davical/_inc---other_translated_strings.php.html
new file mode 100644
index 00000000..09e04af1
--- /dev/null
+++ b/docs/api/davical/_inc---other_translated_strings.php.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+ Docs for page other_translated_strings.php
+
+
+
+
+
+
/inc/other_translated_strings.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---page-footer.php.html b/docs/api/davical/_inc---page-footer.php.html
new file mode 100644
index 00000000..04115b3e
--- /dev/null
+++ b/docs/api/davical/_inc---page-footer.php.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+ Docs for page page-footer.php
+
+
+
+
+
+
/inc/page-footer.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---page-header.php.html b/docs/api/davical/_inc---page-header.php.html
new file mode 100644
index 00000000..d0a9d903
--- /dev/null
+++ b/docs/api/davical/_inc---page-header.php.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+ Docs for page page-header.php
+
+
+
+
+
+
/inc/page-header.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
make_help_link (line
7 )
+
+
+
+
+ void
+
+ make_help_link
+
+ ( $matches )
+
+
+
+
+
+
+
+
+
+
+
+
send_page_header (line
30 )
+
+
+
+
+ void
+
+ send_page_header
+
+ ()
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/_inc---test-RRULE.php.html b/docs/api/davical/_inc---test-RRULE.php.html
new file mode 100644
index 00000000..393a0468
--- /dev/null
+++ b/docs/api/davical/_inc---test-RRULE.php.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+ Docs for page test-RRULE.php
+
+
+
+
+
+
/inc/test-RRULE.php
+
+
+
+
Description
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 2 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/authentication/_inc---auth-functions.php.html b/docs/api/davical/authentication/_inc---auth-functions.php.html
new file mode 100644
index 00000000..dc23af15
--- /dev/null
+++ b/docs/api/davical/authentication/_inc---auth-functions.php.html
@@ -0,0 +1,207 @@
+
+
+
+
+
+ Docs for page auth-functions.php
+
+
+
+
+
+
/inc/auth-functions.php
+
+
+
+
Description
+
+
+
+
The authentication handling plugins can be used by the Session class to provide authentication.
+
Each authenticate hook needs to:
Accept a username / password Confirm the username / password are correct Create (or update) a 'usr' record in our database Return the 'usr' record as an object Return === false when authentication fails It can expect that:
Configuration data will be in $c->authenticate_hook['config'], which might be an array, or whatever is needed. In order to be called:
This file should be included $c->authenticate_hook['call'] should be set to the name of the plugin $c->authenticate_hook['config'] should be set up with any configuration data for the plugin
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("DataUpdate.php" )
+ (line 29 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("AWLUtilities.php" )
+ (line 28 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
AuthExternalAWL (line
142 )
+
+
+
+
Authenticate against a different PostgreSQL database which contains a usr table in the AWL format.
+
Use this as in the following example config snippet:
require_once('auth-functions.php'); $c->authenticate_hook = array( 'call' => 'AuthExternalAwl', 'config' => array( // A PgSQL database connection string for the database containing user records 'connection' => 'dbname=wrms host=otherhost port=5433 user=general', // Which columns should be fetched from the database 'columns' => "user_no, active, email_ok, joined, last_update AS updated, last_used, username, password, fullname, email", // a WHERE clause to limit the records returned. 'where' => "active AND org_code=7" ) );
+
+ void
+
+ AuthExternalAWL
+
+ ( $username , $password )
+
+
+
+
+
+ $username
+
+
+ $password
+
+
+
+
+
+
+
+
+
+
CreateDefaultRelationships (line
63 )
+
+
+
+
Create default relationships
+
+ void
+
+ CreateDefaultRelationships
+
+ (string $username )
+
+
+
+
+ string
+ $username : The username of the user we are creating relationships for.
+
+
+
+
+
+
+
+
+
+
CreateHomeCalendar (line
36 )
+
+
+
+
Create a default home calendar for the user.
+
+ void
+
+ CreateHomeCalendar
+
+ (string $username )
+
+
+
+
+ string
+ $username : The username of the user we are creating relationships for.
+
+
+
+
+
+
+
+
+
+
UpdateUserFromExternal (line
90 )
+
+
+
+
Update the local cache of the remote user details
+
+ void
+
+ UpdateUserFromExternal
+
+ ( &$usr , object $usr )
+
+
+
+
+ object
+ $usr : The user details we read from the remote.
+
+
+ &$usr
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_htdocs---caldav.php.html b/docs/api/davical/caldav/_htdocs---caldav.php.html
new file mode 100644
index 00000000..29568ea8
--- /dev/null
+++ b/docs/api/davical/caldav/_htdocs---caldav.php.html
@@ -0,0 +1,300 @@
+
+
+
+
+
+ Docs for page caldav.php
+
+
+
+
+
+
/htdocs/caldav.php
+
+
+
+
Description
+
+
+
+
CalDAV Server - main program
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 11 )
+
+
+
+
+
CalDAV Server - main program
+
+
+
+
+
+
+
+
+
+
+
+
From reading the "Scheduling Extensions to CalDAV" draft I don't think that we will be doing 'calendar-schedule' any time soon. The current spec is at: http://www.ietf.org/internet-drafts/draft-desruisseaux-caldav-sched-03.txt
+
access-control is rfc3744, so we will say we do it, but I doubt if we do it in all (or even much of) it's glory really.
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_htdocs---public.php.html b/docs/api/davical/caldav/_htdocs---public.php.html
new file mode 100644
index 00000000..dd5e7de2
--- /dev/null
+++ b/docs/api/davical/caldav/_htdocs---public.php.html
@@ -0,0 +1,179 @@
+
+
+
+
+
+ Docs for page public.php
+
+
+
+
+
+
/htdocs/public.php
+
+
+
+
Description
+
+
+
+
CalDAV Server - main program
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("../inc/always.php" )
+ (line 11 )
+
+
+
+
+
CalDAV Server - main program
+
+
+
+
+
+
+
+
+
+
A simplified DAV header in this case
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-DELETE.php.html b/docs/api/davical/caldav/_inc---caldav-DELETE.php.html
new file mode 100644
index 00000000..5cda8dc6
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-DELETE.php.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Docs for page caldav-DELETE.php
+
+
+
+
+
+
/inc/caldav-DELETE.php
+
+
+
+
Description
+
+
+
+
+
CalDAV Server - handle DELETE method
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-GET.php.html b/docs/api/davical/caldav/_inc---caldav-GET.php.html
new file mode 100644
index 00000000..c5cfd85a
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-GET.php.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+ Docs for page caldav-GET.php
+
+
+
+
+
+
/inc/caldav-GET.php
+
+
+
+
Description
+
+
+
+
CalDAV Server - handle GET method
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ include_once
+ ("iCalendar.php" )
+ (line 48 )
+
+
+
+
+
Here we are constructing a whole calendar response for this collection, including the timezones that are referred to by the events we have selected.
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-MKCALENDAR.php.html b/docs/api/davical/caldav/_inc---caldav-MKCALENDAR.php.html
new file mode 100644
index 00000000..fde06f6e
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-MKCALENDAR.php.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Docs for page caldav-MKCALENDAR.php
+
+
+
+
+
+
/inc/caldav-MKCALENDAR.php
+
+
+
+
Description
+
+
+
+
+
CalDAV Server - handle MKCALENDAR method
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html b/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html
new file mode 100644
index 00000000..ddbfb04c
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Docs for page caldav-OPTIONS.php
+
+
+
+
+
+
/inc/caldav-OPTIONS.php
+
+
+
+
Description
+
+
+
+
+
CalDAV Server - handle OPTIONS method
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html b/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html
new file mode 100644
index 00000000..0c73dd1f
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Docs for page caldav-PROPPATCH.php
+
+
+
+
+
+
/inc/caldav-PROPPATCH.php
+
+
+
+
Description
+
+
+
+
+
CalDAV Server - handle PROPPATCH method
+
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-PUT.php.html b/docs/api/davical/caldav/_inc---caldav-PUT.php.html
new file mode 100644
index 00000000..e3e8f6ac
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-PUT.php.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Docs for page caldav-PUT.php
+
+
+
+
+
+
/inc/caldav-PUT.php
+
+
+
+
Description
+
+
+
+
CalDAV Server - handle PUT method
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
CalDAV Server - handle PUT method
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/caldav/_inc---caldav-REPORT.php.html b/docs/api/davical/caldav/_inc---caldav-REPORT.php.html
new file mode 100644
index 00000000..f877aefa
--- /dev/null
+++ b/docs/api/davical/caldav/_inc---caldav-REPORT.php.html
@@ -0,0 +1,178 @@
+
+
+
+
+
+ Docs for page caldav-REPORT.php
+
+
+
+
+
+
/inc/caldav-REPORT.php
+
+
+
+
Description
+
+
+
+
CalDAV Server - handle REPORT method
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("iCalendar.php" )
+ (line 35 )
+
+
+
+
+
CalDAV Server - handle REPORT method
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
calendar_to_xml (line
68 )
+
+
+
+
Return XML for a single calendar (or todo) entry from the DB
+
+
+ string
+
+ calendar_to_xml
+
+ (array $properties , string $item )
+
+
+
+
+ array
+ $properties : The properties for this calendar
+
+ string
+ $item : The calendar data for this calendar
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/ldap/_inc---drivers_ldap.php.html b/docs/api/davical/ldap/_inc---drivers_ldap.php.html
new file mode 100644
index 00000000..ec9b8b49
--- /dev/null
+++ b/docs/api/davical/ldap/_inc---drivers_ldap.php.html
@@ -0,0 +1,218 @@
+
+
+
+
+
+ Docs for page drivers_ldap.php
+
+
+
+
+
+
/inc/drivers_ldap.php
+
+
+
+
Description
+
+
+
+
Manages LDAP repository connection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
getStaticLdap (line
199 )
+
+
+
+
A generic function to create and fetch static objects
+
+ void
+
+ getStaticLdap
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
LDAP_check (line
244 )
+
+
+
+
Check the username / password against the LDAP server
+
+ void
+
+ LDAP_check
+
+ ( $username , $password )
+
+
+
+
+
+ $username
+
+
+ $password
+
+
+
+
+
+
+
+
+
+
sync_LDAP (line
314 )
+
+
+
+
sync LDAP against the DB
+
+ void
+
+ sync_LDAP
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
sync_user_from_LDAP (line
216 )
+
+
+
+
Synchronise a cached user with one from LDAP
+
+ void
+
+ sync_user_from_LDAP
+
+ ( &$usr , $mapping , $ldap_values , object $usr )
+
+
+
+
+ object
+ $usr : A user record to be updated (or created)
+
+
+ &$usr
+
+
+ $mapping
+
+
+ $ldap_values
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html b/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html
new file mode 100644
index 00000000..f8b469a3
--- /dev/null
+++ b/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+ Docs for page drivers_squid_pam.php
+
+
+
+
+
+
/inc/drivers_squid_pam.php
+
+
+
+
Description
+
+
+
+
Manages PAM repository connection with SQUID help
+
+
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+
Manages PAM repository connection with SQUID help
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
SQUID_PAM_check (line
53 )
+
+
+
+
Check the username / password against the PAM system
+
+ void
+
+ SQUID_PAM_check
+
+ ( $username , $password )
+
+
+
+
+
+ $username
+
+
+ $password
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/ldap/ldapDrivers.html b/docs/api/davical/ldap/ldapDrivers.html
new file mode 100644
index 00000000..a79d0cf3
--- /dev/null
+++ b/docs/api/davical/ldap/ldapDrivers.html
@@ -0,0 +1,214 @@
+
+
+
+
+
+ Docs For Class ldapDrivers
+
+
+
+
+
+
ldapDrivers
+
+
+
+
+
+
+
+
+
+
Method Summary
+
+
+
+
+
+
+
+
+
array
+
requestUser
+ (
string $filter , [
array $attributes =
NULL ],
string $passwd )
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
Initializes the LDAP connection
+
+
+ ldapDrivers
+
+ __construct
+
+ (array $config )
+
+
+
+
+ array
+ $config : The configuration data
+
+
+
+
+
+
+
+
+
+
+
Constructor.
+
+
+ ldapDrivers
+
+ ldapDrivers
+
+ (array $config )
+
+
+
+
+ array
+ $config : The configuration data
+
+
+
+
+
+
+
+
+
+
+
Retrieve all users from the LDAP directory
+
+
+ void
+
+ getAllUsers
+
+ ( $attributes )
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the result of the LDAP query
+
+
+
+ array
+
+ requestUser
+
+ (string $filter , [array $attributes = NULL ], string $passwd )
+
+
+
+
+ string
+ $filter : The filter used to search entries
+
+ array
+ $attributes : Attributes to be returned
+
+ string
+ $passwd : password to check
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/ldap/squidPamDrivers.html b/docs/api/davical/ldap/squidPamDrivers.html
new file mode 100644
index 00000000..ea3b277c
--- /dev/null
+++ b/docs/api/davical/ldap/squidPamDrivers.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+ Docs For Class squidPamDrivers
+
+
+
+
+
+
squidPamDrivers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Methods
+
+
+
+
+
+
+
+
+
+
The constructor
+
+
+ squidPamDrivers
+
+ __construct
+
+ (string $config )
+
+
+
+
+ string
+ $config : path where /usr/lib/squid/pam_auth is
+
+
+
+
+
+
+
+
+
+
+
Constructor.
+
+
+ squidPamDrivers
+
+ squidPamDrivers
+
+ (string $config )
+
+
+
+
+ string
+ $config : path where /usr/lib/squid/pam_auth is
+
+
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:46 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html b/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html
new file mode 100644
index 00000000..a8c4f373
--- /dev/null
+++ b/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html
@@ -0,0 +1,432 @@
+
+
+
+
+
+ Docs for page caldav-PROPFIND.php
+
+
+
+
+
+
/inc/caldav-PROPFIND.php
+
+
+
+
Description
+
+
+
+
CalDAV Server - handle PROPFIND method
+
+
+
+
+
+
+
+
+
Includes
+
+
+
+
+
+
+
+
+ require_once
+ ("XMLElement.php" )
+ (line 17 )
+
+
+
+
+
+
+
+
+
+
+
+
+ require_once
+ ("iCalendar.php" )
+ (line 18 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Functions
+
+
+
+
+
+
+
+
add_namespace (line
27 )
+
+
+
+
+ void
+
+ add_namespace
+
+ ( $prefix , $namespace )
+
+
+
+
+
+ $prefix
+
+
+ $namespace
+
+
+
+
+
+
+
+
+
+
add_principal_properties (line
276 )
+
+
+
+
Handles any properties related to the DAV::PRINCIPAL in the request
+
+ void
+
+ add_principal_properties
+
+ ( &$prop , &$not_found , &$denied )
+
+
+
+
+
+ &$prop
+
+
+ &$not_found
+
+
+ &$denied
+
+
+
+
+
+
+
+
+
+
caldav_tag (line
120 )
+
+
+
+
+ void
+
+ caldav_tag
+
+ ( $tag )
+
+
+
+
+
+
+
+
+
+
+
+
collection_to_xml (line
315 )
+
+
+
+
Returns an XML sub-tree for a single collection record from the DB
+
+ void
+
+ collection_to_xml
+
+ ( $collection )
+
+
+
+
+
+
+
+
+
+
+
+
get_arbitrary_properties (line
252 )
+
+
+
+
Fetches any arbitrary properties that were requested by the PROPFIND into an array, which we return.
+
+
+ array
+
+ get_arbitrary_properties
+
+ ( $dav_name )
+
+
+
+
+
+
+
+
+
+
+
+
get_collection (line
638 )
+
+
+
+
Get XML response for a single collection. If Depth is >0 then
+
subsidiary collections will also be got up to $depth
+
+ void
+
+ get_collection
+
+ ( $depth , $user_no , $collection_path )
+
+
+
+
+
+ $depth
+
+
+ $user_no
+
+
+ $collection_path
+
+
+
+
+
+
+
+
+
+
get_collection_contents (line
569 )
+
+
+
+
Get XML response for items in the collection If '/' is requested, a list of visible users is given, otherwise a list of calendars for the user which are parented by this path.
+
+ void
+
+ get_collection_contents
+
+ ( $depth , $user_no , $collection )
+
+
+
+
+
+ $depth
+
+
+ $user_no
+
+
+ $collection
+
+
+
+
+
+
+
+
+
+
get_item (line
691 )
+
+
+
+
Get XML response for a single item. Depth is irrelevant for this.
+
+ void
+
+ get_item
+
+ ( $item_path )
+
+
+
+
+
+
+
+
+
+
+
+
item_to_xml (line
472 )
+
+
+
+
Return XML for a single data item from the DB
+
+ void
+
+ item_to_xml
+
+ ( $item )
+
+
+
+
+
+
+
+
+
+
+
+
namespace_array (line
108 )
+
+
+
+
+ void
+
+ namespace_array
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
ns_tag (line
50 )
+
+
+
+
+ void
+
+ ns_tag
+
+ ( $in_tag , [ $namespace = null ], [ $prefix = null ])
+
+
+
+
+
+ $in_tag
+
+
+ $namespace
+
+
+ $prefix
+
+
+
+
+
+
+
+
+
+
privileges (line
238 )
+
+
+
+
Returns the array of privilege names converted into XMLElements
+
+ void
+
+ privileges
+
+ ( $privilege_names , [ $container = "privilege" ])
+
+
+
+
+
+ $privilege_names
+
+
+ $container
+
+
+
+
+
+
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:45 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/elementindex.html b/docs/api/elementindex.html
new file mode 100644
index 00000000..64ee3688
--- /dev/null
+++ b/docs/api/elementindex.html
@@ -0,0 +1,1677 @@
+
+
+
+
+
+
+
+
+
+
+
+Full index
+Package indexes
+
+
+
+
+
+
+
+
+
+ AddDays
+
+
+
+ Add some integer number of days to a date
+
+
+
+ AddDuration
+
+
+
+ Add duration
+
+
+
+ AddMonths
+
+
+
+ Add some number of months to a date
+
+
+
+ add_namespace
+
+
+
+
+
+
+ add_principal_properties
+
+
+
+ Handles any properties related to the DAV::PRINCIPAL in the request
+
+
+
+ AllowedTo
+
+
+
+ Checks whether a user is allowed to do something.
+
+
+
+ AllowedTo
+
+
+
+ Are we allowed to do the requested activity
+
+
+
+ AllowedTo
+
+
+
+ Extend parent definition of what the current user is allowed to do
+
+
+
+ ApplyBySetPos
+
+
+
+ Given set position descriptions like '1', '3', '11', '-3' or '-1' and a set, return the subset matching the list of set positions.
+
+
+
+ apply_filter
+
+
+
+ While we can construct our SQL to apply some filters in the query, other filters need to be checked against the retrieved record. This is for handling those ones.
+
+
+
+ AssignSessionDetails
+
+
+
+ Internal function used to assign the session details to a user's new session.
+
+
+
+ AssignSessionDetails
+
+
+
+ Internal function used to assign the session details to a user's new session.
+
+
+
+ AuthExternalAWL
+
+
+
+ Authenticate against a different PostgreSQL database which contains a usr table in the AWL format.
+
+
+
+ AuthFailedResponse
+
+
+
+ Authorisation failed, so we send some headers to say so.
+
+
+
+ auth-functions.php
+
+
+
+
+
+
+
+
+
+
+ $by_email
+
+
+
+
+
+
+ BasicAuthSession
+
+
+
+ Handle Basic HTTP Authentication (not secure unless https)
+
+
+
+ BuildSqlFilter
+
+
+
+ Build an SQL 'WHERE' clause which implements (parts of) the filter. The elements of the filter which are implemented in the SQL will be removed.
+
+
+
+
+
+
+
+ $calendar_home_set
+
+
+
+
+
+
+ $collection_id
+
+
+
+ The ID of the collection containing this path, or of this path if it is a collection
+
+
+
+ $collection_path
+
+
+
+ The path corresponding to the collection_id
+
+
+
+ CalDAVPrincipal
+
+
+
+ A class for things to do with a DAV Principal
+
+
+
+ CalDAVPrincipal
+
+
+
+ Constructor
+
+
+
+ CalDAVRequest
+
+
+
+ A class for collecting things to do with this request.
+
+
+
+ CalDAVRequest
+
+
+
+ Create a new CalDAVRequest object.
+
+
+
+ caldav_tag
+
+
+
+
+
+
+ calendar_to_xml
+
+
+
+ Return XML for a single calendar (or todo) entry from the DB
+
+
+
+ CheckPassword
+
+
+
+ CheckPassword does all of the password checking and returns a user record object, or false if it all ends in tears.
+
+
+
+ check_string
+
+
+
+
+
+
+ collection_to_xml
+
+
+
+ Returns an XML sub-tree for a single collection record from the DB
+
+
+
+ controlRequestContainer
+
+
+
+ Work out the location we are doing the PUT to, and check that we have the rights to do the needful.
+
+
+
+ CreateDefaultRelationships
+
+
+
+ Create default relationships
+
+
+
+ CreateHomeCalendar
+
+
+
+ Create a default home calendar for the user.
+
+
+
+ caldav.php
+
+
+
+
+
+
+ collection.php
+
+
+
+
+
+
+ caldav-DELETE.php
+
+
+
+
+
+
+ caldav-GET.php
+
+
+
+
+
+
+ caldav-LOCK.php
+
+
+
+
+
+
+ caldav-MKCALENDAR.php
+
+
+
+
+
+
+ caldav-OPTIONS.php
+
+
+
+
+
+
+ caldav-PROPFIND.php
+
+
+
+
+
+
+ caldav-PROPPATCH.php
+
+
+
+
+
+
+ caldav-PUT-functions.php
+
+
+
+
+
+
+ caldav-PUT.php
+
+
+
+
+
+
+ caldav-REPORT-calquery.php
+
+
+
+
+
+
+ caldav-REPORT-freebusy.php
+
+
+
+
+
+
+ caldav-REPORT-multiget.php
+
+
+
+
+
+
+ caldav-REPORT-principal.php
+
+
+
+
+
+
+ caldav-REPORT.php
+
+
+
+
+
+
+ CalDAVPrincipal.php
+
+
+
+
+
+
+ CalDAVRequest.php
+
+
+
+
+
+
+ check_UTF8.php
+
+
+
+
+
+
+
+
+
+
+ $depth
+
+
+
+ The depth parameter from the request headers, coerced into a valid integer: 0, 1 or DEPTH_INFINITY which is defined above. The default is set per various RFCs.
+
+
+
+ DateDifference
+
+
+
+ Produce an iCalendar format DURATION for the difference between this an another iCalDate
+
+
+
+ DaysInMonth
+
+
+
+ No of days in a month 1(Jan) - 12(Dec)
+
+
+
+ DepthRegexTail
+
+
+
+ Returns the tail of a Regex appropriate for this Depth, when appended to
+
+
+
+ DEPTH_INFINITY
+
+
+
+
+
+
+ DigestAuthSession
+
+
+
+ Handle Digest HTTP Authentication (no passwords were harmed in this transaction!)
+
+
+
+ DoResponse
+
+
+
+ Utility function we call when we have a simple status-based response to return to the client. Possibly
+
+
+
+ davical_configuration_missing.php
+
+
+
+
+
+
+ drivers_ldap.php
+
+
+
+
+
+
+ drivers_squid_pam.php
+
+
+
+
+
+
+
+
+
+
+ FailIfLocked
+
+
+
+ This will either (a) return false if no locks apply, or (b) return the lock_token which the request successfully included to open the lock, or: (c) respond directly to the client with the failure.
+
+
+
+ freebusy.php
+
+
+
+
+
+
+ freebusy-GET.php
+
+
+
+
+
+
+
+
+
+
+ getAllUsers
+
+
+
+ Retrieve all users from the LDAP directory
+
+
+
+ GetDepthName
+
+
+
+ Returns the name for this depth: 0, 1, infinity
+
+
+
+ GetLockDetails
+
+
+
+ Returns the DB object associated with a lock token, or false.
+
+
+
+ GetLockRow
+
+
+
+ Returns the locked row, either from the cache or from the database
+
+
+
+ GetMonthByDay
+
+
+
+ Applies any BYDAY to the month to return a set of days
+
+
+
+ GetMonthByMonthDay
+
+
+
+ Applies any BYMONTHDAY to the month to return a set of days
+
+
+
+ GetNext
+
+
+
+ This is most of the meat of the RRULE processing, where we find the next date.
+
+
+
+ GetRelationships
+
+
+
+ Method used to get the user's relationships
+
+
+
+ GetRoles
+
+
+
+ Internal function used to get the user's roles from the database.
+
+
+
+ GetRoles
+
+
+
+ Method used to get the user's roles
+
+
+
+ getStaticLdap
+
+
+
+ A generic function to create and fetch static objects
+
+
+
+ GetWeekByDay
+
+
+
+ Applies any BYDAY to the week to return a set of days
+
+
+
+ get_arbitrary_properties
+
+
+
+ Fetches any arbitrary properties that were requested by the PROPFIND into an array, which we return.
+
+
+
+ get_collection
+
+
+
+ Get XML response for a single collection. If Depth is >0 then
+
+
+
+ get_collection_contents
+
+
+
+ Get XML response for items in the collection If '/' is requested, a list of visible users is given, otherwise a list of calendars for the user which are parented by this path.
+
+
+
+ get_item
+
+
+
+ Get XML response for a single item. Depth is irrelevant for this.
+
+
+
+ GreaterThan
+
+
+
+ Test if $this is greater than the date parameter
+
+
+
+
+
+
+
+ HandleAction
+
+
+
+ Handle any unusual actions we might invent
+
+
+
+ help.php
+
+
+
+
+
+
+ HTTPAuthSession
+
+
+
+ The constructor, which just calls the actual type configured
+
+
+
+ HTTPAuthSession
+
+
+
+ A Class for handling a session using HTTP Basic Authentication
+
+
+
+ HTTPAuthSession.php
+
+
+
+
+
+
+
+
+
+
+ index.php
+
+
+
+
+
+
+ iCalDate
+
+
+
+ The constructor takes either an iCalendar date, a text string formatted as an iCalendar date, or epoch seconds.
+
+
+
+ iCalDate
+
+
+
+ A Class for handling dates in iCalendar format. We do make the simplifying assumption that all date handling in here is normalised to GMT. One day we might provide some functions to do that, but for now it is done externally.
+
+
+
+ importFromDirectory
+
+
+
+
+
+
+ import_collection
+
+
+
+ This function will import a whole calendar
+
+
+
+ interactive-page.php
+
+
+
+
+
+
+ InitialiseRecord
+
+
+
+ Initialise the Principal object from a $usr record from the DB.
+
+
+
+ IsCollection
+
+
+
+ Returns true if the URL referenced by this request points at a collection.
+
+
+
+ IsInfiniteDepth
+
+
+
+ Returns true if the request asked for infinite depth
+
+
+
+ IsLocked
+
+
+
+ Checks whether the resource is locked, returning any lock token, or false
+
+
+
+ IsPrincipal
+
+
+
+ Returns true if the URL referenced by this request points at a principal.
+
+
+
+ item_to_xml
+
+
+
+ Return XML for a single data item from the DB
+
+
+
+
+
+
+
+ ldapDrivers
+
+
+
+
+
+
+ ldapDrivers
+
+
+
+ Constructor.
+
+
+
+ LDAP_check
+
+
+
+ Check the username / password against the LDAP server
+
+
+
+ LessThan
+
+
+
+ Test if $this is less than the date parameter
+
+
+
+ local_session_sql
+
+
+
+
+
+
+ LoginRequired
+
+
+
+ Checks that this user is logged in, and presents a login screen if they aren't.
+
+
+
+
+
+
+
+ $method
+
+
+
+ The HTTP request method: PROPFIND, LOCK, REPORT, OPTIONS, etc...
+
+
+
+ make_help_link
+
+
+
+
+
+
+ MonthDays
+
+
+
+ Given a MonthDays string like "1MO", "-2WE" return an integer day of the month.
+
+
+
+
+
+
+
+ namespace_array
+
+
+
+
+
+
+ ns_tag
+
+
+
+
+
+
+
+
+
+
+ $options
+
+
+
+
+
+
+ other_translated_strings.php
+
+
+
+
+
+
+
+
+
+
+ $principal
+
+
+
+ The 'principal' (user/resource/...) which this request seeks to access
+
+
+
+ public.php
+
+
+
+
+
+
+ page-footer.php
+
+
+
+
+
+
+ page-header.php
+
+
+
+
+
+
+ ParseDigestHeader
+
+
+
+ Parse the HTTP Digest Auth Header
+
+
+
+ principal_to_xml
+
+
+
+ Return XML for a single Principal (user) from the DB TODO: Refactor this functionality into the CalDAVPrincipal object
+
+
+
+ privileges
+
+
+
+ Returns the array of privilege names converted into XMLElements
+
+
+
+ public_events_only
+
+
+
+ Check if this collection should force all events to be PUBLIC.
+
+
+
+ putCalendarResource
+
+
+
+ Put the resource from this request
+
+
+
+
+
+
+
+ $raw_post
+
+
+
+ The raw data sent along with the request
+
+
+
+ relationship_types.php
+
+
+
+
+
+
+ roles.php
+
+
+
+
+
+
+ RRule.php
+
+
+
+
+
+
+ RSCDSSession.php
+
+
+
+
+
+
+ RSCDSUser.php
+
+
+
+
+
+
+ Render
+
+
+
+ Render the form / viewer as HTML to show the user
+
+
+
+ render
+
+
+
+
+
+
+ Render
+
+
+
+ Set the day of week used for calculation of week starts
+
+
+
+ RenderCollections
+
+
+
+ Render the user's collections
+
+
+
+ renderImportFromDirectory
+
+
+
+
+
+
+ RenderImportIcs
+
+
+
+ Render input file to import ics in calendar user
+
+
+
+ RenderRelationshipsFrom
+
+
+
+ Render the user's relationships to other users & resources
+
+
+
+ RenderRelationshipsTo
+
+
+
+ Render the user's relationships to other users & resources
+
+
+
+ renderSyncLDAP
+
+
+
+
+
+
+ requestUser
+
+
+
+ Returns the result of the LDAP query
+
+
+
+ rollback_on_error
+
+
+
+ This function launches an error
+
+
+
+ RRule
+
+
+
+ The constructor takes a start date and an RRULE definition. Both of these follow the iCalendar standard.
+
+
+
+ RRule
+
+
+
+ A Class for handling Events on a calendar which repeat
+
+
+
+ RSCDSSession
+
+
+
+ Create a new RSCDSSession object.
+
+
+
+ RSCDSSession
+
+
+
+ A class for creating and holding session information.
+
+
+
+ RSCDSUser
+
+
+
+ Constructor - nothing fancy as yet.
+
+
+
+ RSCDSUser
+
+
+
+ A class for viewing and maintaining DAViCal User records
+
+
+
+
+
+
+
+ $schedule_inbox_url
+
+
+
+
+
+
+ $schedule_outbox_url
+
+
+
+
+
+
+ $session
+ The session object is global.
+
+
+
+
+
+
+ send_page_header
+
+
+
+
+
+
+ SetEpochDate
+
+
+
+ Set the date from an epoch
+
+
+
+ SetGMTDate
+
+
+
+ Set the date from a text string
+
+
+
+ SetLocalDate
+
+
+
+ Set the date from a text string
+
+
+
+ SetMonthDay
+
+
+
+ Set the day in the month to what we have been given
+
+
+
+ setPermissions
+
+
+
+ Permissions are controlled as follows:
+
+
+
+ SetWeekStart
+
+
+
+ Set the day of week used for calculation of week starts
+
+
+
+ SqlFilterFragment
+
+
+
+ Process a filter fragment returning an SQL fragment
+
+
+
+ squidPamDrivers
+
+
+
+
+
+
+ squidPamDrivers
+
+
+
+ Constructor.
+
+
+
+ SQUID_PAM_check
+
+
+
+ Check the username / password against the PAM system
+
+
+
+ SupportedPrivileges
+
+
+
+ Return an array of what the DAV privileges are that are supported
+
+
+
+ sync_LDAP
+
+
+
+ sync LDAP against the DB
+
+
+
+ sync_user_from_LDAP
+
+
+
+ Synchronise a cached user with one from LDAP
+
+
+
+
+
+
+
+ tools.php
+
+
+
+
+
+
+ test-RRULE.php
+
+
+
+
+
+
+ TestByMonth
+
+
+
+ Test to see if our _mo matches something in the list of months we have received.
+
+
+
+ Tools
+
+
+
+
+
+
+ translate_relationship_list
+
+
+
+ Translate relationship names in the relationship_list for each user. See the documentation for classBrowser::BrowserColumn for the definition of the hook function parameters.
+
+
+
+
+
+
+
+ $url
+
+
+
+
+
+
+ $user_agent
+
+
+
+ The user agent making the request.
+
+
+
+ users.php
+
+
+
+
+
+
+ usr.php
+
+
+
+
+
+
+ unicodeToUtf8
+
+
+
+ Takes an array of ints representing the Unicode characters and returns a UTF-8 string. Astral planes are supported ie. the ints in the input can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates are not allowed.
+
+
+
+ UnsupportedRequest
+
+
+
+ Sometimes it's a perfectly formed request, but we just don't do that :-(
+
+
+
+ UpdateUserFromExternal
+
+
+
+ Update the local cache of the remote user details
+
+
+
+ UserFromPath
+
+
+
+ Work out the user whose calendar we are accessing, based on elements of the path.
+
+
+
+ UsernameFromPath
+
+
+
+ Work out the username, based on elements of the path.
+
+
+
+ utf8ToUnicode
+
+
+
+ Takes an UTF-8 string and returns an array of ints representing the Unicode characters. Astral planes are supported ie. the ints in the output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates are not allowed.
+
+
+
+
+
+
+
+ Validate
+
+
+
+ Validate the information the user submitted
+
+
+
+ ValidateLockToken
+
+
+
+ Checks to see whether the lock token given matches one of the ones handed in with the request.
+
+
+
+
+
+
+
+ WithinScope
+
+
+
+ Processes the array of $relative_days to $base and removes any which are not within the scope of our rule.
+
+
+
+ Write
+
+
+
+ Write the record to the file
+
+
+
+
+
+
+
+ XMLResponse
+
+
+
+ Send an XML Response. This function will never return.
+
+
+
+
+
+
+
+ _EpochFromParts
+
+
+
+ Given a local text date, convert it to an epoch
+
+
+
+ _GMTEpochFromParts
+
+
+
+ Given a GMT text date, convert it to an epoch
+
+
+
+ _GMTTextFromEpoch
+
+
+
+ Given a GMT epoch date, convert it to text
+
+
+
+ _PartsFromText
+
+
+
+ Given a text date, convert it to parts
+
+
+
+ _TextFromEpoch
+
+
+
+ Given an epoch date, convert it to text
+
+
+
+ __construct
+
+
+
+ The constructor
+
+
+
+ __construct
+
+
+
+ Initializes the LDAP connection
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/api/elementindex_awl.html b/docs/api/elementindex_awl.html
new file mode 100644
index 00000000..eeed64bf
--- /dev/null
+++ b/docs/api/elementindex_awl.html
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+
+
+
+
+
+[awl] element index
+ Package indexes
+
+All elements
+
+
+
+
+
+
+
+
+ _EpochFromParts
+
+
+
+ Given a local text date, convert it to an epoch
+
+
+
+ _GMTEpochFromParts
+
+
+
+ Given a GMT text date, convert it to an epoch
+
+
+
+ _GMTTextFromEpoch
+
+
+
+ Given a GMT epoch date, convert it to text
+
+
+
+ _PartsFromText
+
+
+
+ Given a text date, convert it to parts
+
+
+
+ _TextFromEpoch
+
+
+
+ Given an epoch date, convert it to text
+
+
+
+
+
+
+
+ AddDays
+
+
+
+ Add some integer number of days to a date
+
+
+
+ AddDuration
+
+
+
+ Add duration
+
+
+
+ AddMonths
+
+
+
+ Add some number of months to a date
+
+
+
+ ApplyBySetPos
+
+
+
+ Given set position descriptions like '1', '3', '11', '-3' or '-1' and a set, return the subset matching the list of set positions.
+
+
+
+
+
+
+
+ DateDifference
+
+
+
+ Produce an iCalendar format DURATION for the difference between this an another iCalDate
+
+
+
+ DaysInMonth
+
+
+
+ No of days in a month 1(Jan) - 12(Dec)
+
+
+
+
+
+
+
+ GetMonthByDay
+
+
+
+ Applies any BYDAY to the month to return a set of days
+
+
+
+ GetMonthByMonthDay
+
+
+
+ Applies any BYMONTHDAY to the month to return a set of days
+
+
+
+ GetNext
+
+
+
+ This is most of the meat of the RRULE processing, where we find the next date.
+
+
+
+ GetWeekByDay
+
+
+
+ Applies any BYDAY to the week to return a set of days
+
+
+
+ GreaterThan
+
+
+
+ Test if $this is greater than the date parameter
+
+
+
+
+
+
+
+ iCalDate
+
+
+
+ The constructor takes either an iCalendar date, a text string formatted as an iCalendar date, or epoch seconds.
+
+
+
+ iCalDate
+
+
+
+ A Class for handling dates in iCalendar format. We do make the simplifying assumption that all date handling in here is normalised to GMT. One day we might provide some functions to do that, but for now it is done externally.
+
+
+
+
+
+
+
+ LessThan
+
+
+
+ Test if $this is less than the date parameter
+
+
+
+
+
+
+
+ MonthDays
+
+
+
+ Given a MonthDays string like "1MO", "-2WE" return an integer day of the month.
+
+
+
+
+
+
+
+ RRule.php
+
+
+
+
+
+
+ Render
+
+
+
+ Set the day of week used for calculation of week starts
+
+
+
+ RRule
+
+
+
+ The constructor takes a start date and an RRULE definition. Both of these follow the iCalendar standard.
+
+
+
+ RRule
+
+
+
+ A Class for handling Events on a calendar which repeat
+
+
+
+
+
+
+
+ SetEpochDate
+
+
+
+ Set the date from an epoch
+
+
+
+ SetGMTDate
+
+
+
+ Set the date from a text string
+
+
+
+ SetLocalDate
+
+
+
+ Set the date from a text string
+
+
+
+ SetMonthDay
+
+
+
+ Set the day in the month to what we have been given
+
+
+
+ SetWeekStart
+
+
+
+ Set the day of week used for calculation of week starts
+
+
+
+
+
+
+
+ TestByMonth
+
+
+
+ Test to see if our _mo matches something in the list of months we have received.
+
+
+
+
+
+
+
+ WithinScope
+
+
+
+ Processes the array of $relative_days to $base and removes any which are not within the scope of our rule.
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/api/elementindex_davical.html b/docs/api/elementindex_davical.html
new file mode 100644
index 00000000..30dcdabe
--- /dev/null
+++ b/docs/api/elementindex_davical.html
@@ -0,0 +1,1430 @@
+
+
+
+
+
+
+
+
+
+
+
+[davical] element index
+ Package indexes
+
+All elements
+
+
+
+
+
+
+
+
+ __construct
+
+
+
+ The constructor
+
+
+
+ __construct
+
+
+
+ Initializes the LDAP connection
+
+
+
+
+
+
+
+ apply_filter
+
+
+
+ While we can construct our SQL to apply some filters in the query, other filters need to be checked against the retrieved record. This is for handling those ones.
+
+
+
+ AuthExternalAWL
+
+
+
+ Authenticate against a different PostgreSQL database which contains a usr table in the AWL format.
+
+
+
+ auth-functions.php
+
+
+
+
+
+
+ AllowedTo
+
+
+
+ Checks whether a user is allowed to do something.
+
+
+
+ AssignSessionDetails
+
+
+
+ Internal function used to assign the session details to a user's new session.
+
+
+
+ AuthFailedResponse
+
+
+
+ Authorisation failed, so we send some headers to say so.
+
+
+
+ add_namespace
+
+
+
+
+
+
+ add_principal_properties
+
+
+
+ Handles any properties related to the DAV::PRINCIPAL in the request
+
+
+
+ AllowedTo
+
+
+
+ Are we allowed to do the requested activity
+
+
+
+ AssignSessionDetails
+
+
+
+ Internal function used to assign the session details to a user's new session.
+
+
+
+ AllowedTo
+
+
+
+ Extend parent definition of what the current user is allowed to do
+
+
+
+
+
+
+
+ BuildSqlFilter
+
+
+
+ Build an SQL 'WHERE' clause which implements (parts of) the filter. The elements of the filter which are implemented in the SQL will be removed.
+
+
+
+ BasicAuthSession
+
+
+
+ Handle Basic HTTP Authentication (not secure unless https)
+
+
+
+ $by_email
+
+
+
+
+
+
+
+
+
+
+ check_string
+
+
+
+
+
+
+ controlRequestContainer
+
+
+
+ Work out the location we are doing the PUT to, and check that we have the rights to do the needful.
+
+
+
+ collection.php
+
+
+
+
+
+
+ caldav-LOCK.php
+
+
+
+
+
+
+ caldav-PUT-functions.php
+
+
+
+
+
+
+ caldav-REPORT-calquery.php
+
+
+
+
+
+
+ caldav-REPORT-freebusy.php
+
+
+
+
+
+
+ caldav-REPORT-multiget.php
+
+
+
+
+
+
+ caldav-REPORT-principal.php
+
+
+
+
+
+
+ check_UTF8.php
+
+
+
+
+
+
+ CreateDefaultRelationships
+
+
+
+ Create default relationships
+
+
+
+ CreateHomeCalendar
+
+
+
+ Create a default home calendar for the user.
+
+
+
+ calendar_to_xml
+
+
+
+ Return XML for a single calendar (or todo) entry from the DB
+
+
+
+ caldav.php
+
+
+
+
+
+
+ caldav-DELETE.php
+
+
+
+
+
+
+ caldav-GET.php
+
+
+
+
+
+
+ caldav-MKCALENDAR.php
+
+
+
+
+
+
+ caldav-OPTIONS.php
+
+
+
+
+
+
+ caldav-PROPPATCH.php
+
+
+
+
+
+
+ caldav-PUT.php
+
+
+
+
+
+
+ caldav-REPORT.php
+
+
+
+
+
+
+ CheckPassword
+
+
+
+ CheckPassword does all of the password checking and returns a user record object, or false if it all ends in tears.
+
+
+
+ $calendar_home_set
+
+
+
+
+
+
+ CalDAVPrincipal
+
+
+
+ Constructor
+
+
+
+ CalDAVPrincipal
+
+
+
+ A class for things to do with a DAV Principal
+
+
+
+ CalDAVPrincipal.php
+
+
+
+
+
+
+ caldav_tag
+
+
+
+
+
+
+ collection_to_xml
+
+
+
+ Returns an XML sub-tree for a single collection record from the DB
+
+
+
+ caldav-PROPFIND.php
+
+
+
+
+
+
+ $collection_id
+
+
+
+ The ID of the collection containing this path, or of this path if it is a collection
+
+
+
+ $collection_path
+
+
+
+ The path corresponding to the collection_id
+
+
+
+ CalDAVRequest
+
+
+
+ A class for collecting things to do with this request.
+
+
+
+ CalDAVRequest
+
+
+
+ Create a new CalDAVRequest object.
+
+
+
+ CalDAVRequest.php
+
+
+
+
+
+
+
+
+
+
+ davical_configuration_missing.php
+
+
+
+
+
+
+ DigestAuthSession
+
+
+
+ Handle Digest HTTP Authentication (no passwords were harmed in this transaction!)
+
+
+
+ drivers_ldap.php
+
+
+
+
+
+
+ drivers_squid_pam.php
+
+
+
+
+
+
+ $depth
+
+
+
+ The depth parameter from the request headers, coerced into a valid integer: 0, 1 or DEPTH_INFINITY which is defined above. The default is set per various RFCs.
+
+
+
+ DepthRegexTail
+
+
+
+ Returns the tail of a Regex appropriate for this Depth, when appended to
+
+
+
+ DEPTH_INFINITY
+
+
+
+
+
+
+ DoResponse
+
+
+
+ Utility function we call when we have a simple status-based response to return to the client. Possibly
+
+
+
+
+
+
+
+ freebusy.php
+
+
+
+
+
+
+ freebusy-GET.php
+
+
+
+
+
+
+ FailIfLocked
+
+
+
+ This will either (a) return false if no locks apply, or (b) return the lock_token which the request successfully included to open the lock, or: (c) respond directly to the client with the failure.
+
+
+
+
+
+
+
+ GetRoles
+
+
+
+ Internal function used to get the user's roles from the database.
+
+
+
+ getAllUsers
+
+
+
+ Retrieve all users from the LDAP directory
+
+
+
+ getStaticLdap
+
+
+
+ A generic function to create and fetch static objects
+
+
+
+ get_arbitrary_properties
+
+
+
+ Fetches any arbitrary properties that were requested by the PROPFIND into an array, which we return.
+
+
+
+ get_collection
+
+
+
+ Get XML response for a single collection. If Depth is >0 then
+
+
+
+ get_collection_contents
+
+
+
+ Get XML response for items in the collection If '/' is requested, a list of visible users is given, otherwise a list of calendars for the user which are parented by this path.
+
+
+
+ get_item
+
+
+
+ Get XML response for a single item. Depth is irrelevant for this.
+
+
+
+ GetDepthName
+
+
+
+ Returns the name for this depth: 0, 1, infinity
+
+
+
+ GetLockDetails
+
+
+
+ Returns the DB object associated with a lock token, or false.
+
+
+
+ GetLockRow
+
+
+
+ Returns the locked row, either from the cache or from the database
+
+
+
+ GetRelationships
+
+
+
+ Method used to get the user's relationships
+
+
+
+ GetRoles
+
+
+
+ Method used to get the user's roles
+
+
+
+
+
+
+
+ help.php
+
+
+
+
+
+
+ HTTPAuthSession
+
+
+
+ The constructor, which just calls the actual type configured
+
+
+
+ HTTPAuthSession
+
+
+
+ A Class for handling a session using HTTP Basic Authentication
+
+
+
+ HTTPAuthSession.php
+
+
+
+
+
+
+ HandleAction
+
+
+
+ Handle any unusual actions we might invent
+
+
+
+
+
+
+
+ index.php
+
+
+
+
+
+
+ import_collection
+
+
+
+ This function will import a whole calendar
+
+
+
+ interactive-page.php
+
+
+
+
+
+
+ InitialiseRecord
+
+
+
+ Initialise the Principal object from a $usr record from the DB.
+
+
+
+ item_to_xml
+
+
+
+ Return XML for a single data item from the DB
+
+
+
+ IsCollection
+
+
+
+ Returns true if the URL referenced by this request points at a collection.
+
+
+
+ IsInfiniteDepth
+
+
+
+ Returns true if the request asked for infinite depth
+
+
+
+ IsLocked
+
+
+
+ Checks whether the resource is locked, returning any lock token, or false
+
+
+
+ IsPrincipal
+
+
+
+ Returns true if the URL referenced by this request points at a principal.
+
+
+
+ importFromDirectory
+
+
+
+
+
+
+
+
+
+
+ ldapDrivers
+
+
+
+ Constructor.
+
+
+
+ ldapDrivers
+
+
+
+
+
+
+ LDAP_check
+
+
+
+ Check the username / password against the LDAP server
+
+
+
+ local_session_sql
+
+
+
+
+
+
+ LoginRequired
+
+
+
+ Checks that this user is logged in, and presents a login screen if they aren't.
+
+
+
+
+
+
+
+ make_help_link
+
+
+
+
+
+
+ $method
+
+
+
+ The HTTP request method: PROPFIND, LOCK, REPORT, OPTIONS, etc...
+
+
+
+
+
+
+
+ namespace_array
+
+
+
+
+
+
+ ns_tag
+
+
+
+
+
+
+
+
+
+
+ other_translated_strings.php
+
+
+
+
+
+
+ $options
+
+
+
+
+
+
+
+
+
+
+ page-footer.php
+
+
+
+
+
+
+ page-header.php
+
+
+
+
+
+
+ principal_to_xml
+
+
+
+ Return XML for a single Principal (user) from the DB TODO: Refactor this functionality into the CalDAVPrincipal object
+
+
+
+ public_events_only
+
+
+
+ Check if this collection should force all events to be PUBLIC.
+
+
+
+ putCalendarResource
+
+
+
+ Put the resource from this request
+
+
+
+ public.php
+
+
+
+
+
+
+ ParseDigestHeader
+
+
+
+ Parse the HTTP Digest Auth Header
+
+
+
+ privileges
+
+
+
+ Returns the array of privilege names converted into XMLElements
+
+
+
+ $principal
+
+
+
+ The 'principal' (user/resource/...) which this request seeks to access
+
+
+
+
+
+
+
+ relationship_types.php
+
+
+
+
+
+
+ roles.php
+
+
+
+
+
+
+ rollback_on_error
+
+
+
+ This function launches an error
+
+
+
+ requestUser
+
+
+
+ Returns the result of the LDAP query
+
+
+
+ $raw_post
+
+
+
+ The raw data sent along with the request
+
+
+
+ RSCDSSession.php
+
+
+
+
+
+
+ render
+
+
+
+
+
+
+ renderImportFromDirectory
+
+
+
+
+
+
+ renderSyncLDAP
+
+
+
+
+
+
+ RSCDSSession
+
+
+
+ A class for creating and holding session information.
+
+
+
+ RSCDSSession
+
+
+
+ Create a new RSCDSSession object.
+
+
+
+ RSCDSUser.php
+
+
+
+
+
+
+ Render
+
+
+
+ Render the form / viewer as HTML to show the user
+
+
+
+ RenderCollections
+
+
+
+ Render the user's collections
+
+
+
+ RenderImportIcs
+
+
+
+ Render input file to import ics in calendar user
+
+
+
+ RenderRelationshipsFrom
+
+
+
+ Render the user's relationships to other users & resources
+
+
+
+ RenderRelationshipsTo
+
+
+
+ Render the user's relationships to other users & resources
+
+
+
+ RSCDSUser
+
+
+
+ Constructor - nothing fancy as yet.
+
+
+
+ RSCDSUser
+
+
+
+ A class for viewing and maintaining DAViCal User records
+
+
+
+
+
+
+
+ send_page_header
+
+
+
+
+
+
+ SqlFilterFragment
+
+
+
+ Process a filter fragment returning an SQL fragment
+
+
+
+ squidPamDrivers
+
+
+
+ Constructor.
+
+
+
+ squidPamDrivers
+
+
+
+
+
+
+ SQUID_PAM_check
+
+
+
+ Check the username / password against the PAM system
+
+
+
+ sync_LDAP
+
+
+
+ sync LDAP against the DB
+
+
+
+ sync_user_from_LDAP
+
+
+
+ Synchronise a cached user with one from LDAP
+
+
+
+ $schedule_inbox_url
+
+
+
+
+
+
+ $schedule_outbox_url
+
+
+
+
+
+
+ setPermissions
+
+
+
+ Permissions are controlled as follows:
+
+
+
+ SupportedPrivileges
+
+
+
+ Return an array of what the DAV privileges are that are supported
+
+
+
+ $session
+ The session object is global.
+
+
+
+
+
+
+
+
+
+
+ test-RRULE.php
+
+
+
+
+
+
+ translate_relationship_list
+
+
+
+ Translate relationship names in the relationship_list for each user. See the documentation for classBrowser::BrowserColumn for the definition of the hook function parameters.
+
+
+
+ tools.php
+
+
+
+
+
+
+ Tools
+
+
+
+
+
+
+
+
+
+
+ usr.php
+
+
+
+
+
+
+ unicodeToUtf8
+
+
+
+ Takes an array of ints representing the Unicode characters and returns a UTF-8 string. Astral planes are supported ie. the ints in the input can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates are not allowed.
+
+
+
+ utf8ToUnicode
+
+
+
+ Takes an UTF-8 string and returns an array of ints representing the Unicode characters. Astral planes are supported ie. the ints in the output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates are not allowed.
+
+
+
+ users.php
+
+
+
+
+
+
+ UpdateUserFromExternal
+
+
+
+ Update the local cache of the remote user details
+
+
+
+ $url
+
+
+
+
+
+
+ UsernameFromPath
+
+
+
+ Work out the username, based on elements of the path.
+
+
+
+ $user_agent
+
+
+
+ The user agent making the request.
+
+
+
+ UnsupportedRequest
+
+
+
+ Sometimes it's a perfectly formed request, but we just don't do that :-(
+
+
+
+ UserFromPath
+
+
+
+ Work out the user whose calendar we are accessing, based on elements of the path.
+
+
+
+
+
+
+
+ ValidateLockToken
+
+
+
+ Checks to see whether the lock token given matches one of the ones handed in with the request.
+
+
+
+ Validate
+
+
+
+ Validate the information the user submitted
+
+
+
+
+
+
+
+ Write
+
+
+
+ Write the record to the file
+
+
+
+
+
+
+
+ XMLResponse
+
+
+
+ Send an XML Response. This function will never return.
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/api/errors.html b/docs/api/errors.html
new file mode 100644
index 00000000..faf5e629
--- /dev/null
+++ b/docs/api/errors.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+ phpDocumentor Parser Errors and Warnings
+
+
+
+
+
Post-parsing
+auth-functions.php
+caldav-LOCK.php
+caldav-MKCALENDAR.php
+caldav-PROPFIND.php
+caldav-PUT-functions.php
+caldav-PUT.php
+caldav-REPORT-calquery.php
+caldav-REPORT-freebusy.php
+caldav-REPORT-multiget.php
+caldav-REPORT-principal.php
+caldav-REPORT.php
+caldav.php
+CalDAVRequest.php
+check_UTF8.php
+collection.php
+davical_configuration_missing.php
+drivers_ldap.php
+drivers_squid_pam.php
+freebusy-GET.php
+freebusy.php
+help.php
+index.php
+interactive-page.php
+other_translated_strings.php
+page-footer.php
+page-header.php
+public.php
+relationship_types.php
+roles.php
+RSCDSUser.php
+test-RRULE.php
+tools.php
+users.php
+usr.php
+
+Post-parsing
+Warnings:
+Warning - Class RSCDSUser parent User not found
+Warning - Class RSCDSSession parent Session not found
+
+always.php
+Warnings:
+Warning on line 42 - Page-level DocBlock precedes "require_once "AWLUtilities.php"", use another DocBlock to document the source element
+Errors:
+Error on line 42 - require_once include's DocBlock has @package tag, illegal. ignoring tag "@package rscds"
+
+auth-functions.php
+Warnings:
+Warning on line 27 - Page-level DocBlock precedes "require_once "AWLUtilities.php"", use another DocBlock to document the source element
+
+caldav-LOCK.php
+Warnings:
+Warning on line 138 - File "/home/andrew/projects/davical/inc/caldav-LOCK.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+caldav-MKCALENDAR.php
+Warnings:
+Warning on line 10 - package davical is already in category Technical, will now replace with category Documentation
+
+caldav-PROPFIND.php
+Warnings:
+Warning on line 16 - Page-level DocBlock precedes "require_once "XMLElement.php"", use another DocBlock to document the source element
+
+caldav-PUT-functions.php
+Warnings:
+Warning on line 415 - File "/home/andrew/projects/davical/inc/caldav-PUT-functions.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+caldav-PUT.php
+Warnings:
+Warning on line 24 - Page-level DocBlock precedes "include_once 'caldav-PUT-functions.php'", use another DocBlock to document the source element
+Errors:
+Error on line 24 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+Error on line 24 - "include" include_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
+
+caldav-REPORT-calquery.php
+Warnings:
+Warning on line 32 - no @package tag was used in a DocBlock for file /home/andrew/projects/davical/inc/caldav-REPORT-calquery.php
+
+caldav-REPORT-freebusy.php
+Warnings:
+Warning on line 101 - File "/home/andrew/projects/davical/inc/caldav-REPORT-freebusy.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+caldav-REPORT-multiget.php
+Warnings:
+Warning on line 11 - no @package tag was used in a DocBlock for file /home/andrew/projects/davical/inc/caldav-REPORT-multiget.php
+Warning on line 11 - package davical is already in category Technical, will now replace with category Documentation
+
+caldav-REPORT-principal.php
+Warnings:
+Warning on line 135 - File "/home/andrew/projects/davical/inc/caldav-REPORT-principal.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+caldav-REPORT.php
+Warnings:
+Warning on line 34 - Page-level DocBlock precedes "require_once "iCalendar.php"", use another DocBlock to document the source element
+Errors:
+Error on line 34 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+Error on line 34 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
+
+caldav.php
+Warnings:
+Warning on line 10 - Page-level DocBlock precedes "require_once "../inc/always.php"", use another DocBlock to document the source element
+Errors:
+Error on line 10 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
+Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+
+CalDAVRequest.php
+Warnings:
+Warning on line 16 - Page-level DocBlock precedes "require_once "XMLElement.php"", use another DocBlock to document the source element
+Errors:
+Error on line 16 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+Error on line 16 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage Request"
+
+check_UTF8.php
+Warnings:
+Warning on line 227 - File "/home/andrew/projects/davical/inc/check_UTF8.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+collection.php
+Warnings:
+Warning on line 52 - File "/home/andrew/projects/davical/htdocs/collection.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+davical_configuration_missing.php
+Warnings:
+Warning on line 30 - File "/home/andrew/projects/davical/inc/davical_configuration_missing.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+drivers_ldap.php
+Warnings:
+Warning on line 12 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
+Warning on line 15 - no @package tag was used in a DocBlock for class ldapDrivers
+
+drivers_squid_pam.php
+Warnings:
+Warning on line 12 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
+Warning on line 15 - no @package tag was used in a DocBlock for class squidPamDrivers
+Errors:
+Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"
+
+freebusy-GET.php
+Warnings:
+Warning on line 111 - File "/home/andrew/projects/davical/inc/freebusy-GET.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+freebusy.php
+Warnings:
+Warning on line 32 - File "/home/andrew/projects/davical/htdocs/freebusy.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+help.php
+Warnings:
+Warning on line 19 - File "/home/andrew/projects/davical/htdocs/help.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+index.php
+Warnings:
+Warning on line 68 - File "/home/andrew/projects/davical/htdocs/index.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+interactive-page.php
+Warnings:
+Warning on line 19 - File "/home/andrew/projects/davical/inc/interactive-page.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+other_translated_strings.php
+Warnings:
+Warning on line 44 - File "/home/andrew/projects/davical/inc/other_translated_strings.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+page-footer.php
+Warnings:
+Warning on line 1 - File "/home/andrew/projects/davical/inc/page-footer.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+page-header.php
+Warnings:
+Warning on line 96 - File "/home/andrew/projects/davical/inc/page-header.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+public.php
+Warnings:
+Warning on line 10 - Page-level DocBlock precedes "require_once "../inc/always.php"", use another DocBlock to document the source element
+Errors:
+Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+Error on line 10 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
+
+relationship_types.php
+Warnings:
+Warning on line 108 - File "/home/andrew/projects/davical/htdocs/relationship_types.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+roles.php
+Warnings:
+Warning on line 39 - File "/home/andrew/projects/davical/htdocs/roles.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+RSCDSUser.php
+Warnings:
+Warning on line 11 - Page-level DocBlock precedes "require_once "User.php"", use another DocBlock to document the source element
+
+test-RRULE.php
+Warnings:
+Warning on line 39 - File "/home/andrew/projects/davical/inc/test-RRULE.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+tools.php
+Warnings:
+Warning on line 11 - Page-level DocBlock precedes "require_once "../inc/always.php"", use another DocBlock to document the source element
+Warning on line 35 - no @package tag was used in a DocBlock for class Tools
+Errors:
+Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage RSCDSSession"
+
+users.php
+Warnings:
+Warning on line 10 - Page-level DocBlock precedes "require_once "../inc/always.php"", use another DocBlock to document the source element
+Errors:
+Error on line 10 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage Admin"
+Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
+
+usr.php
+Warnings:
+Warning on line 94 - File "/home/andrew/projects/davical/htdocs/usr.php" has no page-level DocBlock, use @package in the first DocBlock to create one
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file
diff --git a/docs/api/index.html b/docs/api/index.html
new file mode 100644
index 00000000..f5ad3f40
--- /dev/null
+++ b/docs/api/index.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+ DAViCal
+
+
+
+
+
+
+
+
+
+
+ Frame Alert
+ This document is designed to be viewed using the frames feature.
+ If you see this message, you are using a non-frame-capable web client.
+
+
+
\ No newline at end of file
diff --git a/docs/api/li_awl.html b/docs/api/li_awl.html
new file mode 100644
index 00000000..e55ca7ef
--- /dev/null
+++ b/docs/api/li_awl.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
awl
+
+phpDocumentor v 1.3.2
+
+
\ No newline at end of file
diff --git a/docs/api/li_davical.html b/docs/api/li_davical.html
new file mode 100644
index 00000000..96e25740
--- /dev/null
+++ b/docs/api/li_davical.html
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
davical
+
+phpDocumentor v 1.3.2
+
+
\ No newline at end of file
diff --git a/docs/api/media/banner.css b/docs/api/media/banner.css
new file mode 100644
index 00000000..35ff3cc3
--- /dev/null
+++ b/docs/api/media/banner.css
@@ -0,0 +1,33 @@
+body
+{
+ background-color: #EEEEEE;
+ margin: 0px;
+ padding: 0px;
+}
+
+/* Banner (top bar) classes */
+
+.banner { }
+
+.banner-menu
+{
+ text-align: right;
+ clear: both;
+ padding: .5em;
+ border-top: 2px solid #AAAAAA;
+}
+
+.banner-title
+{
+ text-align: right;
+ font-size: 20pt;
+ font-weight: bold;
+ margin: .2em;
+}
+
+.package-selector
+{
+ background-color: #DDDDDD;
+ border: 1px solid #AAAAAA;
+ color: #000090;
+}
diff --git a/docs/api/media/images/AbstractClass.png b/docs/api/media/images/AbstractClass.png
new file mode 100644
index 00000000..afa9d1d9
Binary files /dev/null and b/docs/api/media/images/AbstractClass.png differ
diff --git a/docs/api/media/images/AbstractClass_logo.png b/docs/api/media/images/AbstractClass_logo.png
new file mode 100644
index 00000000..8f65c390
Binary files /dev/null and b/docs/api/media/images/AbstractClass_logo.png differ
diff --git a/docs/api/media/images/AbstractMethod.png b/docs/api/media/images/AbstractMethod.png
new file mode 100644
index 00000000..605ccbe5
Binary files /dev/null and b/docs/api/media/images/AbstractMethod.png differ
diff --git a/docs/api/media/images/AbstractPrivateClass.png b/docs/api/media/images/AbstractPrivateClass.png
new file mode 100644
index 00000000..53d76c63
Binary files /dev/null and b/docs/api/media/images/AbstractPrivateClass.png differ
diff --git a/docs/api/media/images/AbstractPrivateClass_logo.png b/docs/api/media/images/AbstractPrivateClass_logo.png
new file mode 100644
index 00000000..4e68f570
Binary files /dev/null and b/docs/api/media/images/AbstractPrivateClass_logo.png differ
diff --git a/docs/api/media/images/AbstractPrivateMethod.png b/docs/api/media/images/AbstractPrivateMethod.png
new file mode 100644
index 00000000..41cc9f02
Binary files /dev/null and b/docs/api/media/images/AbstractPrivateMethod.png differ
diff --git a/docs/api/media/images/Class.png b/docs/api/media/images/Class.png
new file mode 100644
index 00000000..cf548d27
Binary files /dev/null and b/docs/api/media/images/Class.png differ
diff --git a/docs/api/media/images/Class_logo.png b/docs/api/media/images/Class_logo.png
new file mode 100644
index 00000000..6f223c47
Binary files /dev/null and b/docs/api/media/images/Class_logo.png differ
diff --git a/docs/api/media/images/Constant.png b/docs/api/media/images/Constant.png
new file mode 100644
index 00000000..a9c6f28b
Binary files /dev/null and b/docs/api/media/images/Constant.png differ
diff --git a/docs/api/media/images/Constructor.png b/docs/api/media/images/Constructor.png
new file mode 100644
index 00000000..3f16222b
Binary files /dev/null and b/docs/api/media/images/Constructor.png differ
diff --git a/docs/api/media/images/Destructor.png b/docs/api/media/images/Destructor.png
new file mode 100644
index 00000000..f28528f0
Binary files /dev/null and b/docs/api/media/images/Destructor.png differ
diff --git a/docs/api/media/images/Function.png b/docs/api/media/images/Function.png
new file mode 100644
index 00000000..902fe258
Binary files /dev/null and b/docs/api/media/images/Function.png differ
diff --git a/docs/api/media/images/Global.png b/docs/api/media/images/Global.png
new file mode 100644
index 00000000..7281bd2a
Binary files /dev/null and b/docs/api/media/images/Global.png differ
diff --git a/docs/api/media/images/I.png b/docs/api/media/images/I.png
new file mode 100644
index 00000000..e8512fb9
Binary files /dev/null and b/docs/api/media/images/I.png differ
diff --git a/docs/api/media/images/Index.png b/docs/api/media/images/Index.png
new file mode 100644
index 00000000..6558ec39
Binary files /dev/null and b/docs/api/media/images/Index.png differ
diff --git a/docs/api/media/images/Interface.png b/docs/api/media/images/Interface.png
new file mode 100644
index 00000000..e6cd51ed
Binary files /dev/null and b/docs/api/media/images/Interface.png differ
diff --git a/docs/api/media/images/Interface_logo.png b/docs/api/media/images/Interface_logo.png
new file mode 100644
index 00000000..6f223c47
Binary files /dev/null and b/docs/api/media/images/Interface_logo.png differ
diff --git a/docs/api/media/images/L.png b/docs/api/media/images/L.png
new file mode 100644
index 00000000..eb334eda
Binary files /dev/null and b/docs/api/media/images/L.png differ
diff --git a/docs/api/media/images/Lminus.png b/docs/api/media/images/Lminus.png
new file mode 100644
index 00000000..f7c43c0a
Binary files /dev/null and b/docs/api/media/images/Lminus.png differ
diff --git a/docs/api/media/images/Lplus.png b/docs/api/media/images/Lplus.png
new file mode 100644
index 00000000..848ec2fc
Binary files /dev/null and b/docs/api/media/images/Lplus.png differ
diff --git a/docs/api/media/images/Method.png b/docs/api/media/images/Method.png
new file mode 100644
index 00000000..9b215784
Binary files /dev/null and b/docs/api/media/images/Method.png differ
diff --git a/docs/api/media/images/Page.png b/docs/api/media/images/Page.png
new file mode 100644
index 00000000..ffe7986e
Binary files /dev/null and b/docs/api/media/images/Page.png differ
diff --git a/docs/api/media/images/Page_logo.png b/docs/api/media/images/Page_logo.png
new file mode 100644
index 00000000..44ce0b3c
Binary files /dev/null and b/docs/api/media/images/Page_logo.png differ
diff --git a/docs/api/media/images/PrivateClass.png b/docs/api/media/images/PrivateClass.png
new file mode 100644
index 00000000..470e6d56
Binary files /dev/null and b/docs/api/media/images/PrivateClass.png differ
diff --git a/docs/api/media/images/PrivateClass_logo.png b/docs/api/media/images/PrivateClass_logo.png
new file mode 100644
index 00000000..590e0064
Binary files /dev/null and b/docs/api/media/images/PrivateClass_logo.png differ
diff --git a/docs/api/media/images/PrivateMethod.png b/docs/api/media/images/PrivateMethod.png
new file mode 100644
index 00000000..d01f2b31
Binary files /dev/null and b/docs/api/media/images/PrivateMethod.png differ
diff --git a/docs/api/media/images/PrivateVariable.png b/docs/api/media/images/PrivateVariable.png
new file mode 100644
index 00000000..d76b21d4
Binary files /dev/null and b/docs/api/media/images/PrivateVariable.png differ
diff --git a/docs/api/media/images/StaticMethod.png b/docs/api/media/images/StaticMethod.png
new file mode 100644
index 00000000..9b215784
Binary files /dev/null and b/docs/api/media/images/StaticMethod.png differ
diff --git a/docs/api/media/images/StaticVariable.png b/docs/api/media/images/StaticVariable.png
new file mode 100644
index 00000000..8e820193
Binary files /dev/null and b/docs/api/media/images/StaticVariable.png differ
diff --git a/docs/api/media/images/T.png b/docs/api/media/images/T.png
new file mode 100644
index 00000000..30173254
Binary files /dev/null and b/docs/api/media/images/T.png differ
diff --git a/docs/api/media/images/Tminus.png b/docs/api/media/images/Tminus.png
new file mode 100644
index 00000000..2260e424
Binary files /dev/null and b/docs/api/media/images/Tminus.png differ
diff --git a/docs/api/media/images/Tplus.png b/docs/api/media/images/Tplus.png
new file mode 100644
index 00000000..2c8d8f4f
Binary files /dev/null and b/docs/api/media/images/Tplus.png differ
diff --git a/docs/api/media/images/Variable.png b/docs/api/media/images/Variable.png
new file mode 100644
index 00000000..8e820193
Binary files /dev/null and b/docs/api/media/images/Variable.png differ
diff --git a/docs/api/media/images/blank.png b/docs/api/media/images/blank.png
new file mode 100644
index 00000000..cee9cd37
Binary files /dev/null and b/docs/api/media/images/blank.png differ
diff --git a/docs/api/media/images/class_folder.png b/docs/api/media/images/class_folder.png
new file mode 100644
index 00000000..84e9587a
Binary files /dev/null and b/docs/api/media/images/class_folder.png differ
diff --git a/docs/api/media/images/empty.png b/docs/api/media/images/empty.png
new file mode 100644
index 00000000..d5683865
Binary files /dev/null and b/docs/api/media/images/empty.png differ
diff --git a/docs/api/media/images/file.png b/docs/api/media/images/file.png
new file mode 100644
index 00000000..0bb2427f
Binary files /dev/null and b/docs/api/media/images/file.png differ
diff --git a/docs/api/media/images/folder.png b/docs/api/media/images/folder.png
new file mode 100644
index 00000000..a2d79f8d
Binary files /dev/null and b/docs/api/media/images/folder.png differ
diff --git a/docs/api/media/images/function_folder.png b/docs/api/media/images/function_folder.png
new file mode 100644
index 00000000..8b3d6e3b
Binary files /dev/null and b/docs/api/media/images/function_folder.png differ
diff --git a/docs/api/media/images/next_button.png b/docs/api/media/images/next_button.png
new file mode 100644
index 00000000..cdbc615d
Binary files /dev/null and b/docs/api/media/images/next_button.png differ
diff --git a/docs/api/media/images/next_button_disabled.png b/docs/api/media/images/next_button_disabled.png
new file mode 100644
index 00000000..4a11780f
Binary files /dev/null and b/docs/api/media/images/next_button_disabled.png differ
diff --git a/docs/api/media/images/package.png b/docs/api/media/images/package.png
new file mode 100644
index 00000000..b04cf566
Binary files /dev/null and b/docs/api/media/images/package.png differ
diff --git a/docs/api/media/images/package_folder.png b/docs/api/media/images/package_folder.png
new file mode 100644
index 00000000..6162bafd
Binary files /dev/null and b/docs/api/media/images/package_folder.png differ
diff --git a/docs/api/media/images/previous_button.png b/docs/api/media/images/previous_button.png
new file mode 100644
index 00000000..327fdbc2
Binary files /dev/null and b/docs/api/media/images/previous_button.png differ
diff --git a/docs/api/media/images/previous_button_disabled.png b/docs/api/media/images/previous_button_disabled.png
new file mode 100644
index 00000000..c02ff64b
Binary files /dev/null and b/docs/api/media/images/previous_button_disabled.png differ
diff --git a/docs/api/media/images/private_class_logo.png b/docs/api/media/images/private_class_logo.png
new file mode 100644
index 00000000..590e0064
Binary files /dev/null and b/docs/api/media/images/private_class_logo.png differ
diff --git a/docs/api/media/images/tutorial.png b/docs/api/media/images/tutorial.png
new file mode 100644
index 00000000..bc197375
Binary files /dev/null and b/docs/api/media/images/tutorial.png differ
diff --git a/docs/api/media/images/tutorial_folder.png b/docs/api/media/images/tutorial_folder.png
new file mode 100644
index 00000000..2a468b2a
Binary files /dev/null and b/docs/api/media/images/tutorial_folder.png differ
diff --git a/docs/api/media/images/up_button.png b/docs/api/media/images/up_button.png
new file mode 100644
index 00000000..ff36c593
Binary files /dev/null and b/docs/api/media/images/up_button.png differ
diff --git a/docs/api/media/stylesheet.css b/docs/api/media/stylesheet.css
new file mode 100644
index 00000000..9f8d0c46
--- /dev/null
+++ b/docs/api/media/stylesheet.css
@@ -0,0 +1,146 @@
+a { color: #000090; text-decoration: none; }
+a:hover, a:active, a:focus { color: highlighttext; background-color: highlight; text-decoration: none; }
+
+body { background: #FFFFFF; }
+body, table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
+
+a img { border: 0px; }
+
+/* Page layout/boxes */
+
+.info-box { }
+.info-box-title { margin: 1em 0em 0em 0em; font-weight: normal; font-size: 14pt; color: #999999; border-bottom: 2px solid #999999; }
+.info-box-body { border: 1px solid #999999; padding: .5em; }
+.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
+
+.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
+.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
+
+.page-body { max-width: 800px; margin: auto; }
+.tree { white-space: nowrap; font: icon }
+.tree dd { margin-left: 19px }
+.tree dl { margin: 0px }
+.tree-icon { vertical-align: middle; border: 0px; margin-right: 3px }
+
+/* Index formatting classes */
+
+.index-item-body { margin-top: .5em; margin-bottom: .5em}
+.index-item-description { margin-top: .25em }
+.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
+.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
+.index-letter-title { font-size: 12pt; font-weight: bold }
+.index-letter-menu { text-align: center; margin: 1em }
+.index-letter { font-size: 12pt }
+
+/* Docbook classes */
+
+.description {}
+.short-description { font-weight: bold; color: #666666; }
+.tags { padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
+.parameters { padding-left: 0em; margin-left: 3em; color: #014fbe; list-style-type: square; }
+.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
+.package { font-weight: bold; }
+.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
+.package-details { font-size: 85%; }
+.sub-package { font-weight: bold; }
+.tutorial { border-width: thin; border-color: #0066ff; }
+.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
+.folder-title { font-style: italic; font-family: Verdana, Arial, Helvetica, sans-serif }
+
+/* Generic formatting */
+
+.field { font-weight: bold; }
+.detail { font-size: 8pt; }
+.notes { font-style: italic; font-size: 8pt; }
+.separator { background-color: #999999; height: 2px; }
+.warning { color: #FF6600; }
+.disabled { font-style: italic; color: #999999; }
+
+/* Code elements */
+
+.line-number { }
+
+.class-table { width: 100%; }
+.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
+.class-name { color: #0000AA; font-weight: bold; }
+
+.method-summary { color: #009000; padding-left: 1em; font-size: 8pt; }
+.method-header { }
+.method-definition { margin-bottom: .2em }
+.method-title { color: #009000; font-weight: bold; }
+.method-name { font-weight: bold; }
+.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
+.method-result { font-style: italic; }
+
+.var-summary { padding-left: 1em; font-size: 8pt; }
+.var-header { }
+.var-title { color: #014fbe; margin-bottom: .3em }
+.var-type { font-style: italic; }
+.var-name { font-weight: bold; }
+.var-default {}
+.var-description { font-weight: normal; color: #000000; }
+
+.include-title { color: #014fbe;}
+.include-type { font-style: italic; }
+.include-name { font-weight: bold; }
+
+.const-title { color: #FF6600; }
+.const-name { font-weight: bold; }
+
+/* Syntax highlighting */
+
+.src-code { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
+.src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
+
+.src-code a:link { padding: 1px; text-decoration: underline; color: #0000DD; }
+.src-code a:visited { text-decoration: underline; color: #0000DD; }
+.src-code a:active { background-color: #FFFF66; color: #008000; }
+.src-code a:hover { background-color: #FFFF66; text-decoration: overline underline; color: #008000; }
+
+.src-comm { color: #666666; }
+.src-id { color: #FF6600; font-style: italic; }
+.src-inc { color: #0000AA; font-weight: bold; }
+.src-key { color: #0000AA; font-weight: bold; }
+.src-num { color: #CC0000; }
+.src-str { color: #CC0000; }
+.src-sym { }
+.src-var { }
+
+.src-php { font-weight: bold; }
+
+.src-doc { color: #666666; }
+.src-doc-close-template { color: #666666 }
+.src-doc-coretag { color: #008000; }
+.src-doc-inlinetag {}
+.src-doc-internal {}
+.src-doc-tag { color: #0080CC; }
+.src-doc-template { color: #666666 }
+.src-doc-type { font-style: italic; color: #444444 }
+.src-doc-var { color: #444444 }
+
+.tute-tag { color: #009999 }
+.tute-attribute-name { color: #0000FF }
+.tute-attribute-value { color: #0099FF }
+.tute-entity { font-weight: bold; }
+.tute-comment { font-style: italic }
+.tute-inline-tag { color: #636311; font-weight: bold }
+
+/* tutorial */
+
+.authors { }
+.author { font-style: italic; font-weight: bold }
+.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
+.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
+*[class="example"] { line-height : 0.5em; }
+.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
+*[class="listing"] { line-height : 0.5em; }
+.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
+.ref-title-box { }
+.ref-title { }
+.ref-purpose { font-style: italic; color: #666666 }
+.ref-synopsis { }
+.title { font-weight: bold; border-bottom: 1px solid #999999; color: #999999; }
+.cmd-synopsis { margin: 1em 0em }
+.cmd-title { font-weight: bold }
+.toc { margin-left: 2em; padding-left: 0em }
+
diff --git a/docs/api/packages.html b/docs/api/packages.html
new file mode 100644
index 00000000..5574291f
--- /dev/null
+++ b/docs/api/packages.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/api/todolist.html b/docs/api/todolist.html
new file mode 100644
index 00000000..0ac099bc
--- /dev/null
+++ b/docs/api/todolist.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Todo List
+
+
+
+
+
Todo List
+davical
+
+
+ Make this a defined constant
+
+
+ Documentation generated on Thu, 18 Sep 2008 00:10:47 +1200 by phpDocumentor 1.3.2
+
+
+
\ No newline at end of file