PHP
OpenGroupware
Groupware
Interface

"pogi" is an set of PHP classes that encapsulare the OpenGroupware XML-RPC 
API, providing access to the OpenGroupware server.

All the files in PGP, except OGoXMLRPC.inc, is GPL'd.  OGoXmlRPC.inc merely 
a 'tweaked' version of Useful Inc's "xmlrpc.inc"; so it is licensed the as 
Useful XML-RPC for PHP package is licensed.

The goals of POGI are -
1. Make as object orientned structure as PHP's limited OO support permits.
2. Be 'light', avoid copying, copying, copying of values, which is really 
easy in PHP.
3. To have a README file worth reading.

Code Guidelines
--------------------
1.) Indenting of code levels is two spaces; no tabs, ever.
2.) Variable, class and function names are camel, with no underscores.
3.) Class names have initial uppercase character, function and variable names 
have a lower case initial character.
4.) Quoting should be performed with single quotes, not double quotes.
5.) POGI class names should always be prefixed with OGo

Objects
----------
From OGo.inc:
OGoBase - All POGI classes descend from this.  It's purpose is to provide 
utility functions and take care of providing a proper timezone adjustment.
Remember, XML-RPC is stupid, and doesn't do timezones in any capacity.

OGoServer - Used to connect to a server, set authentication, and handle 
most of the XML-RPC grunt work.  OGoServer emits OGoManager objects.

OGoManager - Parent of all specific OGoManager objects (OGoTaskManager, 
etc...). Manager objects emit document objects.

OGoDocument - Parent of all specific OGoDocument objects (OGoTask, etc...)  
Provides storage, reports if the document supports extended attribute,
as well as some functions common to all documents such as getId().

OGoOwnedDocument - Parent of specific OGoDocument derivatives that contain
owner attribution, to avoid duplicating these functions.

From OGoContact.inc:
OGoContact - Parent of OGoPerson and OGoEnterprise objects.  Since these 
objects have alot in common such as supporting extended attributes, and
having phone number and address components.

From OGoTask.inc:
OGoTask -
OGoTaskManager -
OGoTaskHistory -

From OGoDocumentComponent.inc:
OGoDocumentComponent -

From OGoAddress:
OGoAddress -

From OGoPhoneNumber:
OGoPhoneNumber -


Demo Files
--------------
1. You'll need to edit the username/password credentials, the hostname, etc...
in order for these demos to work.
2. Several demo's contain object ids (contact ids, task ids, etc...) that 
obviously will not work if you don't have a document of the appropriate type
So you'll need to edit those as well.

DemoRawClient
- Doesn't use a document or document manager but only OGoServer to process the 
XML directly, to show this can be done although we think it is a bad idea and 
alot more work.

DemoDelegatedTasks
- lists the login users delegated tasks
DemoTaskHistory
- displays a specific task and all annotations

