These files have been moved

This commit is contained in:
jengo 2000-12-23 03:32:54 +00:00
parent fea25e29a7
commit 902d17686f
99 changed files with 0 additions and 19467 deletions

View File

@ -1,450 +0,0 @@
[0.9.8] - Merged in patch for UW-Maildir IMAP server support
Thanks milosch
- Fixed setup not detecting installed databases with PHP 3
- Fixed repeating entries being saved properly.
- Added ability for admin to edit any calendar event.
- Fixed entries showing improperly on wrong date.
- Fixed file uploads through filemanager.
- Fixed repeating entries Month select box.
- Fixed calendar week selector starting on Monday on footer.
- Fixed buggy calendar saving when no groups are selected with group access.
- Fixed submitting of calendar entry when javascript turned off.
- Fixed calendar preferences not updating properly
- Fixed denylogin form not display and converted it to a template.
- Added select box option for multiable domains in login.php
- Fixed proxy server support for headlines and check for new version on main screen.
- Fixed headlines preferences and converted headline preferences to a template
- Fixed pgsql upgrade from beta path.
- Fixed chronological ordering of calendar events.
- Changed javascript validation to server side upon submitting calendar events.
- Merged patch for parsing of non-compliant rfc822 email addresses.
Thanks bwulf
- Fixed the addressbook not opening when composing email.
- Applied patch to fix md5 en/decryption.
Thanks milosch
- Fixed login message not showing up.
- Added in feature for frames. This can be a user preference, or a global option
for the admin to disable, allow, or force.
- Added in a few preformace tweaks that will use serialize() and unserialize() for
dropping the phpgw_info array into the session table durring login.
- Changed a few of the icons to our news ones.
- Fixed 12 am/pm problem in calendar.
- Added default filter to calendar preferences.
- Merged in patch for track_vars in calendar for PHP 3
Thanks bwulf
- Merged in patch for Danish translation
Thanks again zaphod
- Fixed birthday reminders not showing up
- Fixed changing of users password through admin.
[0.9.7] - Fixed SQL error in tts
- Fixed table locking in admin -> edit account
- Added capability to schedule others and not yourself to calendar.
- Fixed d/l'ing of files through filemanager.
- Enhanced Free/Busy calendar view.
- Fix for repeating events not showing in calendar.
- Fix for Day View warning in calendar.
- Fix for TTS with Update by non-email user.
- Fixed admin/accesslog.php wasn't using phpgw_access_log
- Fix for Week View warning in calendar.
- Fix for Matrix View not working with Netscape 6.
- Added text only feature for navbar
- Converted navbar to work off templates
- Merged in patch for filemanager to fix upload in SAFE_MODE
Thanks s837008
- Cleaned up mainscreen message section, you can also have a login screen message now.
- Merged in update for french
- Merged in update for Spanish
Thanks gmartine
- Merged in patch for calendar for year view
Thanks bwulf
- session class will now use the HTTP_X_FORWARDED_FOR if a user is behind a proxy server.
- Merged in patch to fix the addressbook not displaying all of the fields.
Thanks ydario
- New Calendar table structures and code.
- Applied patch to fix set_time_limit() warnings in safe_mode
Thanks count
- Fixed warning messages in EMail with/without CC header info.
- Fixed errors for TTS mailings.
(This was actually a problem with email, users not having a
Sent folder. Sent Folders automatically created if not exist.)
- Fixed matrixview warnings when viewing manual.
- Fixed problem with moving to prev/next msg in NNTP.
- Fix possible problem connecting to LDAP server.
- Fix home page display of calendar events.
- Added ability to set users defaut calendar view of top icon.
- Changed calednar duration to a true date/time.
- Added ability to filter calendar events based on access.
- Merged in patch adding free() to the pgsql db.
Thanks count
[0.9.6] - Fix user permissions where not being checked properly.
[0.9.5] - Fixed NNTP preferences.
- Fixed NNTP read_message - missed converting call for VFS.
- Fixed calendar view of events - change of convert_string_to_names_access().
- Fixed deletion of user accounts hanging on deleting of calendar events.
- Fix for email in BIG5 charset.
- Fix for adding new users.
- Fixed a bug that was casuing people to have problems logining in when using cookie support.
- Fixed calendar display of 12 hour formats.
- Fixed a few problems with admin -> editaccount not changing the directory name properly.
- Fixed the languages table was using the lang name in upper case while everything else
was using lowercase.
- Added admin section to be able to add legal notices or other messages on the main screen.
Thanks snerd for this idea.
- Added matrix view of individuals and calendar events.
- Fixed parent_page link on footer line.
[0.9.4] - Fixed calendar week view.
- Displays calendar items in day view without start times.
- You now have to specify which API classes need to be loaded.
- Preformance is much better.
- Fixed a calendar SQL error with stock setups using the demo user.
- Fixed a problem with the email folders only reporting back the number of messages
in the INBOX regardless of which folder it is in.
- Added calendar day view to home page.
- Fixed problem with deletion of accounts.
- Fixed a few problems with error reporting in the accounts section.
Thanks mdean <mdean@kcnet.com>
- Renamed the webcal_entry.cal_create_by field to webcal_entry.cal_owner.
- Split out auth class, so that you can auth from anywhere and still store your accounts in sql or ldap.
- Added mail auth class, that will authenticate users against their email accounts
- Added multiple domain support.
- Fixed a few problems with the categories class
- Fixed nextmatchs calling link() wrong causing the next pages to not be displayed.
- Removed javascript from the login template
- Fixed HTML error in the application status select box for admin -> new/edit application
- Fixed group public filters in addressbook and todo list
- Cleanup up templates in admin section and created a few new templates.
[0.9.3] - Fixed the new user account form not returning the users firstname or last name when an
error is reported.
- Fixed NNTP to handle new VFS api.
- Fixed a number of preferences bugs on the main screen.
- Fixed E-Mail sigs not being added.
- Moved E-Mail preferences into its own section.
- When changing NNTP servers, now deletes newsgroups and users_newsgroups.
- Applied Patch #102089 - scrollbars for addressbook when composing email. Thanks jaggdedge <jaggdedge@users.sourceforge.net>
- owner fields are now working off account_id instead of account_lid
- Fixed time format on calendar preferences.
- NNTP now uses preferences to store monitored newsgroups.
- Added better error checking in applications admin section.
- Applied Patch #102116 - qmail/vmail spaces in TO:,CC: fields sending email. Thanks jaggdedge <jaggdedge@users.sourceforge.net>
- Email Trash folder is now created if it doesn't exsist
- Added user preferences for sending messages to the trash or just deleteing them.
- Started working on LDAP support. Its some what functional right now, but please be carefull
it has not been fully tested or debugged.
- Fixed appsession() not decrypting data properly.
- mcrypt should be working correctly now.
- Fixed problem with email's addressbook not retrieving records.
- Applied patch for accounts->listusers(). Thanks Mathieu van Loon <mathieu@playcollevtive.com>
- Fixed check for new version not working.
- Merged in patch for vcard support in addressbook. Thanks Qbert <qbert@users.sourceforge.net>
- Merged in patch for better langague support based on iso-639 Thanks zaphod <zaphod@users.sourceforge.net>
- Fixed accesslog not showing the logout field properly.
- transy should now be somewhat usable.
- Added automatic email of changes to TTS tickets.
- Fixed show currentusers on navbar preference
- Added new categories class
- Fixed date preferences in todo list
- Added date preferences to addressbook for birthdays
- Fixed group access to calendar items.
[0.9.2] - Fixed sorting bug in currentusers.php
- Cleaned up error reporting and form in newaccount.php
- Fixed viewaccounts.php not updated to the new accounts table.
- Fixed access_log not being updated durring logouts.
- Fixed email/folders.php not showing the number of messages in the INBOX.
- Fixed messages that where being passed around in the headlines admin section.
- Fixed setup script not working properly with certain version of MySQL.
- Fixed the participants list in the calendar.
- Fixed permission bug that was not checking users access to an app.
- Applied Patch #101453 - CJK character set display. Thanks Park ChungKyu <pchk@users.sourceforge.net>
- Applied Patch #101321 - CZECH lang translation. Thanks Petr Moses <pmoses@users.sourceforge.net>
- Now ISO 639 compliant with language translation id.
- Applied Patch #101828 - Swedish lang translation. Thanks Kjell Claesson <keyson@users.sourceforge.net>
- Fixed group management with new groups and navbar problems.
- Changed around the way the preferences work. The $phpgw_info array is also handled a little
differently for preferences. It now looks like:
$phpgw_info["user"]["preferences"][appname][preference name]
- Fixed NNTP call to preferences.php if user does not have any groups selected.
- Fixed setting of default preferences of new users.
- Updated Spanish translations. Thanks gmartine <gmartine@users.sourceforge.net>
- Default preferences used if not set in DB.
- NNTP fixed to use the new account table layout.
- NNTP Header problem fixed.
- Applied Patch #101934 - Updated Swedish lang translation. Thanks Kjell Claesson <keyson@users.sourceforge.net>
- Fixed a problem with setup/index.php return a number of errors on fresh PostgreSQL databases.
[0.9.1] - Fixed a few missing variables with templates.
- editing a product in the inventory program now forwards you back to the category
you where in.
- You can now use decimals in the inventory program.
- Added missing tables for tts and fixed problems with postgresql.
- Fixed changing of password not getting set in session table
- email now displays "Could not open mailbox" if mailbox could
not be opened (formerly displayed just "mailbox empty")
- Added ability to add/edit product status (inventory)
- Fixed displaying of repeated calendar events by owner
- Fixed displaying of calendar events to include group events
- Converted more of the inventory program to use templates
- Added a search field/add button when list products (inventory)
- Fixed editing of calendar entry with regards to start time
- Fixed sorting order in navbar when apps where assigned to a group.
- Fixed groups not being assinged an app properly.
- Fixed timeout for email receiving/sending.
- Changed the format for the accounts, sessions, and preferences tables.
- Started adding support for Oracle databases (Not working yet)
- Added new layout for admin and preferences sections.
- Fixed addressbook entries assigned to groups.
- Fixed accounts not using link() properly and kicking admin out of searchs.
- Removed globalconfig.inc.php and moved it into the database. Theres now a nice new
setup program.
- Updated docs a great deal.
- Group public items should now be working.
- Fixed a wrong data type error when calling sort() on 1 folder.
- Added week number in month view of calendar. (Patch by grasl)
- Moved charset setting from globalconfig.inc.php / DB to lang files.
- A bunch of other minor bug fixes.
[09072000] - Added print icon that allows you to print out a page without having
the navbar. Thanks Sam Wynn Jr <sam.wynn@lmco.com>
- on group creation the files directory tried to be created in
"filemanager/groups/" instead of in "files/groups/" - fixed.
Same for the user directory.
- Added error checking for creating/editing an account with no permissions.
- Fixed a db->unlock() issue in editaccount.php
- Fixed a few $phpgw_flags out of place.
- Fixed a problem with attachments not handled properly
- Fixed email/folder.php
- Fixed a problem with link targeting and the navbar.
- Fixed kp3 not being passed properly in chat.
- Changed the icon for NNTP.
- Changed the way session->create() makes the random number. This should fix
the problems on NT.
- Added HTTP Proxy support to phpgw_network.
- Pop3: when a header line started with cc:, from:, ..., but
no information followed the colon, a bunch of error messages were
displayed ("xxx not an object"). Fixed.
- Inventory program now supports changeable status fields.
- Added feature to show minium in stock products in different colors.
- Added error checking for changing a group name to a name that already exsists
- Removed session->hidden_var(), use link() from now on.
NOTE: You need to make sure you use the POST method. GET will cause problems.
- Cookie sessionid support works a little better now.
- Started adding LDAP account authencation support.
- Converted session->loginid, session->firstname, session->lastname, session->con to store
this data in the phpgw_info array.
- Moved check_owner() from session class to common.
- Converted all working apps to use the new lang() function which uses a database instead of
the lang files. (Passing extra variables is not working perfect, yet)
[08212000] - removed db_lock() and db_unlock() I changed the phpgw_db_* to use them
properly
- remove all remaining references to $dbase and $phpgw_db we are now using
$phpgw->db for database stuff
- Added unlock() in halt() for the database class. This should help prevent
database lockups if the program executes some invailed SQL.
- Moved around the directory layout. The include files and images are now
in the applications directory.
- You can now add permissions to a group, all users within that group
would be granted those permissions.
- NNTP now compatible with PHP3/PHP4.
- Fixed parse errors and footer problems with the calendars printer
friendly version.
- Fixed a problem with the groups directory not being deleted.
- Fixed a problem with not being able to add users to a group.
- Fixed bad links in calendar
- Added feature to be able to remove users from a group automaticly
- changetheme.php will now read the files in the directory. You no longer
need to edit it to add themes
- Fixed a problem with the default sorting order messing up the next matchs
while viewing a message
- Added feature to check for new releases of phpGW
- Added feature to filter out entrys only within a certain group.
This is for the todo list and addressbook.
- Added a search field and next matchs icons to accounts and groups form.
- Fixed the "code" messages not showing up after adding new entrys and what not.
- Started converting the admin section to work off templates
- Started converting the todo list to work off templates
- Added a few new themes
[08152000] - Fixed a problem with the calendar not showing the months in the users
langague preference.
- Added the new alpha human resources section
- Added the new alpha inventory program
- Added new global var $phpgw_flags
replaces $currentapp, $noheader, $nonavbar
- Small change in the API with the lang files.
- Added missing files for french
- pop_sort() accelerated by using temp file for storing header
information - speed factor > 2 for re-sorts!
- Added a temp quick fix for PostgreSQL not working in the calendar
I am using the old code, so there might be bugs. This is
just until we can find a better solution.
- Added a warning message if users are still apart of a group thats
about to be deleted.
- a bunch of error messages where shown when some header info was
split into multiple lines (on pop account), and address info
could not be built in this case. Fixed.
- Added Dutch and Korean langague support
- Added default app and default sorting order preference
- Fixed multipart handling on pop3
- Added config option for where the "Powered by" can go, top or bottom
- add/edit/delete accounts code has been cleaned up greatly.
- Better error control in the accounts section
- Fixed check_owner() in session class not reporting the owner properly
[08072000] - Fixed current users next matchs icons not showing up properly
- Added support to save sent-messages into Sent folder
- Fixed bug where users always see the mail server connection
error on a new installation
- Added cookie support so you can save your session id as a cookie
- Fixed permission bug in preferences with anonymous users
- Fixed permission bug in calendar
- Greatly improved ftp app
- Started adding the new manager permission
- Added link in the admin section to find out your phpinfo()
- A few bug fixes in the admin section
[08042000] - Fixed repeating events in calendar day view
- Started refering to modules as applications
- Fixed todo list not showing list properly
- Started adding new application layout
- Clean up documentation
- Added better german langague file support.
- Fixed addressbook not showing the group access properly
- Added nextmatchs to email
- Deleting a message will now forward you to the next message
instead of the inbox.
- Added spanish, Itailian and Norwegien lang files.
- EMail now supports POP-3
- Next matchs icons in email
- Many other fixes and features that we can't remeber :)
[07122000] - Added multi-langague support
- Added confirms before records are deleted.
- Fixed the footer not being called in the calendar
- Fixed the todo list not showing the list properly
- Added date format thanks vinz
- Renamed session.class to session.inc.php
- Added feature to allow stale uploads to be deleted on
systems that don't support cron
- Fixed calendar searchs
- Added preferences to have text under icons on navigation bar
[07062000] - Fixed javascript pop-up window upadting wrong fields.
thanks vinz
- Fixed security hole in logout.php
- Added support support for todo list showing who created
the record.
- Added support for date due in todo list.
- Fixed bug in killsession.php thanks vinz
- Added support for day view in calendar
- Added support for hovering descriptions using the alt tag
- Added support for newsheadlines program
thanks Mark Peters <mpeters@satx.rr.com>
- The calendar sports a new layout.
- Started converting HTML to be HTML 4.0 complient
- Added new filemanager program
- New experimental look for the user section.
[06302000] - Moved around the inc directorys for better security.
- Fixed the file attachments and parse errors.
- Fixed file uploads for Windows thanks vinz
- Added to bring you back to the same folder you are in
(email) thanks smoser
- Fixed directorys not be deleted properly and should
now work under windows.
- Updated docs a little
- Include pre-alpha release of trouble ticket system
- A few other small bug fixes.
[06272000] - Updated most of the docs for the new name (phpGroupWare)
- Resolve a few issues with installing on PHP 4.
- editaccounts.php3 now updated the calendar tables properly
- Cleaned up groups.inc and removed no longer used and repeated code
- Fixed broken link in calendar
- Renamed all .php3 so program works in PHP 4.
- Added next and previous links in calendar year view
- Printer friendly version of the calendar no longer show the
navigation bar on top
[06222000] - Fixed problem with timeformat only showing up if you have calendar
access.
- Added support to select from a few pre-defined date formats
Anyone have suggestions on some more ?
- Fixed problem with create_tables.mysql for calendar global events
thanks Vincent Larchet <vinz@users.sourceforge.net>
- Added support for multiable file uploads.
- Fixed table locking issues in editaccount.php3
- There is now a config option to point to a differant directory that webdistro is install on.
- A couple of other small bug fixes and code cleanup.
- Fixed a problem with email signatures not working
[06172000] - Added db_lock() and db_unlock. That should fix the table locking
problems.
- Fixed problem with filtering in todo list.
- Fixed admin viewaccount.php3 not showing permissions properly.
[06162000] - included new theme thanks Marl <marl@users.sourceforge.net>
- Made sure that the docs where included this time.
- Fixed javascript error in edit_entry.php thanks marvinhorst
- Fixed problem with edit_entry.php not including current users
loginid
- Renamed functions.inc to calendar.inc to make things easier to
understand.
- Renamed all .php file to .php3
- Fixed small calendar days, Sa and Su where backwords.
- Removed cal_eventid from webcal_entry_repeats, wasn't needed and was causing problems.
- Fixed a few problems with create_tables.*
- Global public items should now work in the calendar
- Added feature to change users passwords (admin)
- Update some of the docs.
- Renamed and merged some files in the calendar.
- Added percent of users that logged out to accesslog
[06092000] - Fixed lastlogin information that wasn't updating.
- Added table locks in edit_entry_handler.php (calendar)
- Added feature to annoy users that haven't changed there
password for more then 30 days.
- Added javascript popup window for addressbook in email
Thanks Brian King <bking@affcu.com>
[06082000] - Added new groups class
- Combined permissions and preferences into session.inc
- Renamed session.inc to webdistro_common.inc
- Fixed blank items showing up in the todo list.
- Cleaned up create_tables.* Took out all of the uneeded things.
- Included a new theme, it looks pretty bad on some computers.
But, we need to test things out a little with it.
[06052000] - Fixed a few permission bugs in the addressbook
- Started converting all programs to use the new session class
- Light code cleanup
- Fixed parse errors in a few places
- Added timezone support
- Updated stalesessions.pl
- Fixed a few possiable security problems with addressbook
[06032000] - Fixed problems editing accounts using postgresql
- Fixed problems creating account in create_tables.*
- Admin section updated. Sorting features. New layout for current
sessions.
- login.php3 Fixed problem with it not updating users lastlogin
- Fixed problems with adding events to the calendar.
- Fixed problems with repeating events with a frequency of more
then 1. I think I have finally narrowed most of the problems
down.
- Addressbook had the city and street mixed. Thanks Eric Degner
- Added feature to show who created the addressbook entry.
I will add support for this in the todolist later.
- Cleaned up some unneeded files in some of the directorys.
- Added next and previous link in message.php3 for email.
- Converted program to start using the new permissions and
preferences class.
- Fixed session table for mysql
[06022000] - Calendar bug fixes and code cleanup.
- Security fix for login.php3

View File

@ -1,87 +0,0 @@
### Core Developers ###
* Joseph Engo (aka Jengo) <jengo@phpgroupware.org>
- Man who started it all.
- Provides project direction, documentation.
- Works on core services session management, permissions, groups class, etc...
- Wrote the following applications
--- Addressbook (orignal work)
--- ToDolist (orignal work)
--- Inventory (orignal work)
--- Email (Adapted from Aeromail, which was written by Mark Cushman <mark@cushman.net> http://the.cushman.net/)
--- Calendar (Adapted from WebCalendar, which was written by Craig Knudsen <cknudsen@radix.net> http://www.radix.net/~cknudsen)
- Continues development and project direction.
* Dan Kuykendall (aka Seek3r) <dan@kuykendall.org>
- Project Administrator/Supervisor.
- Provides project direction, documentation.
- Works on core services such as the $phpgw[] array for application developers.
- Hosts website, and offers commercial support thru Clear River Technologies (http://www.clearrivertech.com)
- Wrote the following applications
--- File Manager (Based on filemanager, which was written by Lacey Pevey <lpevey@mailhost.tcs.tulane.edu> http://px.sklar.com/code.html?code_id=258)
--- Chat (orignal work)
- Continues development and project direction.
### Application Developers ###
* Michael Weber <weber@rising-systems.de>
- Develops/Maintains Trouble Ticket System
* Vincent Larchet (aka vinz) <vinz@users.sourceforge.net>
- He hops from application to application helping out everywhere
- Keeps phpGW working on NT servers
* Mark A Peters (aka Skeeter) <mpeters@satx.rr.com>
- Developed/Maintains Headlines application
- Developed/Maintains NNTP application
- Helps with almost all other applications as well
* Scott Moser (aka smoser) <smoser@brickies.net>
-Developed/Maintains the FTP application
* Itzchak Rehberg (aka izzy) <izzysoft@qumran.org>
- has been working on replacement for mail() function
- Developed/Maintains POP-3 class
- Built/Maintains the german language files
- He hops from application to application helping out everywhere
* Stephan Beal (aka wander) <stephan@wanderinghorse.net>
- Initial quick-n-dirty rbs port from the MRBS system
- Minor bug fixes.
- Conned Hakon into doing the Norwegian translations ;)
* Marc Logemann (aka Loge) |loge@mail.com|
- Develop/Maintains todo (project management)
- Develops utility classes for phpgwapi
- mental support for Palm Sync issue :)
### Patch Contributors ### (in alphabetical order) Let us know if we forgot anyone :)
* Wolfgang Lunz <wlunz@infomatec.de>
* bachroxx <bachroxx@users.sourceforge.net>
* brandonne <brandonne@users.sourceforge.net>
* Park ChungKyu <pchk@users.sourceforge.net>
* Kjell Claesson <keyson@users.sourceforge.net>
- Swedish translations.
* Simone Cortesi <simone@cortesi.com>
- Italian translations.
* flimm <flimm@users.sourceforge.net>
* gmartine <gmartine@users.sourceforge.net>
* Omer Uner Guclu <oquclu@superonline.com>
* Marvin Horst <marvinhorst@hotmail.com>
* Brian King <bking@affcu.com>
* Marl <marl@users.sourceforge.net>
* Mike Preishuber <martin.preishuber@eclipt.uni-klu.ac.at>
* Roy Svendsen <roysv@users.sourceforge.net>
* smoser <smoser@users.sourceforge.net>
* Petr Moses <pmoses@users.sourceforge.net>
- Czechoslovakian translations.
* preisel <preisl@users.aourceforge.net>
* Raúl Alexis Betancort Santana <rabs@dimension-virtual.com>
- Great working on our first template set.
* Hakon Tjaum
- Norwegian translations.
* zaphod <zaphod@users.sourceforge.net>
- Dutch (?) translations.
Thanks to Crista Schofield and Eric Degner for *TONS* of Beta testing.
All others on the phpgroupware-developers@lists.sourceforge.net mailing list
And finally every one of our users for the encouragement that keeps us happy, which means more development.

View File

@ -1,5 +0,0 @@
[ phpGroupWare ]
See the index.html or index.txt for installation instructions.
jengo@phpgroupware.org

View File

@ -1,342 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@ -1 +0,0 @@
PLEASE SEE THE index.html OR index.txt files.

View File

@ -1,2 +0,0 @@
This version will NOT work with PHP 4.0.3pl1. This is due to the PHP devteam breaking serialize() and
unserialize(). There is no known work around.

View File

@ -1,27 +0,0 @@
First off, I would not recommend using this in a type of enviroment that
security is a really big concern. I am *NOT* saying that you shouldn't be
concerned about it, but, until the system is thoughly tested. I would not
recommend it.
Becuase of the current methods that the email system works. It is required
that the users password is in the sessions table. IMAP needs the password
to verify the user. This is one of the main reasons for the stalesessions
program. I do not like keeping passwords in any medium that is not encryped.
The email system stores its file attachments in a temp directory. For right
now, you need to watch this directory because it can fill up very quickly.
If a user does not finsh composing the message (going else where in the program,
internet connection dieing, browser crash, etc) the file will sit there until
it is deleted. There will be a simple cron program to go through and clean
things up.
The files/users and files/groups directories need to be writable by the UID
that php runs under (nobody or your apache UID). This is a security risk
if 3rd parties can place php or cgi scripts on your machine, because they
will have full read/write access to those directories.
You should also consider moving the files directory outside of the
tree your webserver has access to to prevent websurfers from directly accessing
the files, or add in .htaccess files to restrict access to that tree.
Besides this, there is nothing else that I am aware of. Let me know if you
find anything.

View File

@ -1,456 +0,0 @@
------------------------------------------------------------------------------
-- Create_Tables Script for Oracle --
-- not yet completed and not yet fully working. The trigger functions still --
-- need to be built and I couldn't figure out yet how to do this... --
------------------------------------------------------------------------------
-- $Id$
------------------
-- APPLICATIONS --
------------------
connect system/system;
CREATE TABLESPACE phpgw
DATAFILE 'diskb:tablespace_phpgw.dat' SIZE 500K REUSE
AUTOEXTEND ON NEXT 500K MAXSIZE 10M;
CREATE USER phpgw IDENTIFIED BY phpgw
DEFAULT TABLESPACE phpgw
QUOTA 10M ON phpgw;
GRANT connect TO phpgw;
GRANT dba TO phpgw;
connect phpgw/phpgw;
CREATE TABLE config (
config_name varchar(25) NOT NULL,
config_value varchar(100),
PRIMARY KEY (config_name)
);
create unique index config_name
on config (config_name);
insert into config (config_name, config_value) values ('default_tplset', 'default');
insert into config (config_name, config_value) values ('temp_dir', '/path/to/tmp');
insert into config (config_name, config_value) values ('files_dir', '/path/to/dir/phpgroupware/files');
insert into config (config_name, config_value) values ('encryptkey', 'change this phrase 2 something else');
insert into config (config_name, config_value) values ('site_title', 'phpGroupWare');
insert into config (config_name, config_value) values ('hostname', 'local.machine.name');
insert into config (config_name, config_value) values ('webserver_url', '/phpgroupware');
insert into config (config_name, config_value) values ('auth_type', 'sql');
insert into config (config_name, config_value) values ('ldap_host', 'localhost');
insert into config (config_name, config_value) values ('ldap_context', 'o=phpGroupWare');
insert into config (config_name, config_value) values ('usecookies', 'True');
insert into config (config_name, config_value) values ('mail_server', 'localhost');
insert into config (config_name, config_value) values ('mail_server_type', 'imap');
insert into config (config_name, config_value) values ('imap_server_type', 'Cyrus');
insert into config (config_name, config_value) values ('mail_suffix', 'yourdomain.com');
insert into config (config_name, config_value) values ('mail_login_type', 'standard');
insert into config (config_name, config_value) values ('smtp_server', 'localhost');
insert into config (config_name, config_value) values ('smtp_port', '25');
insert into config (config_name, config_value) values ('nntp_server', 'yournewsserver.com');
insert into config (config_name, config_value) values ('nntp_port', '119');
insert into config (config_name, config_value) values ('nntp_sender', 'complaints@yourserver.com');
insert into config (config_name, config_value) values ('nntp_organization', 'phpGroupWare');
insert into config (config_name, config_value) values ('nntp_admin', 'admin@yourserver.com');
insert into config (config_name, config_value) values ('nntp_login_username', '');
insert into config (config_name, config_value) values ('nntp_login_password', '');
insert into config (config_name, config_value) values ('charset', 'iso-8859-1');
insert into config (config_name, config_value) values ('default_ftp_server', 'localhost');
insert into config (config_name, config_value) values ('httpproxy_server', '');
insert into config (config_name, config_value) values ('httpproxy_port', '');
insert into config (config_name, config_value) values ('showpoweredbyon', 'bottom');
insert into config (config_name, config_value) values ('checkfornewversion', 'False');
CREATE TABLE applications (
app_name varchar2(25) NOT NULL,
app_title varchar2(50),
app_enabled number,
app_order number,
app_tables varchar2(255)
);
create unique index applications_app_name
on applications (app_name);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('admin', 'Administration', 1, 1, NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('tts', 'Trouble Ticket System', 0, 2, NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('inv', 'Inventory', 0, 3, NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('chat', 'Chat', 0, 4, NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('headlines', 'Headlines', 0, 5, 'news_sites,news_headlines,users_headlines');
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('filemanager', 'File manager', 1, 6, NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('addressbook', 'Address Book', 1, 7, 'addressbook');
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('todo', 'ToDo List', 1, 8, 'todo');
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('calendar', 'Calendar', 1, 9, 'webcal_entry,webcal_entry_users,webcal_entry_groups,webcal_repeats');
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('email', 'Email', 1, 10,NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('nntp', 'NNTP', 1, 11, 'newsgroups,users_newsgroups');
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('cron_apps', 'cron_apps', 0, 0, NULL);
insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('transy', 'Translation Manager', 0, 12, NULL);
--------------
-- ACCOUNTS --
--------------
CREATE TABLE accounts (
account_id number NOT NULL,
account_lid varchar2(25) NOT NULL,
account_pwd varchar2(32) NOT NULL,
account_firstname varchar2(50),
account_lastname varchar2(50),
account_permissions varchar2(255),
account_groups varchar2(30),
account_lastlogin number(11),
account_lastloginfrom varchar2(255),
account_lastpwd_change number(11),
account_status varchar2(40) DEFAULT 'A' check (status in ('A','L')) NOT NULL,
PRIMARY KEY (account_id)
);
create unique index accounts_loginid
on accounts (account_lid);
create sequence accounts_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger accounts_bri
before insert on accounts
for each row
begin
select accounts_seq.nextval into :new.account_id from dual;
end;
/
insert into accounts (account_lid,account_pwd,account_firstname,account_lastname,account_permissions,account_groups,
account_status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account',':admin:email:todo:addressbook:calendar:',',1,','A');
------------
-- GROUPS --
------------
create table groups (
group_id number NOT NULL,
group_name varchar2(255),
group_apps varchar2(255),
primary key(group_id)
);
create sequence groups_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger groups_bri
before insert on groups
for each row
begin
select groups_seq.nextval into :new.group_id from dual;
end;
/
insert into groups (group_name) values ('Default');
-----------------
-- PREFERENCES --
-----------------
CREATE TABLE preferences (
preference_owner varchar2(20),
preference_name varchar2(50),
preference_value varchar2(50)
);
insert into preferences values ('demo','maxmatchs','10','');
insert into preferences values ('demo','mainscreen_showbirthdays','True','');
insert into preferences values ('demo','mainscreen_showevents','True','');
insert into preferences values ('demo','timeformat','12','');
insert into preferences values ('demo','dateformat','m/d/Y','');
insert into preferences values ('demo','theme','default','');
insert into preferences values ('demo','tz_offset','0','');
--------------
-- SESSIONS --
--------------
CREATE TABLE sessions (
session_id varchar2(255) NOT NULL,
session_lid varchar2(20),
session_pwd varchar2(255),
session_ip varchar2(255),
session_logintime number(11),
session_dla number(11)
);
create unique index sessions_sessionid
on sessions (session_id);
------------------
-- APP_SESSIONS --
------------------
CREATE TABLE app_sessions (
sessionid varchar2(255) NOT NULL,
loginid varchar2(20),
app varchar2(20),
content varchar2(2000)
);
----------------
-- ACCESS_LOG --
----------------
create table access_log (
sessionid varchar2(30),
loginid varchar2(30),
ip varchar2(30),
li number(11),
lo number(11)
);
--------------
-- PROFILES --
--------------
CREATE TABLE profiles (
con number NOT NULL,
owner varchar2(20),
title varchar2(255),
phone_number varchar2(255),
comments varchar2(4000),
picture_format varchar2(255),
picture blob,
PRIMARY KEY (con)
);
create sequence profiles_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger profiles_bri
before insert on profiles
for each row
begin
select profiles_seq.nextval into :new.con from dual;
end;
/
-----------------
-- ADDRESSBOOK --
-----------------
CREATE TABLE addressbook (
ab_id number NOT NULL,
ab_owner varchar2(25),
ab_addr_access varchar2(10),
ab_firstname varchar2(255),
ab_lastname varchar2(255),
ab_email varchar2(255),
ab_hphone varchar2(255),
ab_wphone varchar2(255),
ab_fax varchar2(255),
ab_pager varchar2(255),
ab_mphone varchar2(255),
ab_ophone varchar2(255),
ab_street varchar2(255),
ab_city varchar2(255),
ab_state varchar2(255),
ab_zip varchar2(255),
ab_bday varchar2(255),
ab_notes varchar2(4000),
ab_company varchar2(255),
PRIMARY KEY (ab_id)
);
create sequence addressbook_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger addressbook_bri
before insert on addressbook
for each row
begin
select addressbook_seq.nextval into :new.ab_id from dual;
end;
/
----------
-- TODO --
----------
CREATE TABLE todo (
todo_id number NOT NULL,
todo_owner varchar2(25),
todo_access varchar2(10),
todo_des varchar2(4000),
todo_pri number(11),
todo_status number(11),
todo_datecreated number(11),
todo_datedue number(11),
PRIMARY KEY (todo_id)
);
create sequence todo_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger todo_bri
before insert on todo
for each row
begin
select todo_seq.nextval into :new.todo_id from dual;
end;
/
------------------
-- WEBCAL_ENTRY --
------------------
CREATE TABLE webcal_entry (
cal_id number NOT NULL,
cal_group_id number(11),
cal_create_by varchar2(25) NOT NULL,
cal_date number(11) DEFAULT '0' NOT NULL,
cal_time number(11),
cal_mod_date number(11),
cal_mod_time number(11),
cal_duration number(11) DEFAULT '0' NOT NULL,
cal_priority number(11) DEFAULT '2',
cal_type varchar2(10),
cal_access char(10),
cal_name varchar2(80) NOT NULL,
cal_description varchar2(4000),
PRIMARY KEY (cal_id)
);
create sequence webcal_entry_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger webcal_entry_bri
before insert on webcal_entry
for each row
begin
select webcal_entry_seq.nextval into :new.cal_id from dual;
end;
/
--------------------------
-- WEBCAL_ENTRY_REPEATS --
--------------------------
CREATE TABLE webcal_entry_repeats (
cal_id number NOT NULL,
cal_type varchar2(40) DEFAULT 'daily' check (cal_type in ('daily','weekly','monthlyByDay','monthlyByDate','yearly')) NOT NULL,
cal_end number(11),
cal_frequency number(11) DEFAULT '1',
cal_days char(7)
);
------------------------
-- WEBCAL_ENTRY_USERS --
------------------------
CREATE TABLE webcal_entry_user (
cal_id number NOT NULL,
cal_login varchar2(25) NOT NULL,
cal_status char(1) DEFAULT 'A',
PRIMARY KEY (cal_id, cal_login)
);
-------------------------
-- WEBCAL_ENTRY_GROUPS --
-------------------------
create table webcal_entry_groups (
cal_id number not null,
groups varchar2(255)
);
----------------
-- NEWSGROUPS --
----------------
CREATE TABLE newsgroups (
con number NOT NULL,
name varchar2(255) NOT NULL,
messagecount number(11) NOT NULL,
lastmessage number(11) NOT NULL,
active char DEFAULT 'N' NOT NULL,
lastread number(11),
PRIMARY KEY (con)
);
create unique index newsgroups_name
on newsgroups (name);
create sequence newsgroups_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
create trigger newsgroups_bri
before insert on newsgroups
for each row
begin
select newsgroups_seq.nextval into :new.con from dual;
end;
/
---------------------
-- USERS_NEWSGOUPS --
---------------------
CREATE TABLE users_newsgroups (
owner number NOT NULL,
newsgroup number NOT NULL
);
----------
-- LANG --
----------
CREATE TABLE lang (
message_id varchar2(150) NOT NULL,
app_name varchar2(100) DEFAULT 'common' NOT NULL,
lang varchar2(5) NOT NULL,
content varchar2(4000) NOT NULL,
PRIMARY KEY (message_id,app_name,lang)
);
connect system/system;
REVOKE dba FROM phpgw;
commit;

View File

@ -1,7 +0,0 @@
# just add the following two lines to your $home/.cvswrappers file (if it
# already exists and doesn't have these lines - otherwise just create this
# file with those two lines). This guarantees that *.gif and *.jpg files will
# always be marked as binaries - even if you forgot the -kb on adding them
*.gif -k 'b'
*.jpg -k 'b'

View File

@ -1,35 +0,0 @@
Let me take a few minutes to explain codes. This is a system that I have been
using for years now to forward generic information to another program.
Recently I have noticed that all of my programs are differant. So, I am
creating a sort of standard for my self. It you need to tell the user that
they have been logged off successfully. Would you send the whole string to
login.php or just send a number ? Even though I call them codes, I use the
variable cd in the program. They are checked through check_code(int code).
BTW: Some of these do not apply to this program, the are for completly seperate
programs. But, might apply to any developing anyone else does. Feel free to
come up with some of your own.
code Meaning
-----------------------
0 Successfully logged off
2 Login expired
5 Bad login or password
13 Message has been sent
14 New entry added successfully
15 Entry updated successfully
16 Entry deleted successfully
17 Problem proccessing your request
18 Password changed
19 Session killed
22 Database error
23 Search returned no matchs
25 out of order
26 invalied date
27 Account updated
28 Account created
29 Account deleted
30 Settings updated
31 User group added
32 User group deleted
33 User group updated

View File

@ -1,137 +0,0 @@
#!/usr/bin/perl
# This program is distributed under the GPL.
# get the license from http://www.fsf.org
# this message must be attached to any redistributions
# smoser@brickies.net
sub getType;
sub usage;
if (!@ARGV) { usage(); }
for($i=(@ARGV-1);$i>=0;$i--) {
if (@ARGV[$i] eq "-D" || @ARGV[$i] eq "--u2d") {
$target="dos";
splice(@ARGV,$i,1);
next;
}
if (@ARGV[$i] eq "-U" || @ARGV[$i] eq "--d2u") {
$target="unix";
splice(@ARGV,$i,1);
next;
}
if (@ARGV[$i] eq "-q") {
$quite=1;
splice(@ARGV,$i,1);
next;
}
if (@ARGV[$i] =~ m/^-/) {
usage(@ARGV[$i]);
}
}
foreach $elem (@ARGV) {
if (!($origtype=getType($elem))) {
if (!$quite) {
print STDERR "bad file $elem\n";
}
next;
}
if (! -s $elem) {
if (!$quite) { print STDERR "file $elem is empty\n"; }
next;
}
$currtarget=$target;
if ($currtarget eq "") {
if ($origtype eq "dos") {
$currtarget="unix";
} elsif ($origtype eq "unix") {
$currtarget="dos";
} else {
print "BAD ERROR, filetype was \"$origtype\" trying to change it to \"$currtarget\"\n";
exit(0);
}
if (!$quite) { print STDERR "changing $elem to $currtarget\n"; }
}
# should be sane and safe at this point
if ($origtype eq $currtarget) {
if (!$quite) {
print STDERR "warning, skipping $elem\n";
}
next;
}
open(READ,"<$elem") || die "couldn't open $elem for reading\n";
@contents=<READ>;
close(READ);
if ($currtarget eq "dos") {
for($i=0;$i<@contents;$i++) {
@contents[$i]=~s/\x0A$/\x0D\x0A/;
}
} elsif ($currtarget eq "unix") {
for($i=0;$i<@contents;$i++) {
@contents[$i]=~s/\x0D\x0A$/\x0A/;
}
} else {
print "BAD ERROR, confused on $elem, origtype=\"$origtype\" target=\"$currtarget\"\n";
exit(0);
}
open(WRITE,">$elem") || die "couldn't open $elem for writing\n";
foreach $elem (@contents) {
print WRITE $elem;
}
}
exit(1);
sub getType {
# hopefully, this function returns 0 on failure, "dos" for a unix file
# "unix" for file that is in unix style
my $filename = shift;
my $type;
if (! -e $filename) { print "$elem bad -e\n";}
if (! -w $filename) { print "$elem bad -w\n";}
if (! -f $filename) { print "$elem bad -f\n";}
if (! -r $filename) { print "$elem bad -r\n";}
if (!(-w $filename && -e $filename && -f $filename && -r $filename )) {
return 0;
} else {
open(READ,"<$filename");
$line=<READ>;
$type="";
if ($line=~m/\x0D\x0A$/) {
#print "had <LF><CR>\n";
$type="dos";
} elsif ($line=~m/\x0A$/) {
#print "had LF\n";
$type="unix";
} elsif (! -s $filename) {
return "unix";
} else {
# whats going on here
# $type=0;
if (!$quite) { print "warning, can't tell what $elem was. probably binary\n";}
$type=0;
}
close(READ);
return $type;
}
}
sub usage {
my $invalid = shift;
if ($invalid ne "") {
print "$invalid: invalid argument\n";
}
print "usage: $0 [--d2u|--u2d|-D|-U] file1 file2 ...\n";
print "\t--d2u, -U\t change files to UNIX format\n";
print "\t--u2d, -D\t change files to DOS format\n";
print "- when no options are given, format will be detected and changed\n";
print "- avoid using with binary files\n";
exit(0);
}

View File

@ -1,34 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Introduction</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-2.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO.html#toc1" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-2.html">Next</A>
Previous
<A HREF="phpGW_Developers-HOWTO.html#toc1">Contents</A>
<HR>
<H2><A NAME="s1">1. Introduction</A></H2>
<P>phpGroupWare is a web based groupware application framework (API), for writing applications. Integrated applications such as
email, calendar, todo list, address book, and file manager are included.
<H2><A NAME="ss1.1">1.1 Overview of application writing</A>
</H2>
<P>We have attempted to make writing application for phpGroupWare as painless as possible.
We hope any pain and suffering is cause by making your application work, but not dealing with phpGroupWare itself.
<H2><A NAME="ss1.2">1.2 What does the phpGroupWare API provide?</A>
</H2>
<P>The phpGroupWare API handles session management, user/group management, has support for multiple databases, using the PHPLIB database abstraction method, we support templates using the PHPLIB Templates class, a file system interface, and even a network i/o interface.<BR>
On top of these standard functions, phpGroupWare provides several functions to give you the information you need about the users environment, and to properly plug into phpGroupWare.
<HR>
<A HREF="phpGW_Developers-HOWTO-2.html">Next</A>
Previous
<A HREF="phpGW_Developers-HOWTO.html#toc1">Contents</A>
</BODY>
</HTML>

View File

@ -1,63 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Guidelines</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-3.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-1.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-3.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-1.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc2">Contents</A>
<HR>
<H2><A NAME="s2">2. Guidelines</A></H2>
<H2><A NAME="ss2.1">2.1 Requirements</A>
</H2>
<P>These guidelines must be followed for any application that wants considered for inclusion into phpGroupWare deluxe.
<P>It must run on PHP3 and PHP4. <BR>
SQL statements must be compatible with both MySQL and PostgreSQL.<BR>
It must use our default header.inc.php include.<BR>
It must use our <CODE>$phpgw_link($url)</CODE> for all links (this is for session support).<BR>
It must use "post" for forms.<BR>
It must respect phpGW group rights and phpGW user permissions.<BR>
It must use our directory structure, template support and lang (multi-language) support.<BR>
Where possible it should run on both Unix and NT platforms.
<P>For applications that do not meet these requirements, they can be available to users via the phpGroupWare Apps project, or whatever means the developers decide.<BR>
If you need help converting your application to templates and our lang support, we will try to connect you with someone to help.
<H2><A NAME="ss2.2">2.2 Writing/porting your application</A>
</H2>
<H3>Include files</H3>
<P>Each PHP page you write will need to include the header.inc.php along with a few variables.<BR>
This is done by putting this at the top of each PHP page.
<HR>
<PRE>
&lt;?php
$phpgw_info["flags"]["currentapp"] = "appname";
include("../header.inc.php");
?>
</PRE>
<HR>
Of course change application name to fit.<BR>
This include will provide the following things:
<UL>
<LI> The phpgwAPI - The phpGroupWare API will be loaded.</LI>
<LI> The phpGW navbar will be loaded (by default, but can be disabled until a later point.</LI>
<LI> appname/inc/functions.inc.php - This file is loaded just after the phpgwAPI and before any HTML code is generated. This file should include all your application specific functions.. You are welcome to include any additional files you need from within this file.</LI>
<LI> appname/inc/header.inc.php - This file is loaded just after the system header/navbar, and allows developers to use it for whatever they need to load.</LI>
<LI> appname/inc/footer.inc.php - This file is loaded just before the system footer, allowing developers to close connections and whatever else they need.</LI>
<LI> The phpGW footer will be loaded, which closes several connections.</LI>
</UL>
<P>
<HR>
<A HREF="phpGW_Developers-HOWTO-3.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-1.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc2">Contents</A>
</BODY>
</HTML>

View File

@ -1,110 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Installing your application</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-4.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-2.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-4.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-2.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3. Installing your application</A></H2>
<H2><A NAME="ss3.1">3.1 Overview</A>
</H2>
<P>It is fairly simple to add and delete applications to/from phpGroupWare.
<H2><A NAME="ss3.2">3.2 Automatic features</A>
</H2>
<P>To make things easy for developers we go ahead and load the following files.
<UL>
<LI> appname/inc/functions.inc.php - This file should include all your application specific functions.</LI>
<LI> appname/inc/header.inc.php - This file is loaded by <CODE>$phpgw->common->header</CODE> just after the system header/navbar, and allows developers to use it for whatever they need to load.</LI>
<LI> appname/inc/footer.inc.php - This file is loaded by <CODE>$phpgw->common->footer</CODE> just before the system footer, allowing developers to close connections and whatever else they need.</LI>
</UL>
<H2><A NAME="ss3.3">3.3 Adding files, directories and icons.</A>
</H2>
<P>You will need to create the following directories for your code <BR>
(replace 'appname' with your application name)<BR>
<PRE>
`-- appname
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| |-- footer.inc.php
| |-- preferences.inc.php
| `-- admin.inc.php
`-- templates
`-- default
</PRE>
<H2><A NAME="ss3.4">3.4 Making phpGroupWare aware of your application</A>
</H2>
<P>To make the application aware of your application, add your application details to the applications table. This can be done via the GUI administration screen, or via a SQL script.
<PRE>
insert into applications (app_name, app_title, app_enabled) values ('appname', 'The App name', 1);
</PRE>
<H2><A NAME="ss3.5">3.5 Hooking into Administration page</A>
</H2>
<P>When a user goes to the Administration page, it stats appname/inc/admin.inc.php
for each application that is enabled, in alphabetical order of application title.
If the file exists, it is include()d in the hopes it will display a selection of
links to configure that application.
<P>Simple Example:
<HR>
<PRE>
&lt;?php
$img = "/" . $appname . "/images/navbar.gif";
section_start("My Application",$img);
echo "&lt;a HREF=\"" . $phpgw->link("myAdminPage.php") . "\"&gt;";
echo lang("Change myApp settings") . "&lt;/a&gt;";
section_end();
?>
</PRE>
<HR>
Look at headlines/inc/admin.inc.php and admin/inc/admin.inc.php for more examples.
<P>Things to note:
<UL>
<LI>Links are relative to the admin/index.php file, not your application's
base directory. (so use <CODE>$appname</CODE> in your <CODE>link()</CODE> calls)</LI>
<LI>The file is brought in with include() so be careful to not pollute the name-space too much</LI>
</UL>
The standard $phpgw and $phpgw_info variables are in-scope, as is $appname
which corresponds to the application name in the path.
<P>There are 2 functions to coordinate the display of each application's links,
section_start() and section_end()
<H3>section_start</H3>
<P><CODE>section_start($title,$icon_url)</CODE>
starts the section for your application. <CODE>$title</CODE> is passed through <CODE>lang()</CODE>
for you. <CODE>$icon_url</CODE> should be page-relative to admin/index.php or an absolute URL.
<P>
<H3>section_end</H3>
<P><CODE>section_end()</CODE> closes the section that was started with section_start().
<P>
<H2><A NAME="ss3.6">3.6 Hooking into Preferences page</A>
</H2>
<P>The mechanism to hook into the preferences page is identical to the one used to
hook into the administration page, however it looks for
<CODE>appname/inc/preferences.inc.php</CODE> instead of
<CODE>appname/inc/admin.inc.php</CODE>. The same functions and variables are defined.
<HR>
<A HREF="phpGW_Developers-HOWTO-4.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-2.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc3">Contents</A>
</BODY>
</HTML>

View File

@ -1,127 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Infrastructure</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-5.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-3.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-5.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-3.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc4">Contents</A>
<HR>
<H2><A NAME="s4">4. Infrastructure</A></H2>
<H2><A NAME="ss4.1">4.1 Overview</A>
</H2>
<P>phpGroupWare attempts to provide developers with a sound directory structure to work from.<BR>
The directory layout may seem complex at first, but after some use, you will see that it is designed to accommodate a large number of applications and functions.
<H2><A NAME="ss4.2">4.2 Directory tree</A>
</H2>
<P>
<PRE>
.-- addressbook
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- admin
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- calendar
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- cron
|-- doc
|-- email
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | |-- preferences.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- filemanager
|-- files
| |-- groups
| `-- users
|-- inc
| |-- phpgwapi
| | |-- phpgw.inc.php
| | |-- phpgw_info.inc.php
| | |-- phpgw_common.inc.php
| | `-- etc...
| `-- templates
| |-- default
| | |-- addressbook
| | |-- admin
| | |-- calendar
| | |-- common
| | |-- email
| | |-- filemanager
| | |-- headlines
| | |-- preferences
| | |-- todo
| | `-- tts
| `-- icons
| |-- email
| |-- calendar
| `-- tts
|-- preferences
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- preferences.inc.php
| `-- templates
| `-- default
|-- themes
`-- todo
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| `-- footer.inc.php
`-- templates
`-- default
</PRE>
<H2><A NAME="ss4.3">4.3 Translations</A>
</H2>
<P>The translations are now being done thru the database, and will be configurable to use other mechanisms.<BR>
We are completing a program called Transy, which will provide developers/translators a nice GUI for building and updating translations.<BR>
In the mean time you will need to create a SQL script yourself and name it lang.sql. You can copy the one in doc/lang.sql and use it as a template.
<HR>
<A HREF="phpGW_Developers-HOWTO-5.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-3.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc4">Contents</A>
</BODY>
</HTML>

View File

@ -1,153 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: The API</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-6.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-4.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-6.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-4.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc5">Contents</A>
<HR>
<H2><A NAME="s5">5. The API</A></H2>
<H2><A NAME="ss5.1">5.1 Introduction</A>
</H2>
<P>phpGroupWare attempts to provide developers with a useful API to handle common tasks.<BR>
To do this we have created a multi-dimensional class $phpgw->.<BR>
This allows for terrific code organization, and help developers easily identify the file that the function is in.
All the files that are part of this class are in the inc/core directory and are named to match the sub-class.<BR>
Example:
<CODE>$phpgw->send->msg()</CODE> is in the <CODE>inc/phpgwapi/phpgw_send.inc.php</CODE> file.
<H2><A NAME="ss5.2">5.2 Basic functions</A>
</H2>
<H3>$phpgw->link</H3>
<P><CODE>$phpgw->link($url)</CODE><BR>
Add support for session management. ALL links must use this, that includes href's form actions and header location's.<BR>
If you are just doing a form action back to the same page, you can use it without any parameters.<BR>
This function is right at the core of the class because it is used so often, we wanted to save developers a few keystrokes.
Example:
<HR>
<PRE>
&lt;form name=copy method=post action="&lt;?php echo $phpgw->link();?>">
/* If session management is done via passing url parameters */
/* The the result would be */
/* &lt;form name=copy method=post action="somepage.php?sessionid=87687693276?kp3=kjh98u80"> */
</PRE>
<HR>
<H2><A NAME="ss5.3">5.3 Application Functions</A>
</H2>
<P>
<H3>$phpgw->common->phpgw_header</H3>
<P><CODE>$phpgw->phpgw_header()</CODE><BR>
Print out the start of the HTML page, including the navigation bar
and includes <CODE>appname/inc/header.php</CODE>
<H3>$phpgw->common->phpgw_footer</H3>
<P><CODE>$phpgw->phpgw_footer()</CODE><BR>
Prints the system footer, and includes <CODE>appname/inc/footer.php</CODE>
<H3>$phpgw->common->appsession</H3>
<P><CODE>$phpgw->common->appsession($data)</CODE><BR>
Store important information session information that your application needs.<BR>
<CODE>$phpgw->appsession</CODE> will return the value of your session data is you leave the parameter empty [i.e. <CODE>$phpgw->appsession("")</CODE>], otherwise it will store whatever data you send to it.<BR>
You can also store a comma delimited string and use <CODE>explode()</CODE> to turn it back into an array when you receive the value back.<BR>
Example:
<HR>
<PRE>
$phpgw->common->appsession("/path/to/something");
echo "Dir: " . $phpgw->common->appsession();
</PRE>
<HR>
<H2><A NAME="ss5.4">5.4 File functions</A>
</H2>
<H3>$phpgw->vfs->read_file</H3>
<P><CODE>$phpgw->vfs->read_file($file)</CODE><BR>
Returns the data from $file.<BR>
You must send the complete path to the file.<BR>
Example:
<HR>
<PRE>
$data = $phpgw->vfs->read_file("/some/dir/to/file.txt");
</PRE>
<HR>
<P>
<H3>$phpgw->vfs->write_file</H3>
<P><CODE>$phpgw->vfs->write_file($file, $contents)</CODE><BR>
Write data to $file.<BR>
You must send the complete path to the file.<BR>
Example:
<HR>
<PRE>
$data = $phpgw->vfs->write_file("/some/dir/to/file.txt");
</PRE>
<HR>
<P>
<H3>$phpgw->vfs->read_userfile</H3>
<P><CODE>$phpgw->vfs->read_userfile($file)</CODE><BR>
Returns the data from $file, which resides in the users private dir.<BR>
Example:
<HR>
<PRE>
$data = $phpgw->vfs->read_userfile("file.txt");
</PRE>
<HR>
<P>
<H3>$phpgw->vfs->write_userfile</H3>
<P><CODE>$phpgw->write_userfile($file, $contents)</CODE><BR>
Writes data to $file, which resides in the users private dir.<BR>
Example:
<HR>
<PRE>
$data = $phpgw->vfs->write_userfile("file.txt");
</PRE>
<HR>
<P>
<H3>$phpgw->vfs->list_userfiles</H3>
<P><CODE>$phpgw->vfs->list_userfiles()</CODE><BR>
Returns an array which has the list of files in the users private dir.<BR>
Example:
<HR>
<PRE>
$filelist = array();
$filelist = $phpgw->vfs->list_userfiles();
</PRE>
<HR>
<H2><A NAME="ss5.5">5.5 Email/NNTP Functions</A>
</H2>
<P>
<P>
<H3>$phpgw->send->msg</H3>
<P><CODE>$phpgw->msg->send($service, $to, $subject, $body, $msgtype, $cc, $bcc)</CODE><BR>
Send a message via email or NNTP and returns any error codes.<BR>
Example:
<HR>
<PRE>
$to = "someuser@domain.com";
$subject = "Hello buddy";
$body = "Give me a call\n Been wondering what your up to.";
$errors = $phpgw->msg->send("email", $to, $subject, $body);
</PRE>
<HR>
<HR>
<A HREF="phpGW_Developers-HOWTO-6.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-4.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc5">Contents</A>
</BODY>
</HTML>

View File

@ -1,124 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Configuration Variables</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-7.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-5.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-7.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-5.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc6">Contents</A>
<HR>
<H2><A NAME="s6">6. Configuration Variables</A></H2>
<H2><A NAME="ss6.1">6.1 Introduction</A>
</H2>
<P>phpGroupWare attempt to provide developers with as much information about the user, group, server, and application configuration as possible.<BR>
To do this we provide a multi-dimensional array called '$phpgw_info[]', which includes all the information about your environment.<BR>
Due to the multi-dimensional array approach. getting these values is easy. <BR>
Here are some examples:
<HR>
<PRE>
&lt;?php
// To do a hello username
echo "Hello " . $phpgw_info["user"]["fullname"];
//If username first name is John and last name is Doe, prints: 'Hello John Doe'
?>
&lt;?php
// To find out the location of the imap server
echo "IMAP Server is named: " . $phpgw_info["server"]["imap_server"];
//If imap is running on localhost, prints: 'IMAP Server is named: localhost'
?>
</PRE>
<HR>
<H2><A NAME="ss6.2">6.2 User information</A>
</H2>
<P><CODE>$phpgw_info["user"]["userid"] = </CODE>The user ID.<BR>
<CODE>$phpgw_info["user"]["sessionid"] = </CODE>The session ID<BR>
<CODE>$phpgw_info["user"]["theme"] = </CODE>Selected theme<BR>
<CODE>$phpgw_info["user"]["private_dir"] = </CODE>Users private dir. Use phpGroupWare core functions for access to the files.<BR>
<CODE>$phpgw_info["user"]["firstname"] = </CODE>Users first name<BR>
<CODE>$phpgw_info["user"]["lastname"] = </CODE>Users last name<BR>
<CODE>$phpgw_info["user"]["fullname"] = </CODE>Users Full Name<BR>
<CODE>$phpgw_info["user"]["groups"] = </CODE>Groups the user is a member of<BR>
<CODE>$phpgw_info["user"]["app_perms"] = </CODE>If the user has access to the current application<BR>
<CODE>$phpgw_info["user"]["lastlogin"] = </CODE>Last time the user logged in.<BR>
<CODE>$phpgw_info["user"]["lastloginfrom"] = </CODE>Where they logged in from the last time.<BR>
<CODE>$phpgw_info["user"]["lastpasswd_change"] = </CODE>Last time they changed their password.<BR>
<CODE>$phpgw_info["user"]["passwd"] = </CODE>Hashed password.<BR>
<CODE>$phpgw_info["user"]["status"] = </CODE>If the user is enabled.<BR>
<CODE>$phpgw_info["user"]["logintime"] = </CODE>Time they logged into their current session.<BR>
<CODE>$phpgw_info["user"]["session_dla"] = </CODE>Last time they did anything in their current session<BR>
<CODE>$phpgw_info["user"]["session_ip"] = </CODE>Current IP address<BR>
<H2><A NAME="ss6.3">6.3 Group information</A>
</H2>
<P><CODE>$phpgw_info["group"]["group_names"] = </CODE>List of groups.<BR>
<H2><A NAME="ss6.4">6.4 Server information</A>
</H2>
<P><CODE>$phpgw_info["server"]["server_root"] = </CODE>Main installation directory<BR>
<CODE>$phpgw_info["server"]["include_root"] = </CODE>Location of the '<CODE>inc</CODE>' directory.<BR>
<CODE>$phpgw_info["server"]["temp_dir"] = </CODE>Directory that can be used for temporarily storing files<BR>
<CODE>$phpgw_info["server"]["files_dir"] = </CODE>Directory er and group files are stored<BR>
<CODE>$phpgw_info["server"]["common_include_dir"] = </CODE>Location of the core/shared include files.<BR>
<CODE>$phpgw_info["server"]["template_dir"] = </CODE>Active template files directory. This is defaulted by the server, and changeable by the user.<BR>
<CODE>$phpgw_info["server"]["dir_separator"] = </CODE>Allows compatibility with WindowsNT directory format,<BR>
<CODE>$phpgw_info["server"]["encrpytkey"] = </CODE>Key used for encryption functions<BR>
<CODE>$phpgw_info["server"]["site_title"] = </CODE>Site Title will show in the title bar of each webpage.<BR>
<CODE>$phpgw_info["server"]["webserver_url"] = </CODE>URL to phpGroupWare installation.<BR>
<CODE>$phpgw_info["server"]["hostname"] = </CODE>Name of the server phpGroupWare is installed upon.<BR>
<CODE>$phpgw_info["server"]["charset"] = </CODE>default charset, default:<CODE>iso-8859-1</CODE><BR>
<CODE>$phpgw_info["server"]["version"] = </CODE>phpGroupWare version.<BR>
<H2><A NAME="ss6.5">6.5 Database information</A>
</H2>
<P>It is unlikely you will need these, because $phpgw_info_db will already be loaded as a database for you to use.
<CODE>$phpgw_info["server"]["db_host"] = </CODE>Address of the database server. Usually this is set to localhost.<BR>
<CODE>$phpgw_info["server"]["db_name"] = </CODE>Database name.<BR>
<CODE>$phpgw_info["server"]["db_user"] = </CODE>User name.<BR>
<CODE>$phpgw_info["server"]["db_pass"] = </CODE>Password<BR>
<CODE>$phpgw_info["server"]["db_type"] = </CODE>Type of database. Currently MySQL and PostgreSQL are supported.<BR>
<H2><A NAME="ss6.6">6.6 Mail information</A>
</H2>
<P>It is unlikely you will need these, because most email needs are services thru core phpGroupWare functions.
<CODE>$phpgw_info["server"]["mail_server"] = </CODE>Address of the IMAP server. Usually this is set to localhost.<BR>
<CODE>$phpgw_info["server"]["mail_server_type"] = </CODE>IMAP or POP3<BR>
<CODE>$phpgw_info["server"]["imap_server_type"] = </CODE>Cyrus or Uwash<BR>
<CODE>$phpgw_info["server"]["imap_port"] = </CODE>This is usually 143, and should only be changed if there is a good reason.<BR>
<CODE>$phpgw_info["server"]["mail_suffix] = </CODE>This is the domain name, used to add to email address<BR>
<CODE>$phpgw_info["server"]["mail_login_type"] = </CODE>This adds support for VMailMgr. Generally this should be set to '<CODE>standard</CODE>'.<BR>
<CODE>$phpgw_info["server"]["smtp_server"] = </CODE>Address of the SMTP server. Usually this is set to localhost.<BR>
<CODE>$phpgw_info["server"]["smtp_port"] = </CODE>This is usually 25, and should only be changed if there is a good reason.<BR>
<H2><A NAME="ss6.7">6.7 NNTP information</A>
</H2>
<P><CODE>$phpgw_info["server"]["nntp_server"] = </CODE>Address of the NNTP server.<BR>
<CODE>$phpgw_info["server"]["nntp_port"] = </CODE>This is usually XX, and should only be changed if there is a good reason.<BR>
<CODE>$phpgw_info["server"]["nntp_sender"] = </CODE>Unknown<BR>
<CODE>$phpgw_info["server"]["nntp_organization"] = </CODE>Unknown<BR>
<CODE>$phpgw_info["server"]["nntp_admin"] = </CODE>Unknown<BR>
<H2><A NAME="ss6.8">6.8 Application information</A>
</H2>
<P>Each application has the following information available.
<CODE>$phpgw_info["apps"]["appname"]["title"] = </CODE>The title of the application.<BR>
<CODE>$phpgw_info["apps"]["appname"]["enabled"] = </CODE>If the application is enabled. True or False.<BR>
<CODE>$phpgw_info["server"]["app_include_dir"] = </CODE>Location of the current application include files.<BR>
<CODE>$phpgw_info["server"]["app_template_dir"] = </CODE>Location of the current application tpl files.<BR>
<CODE>$phpgw_info["server"]["app_lang_dir"] = </CODE>Location of the current lang directory.<BR>
<CODE>$phpgw_info["server"]["app_auth"] = </CODE>If the server and current user have access to current application<BR>
<CODE>$phpgw_info["server"]["app_current"] = </CODE>name of the current application.<BR>
<HR>
<A HREF="phpGW_Developers-HOWTO-7.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-5.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc6">Contents</A>
</BODY>
</HTML>

View File

@ -1,136 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Using Language Support</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-8.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-6.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-8.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-6.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc7">Contents</A>
<HR>
<H2><A NAME="s7">7. Using Language Support</A></H2>
<H2><A NAME="ss7.1">7.1 Overview</A>
</H2>
<P>phpGroupWare is built using a multi-language support scheme. This means the pages can be
translated to other languages very easily. Translations of text strings are
stored in the phpGroupWare database, and can be modified by the phpGroupWare
administrator.
<H2><A NAME="ss7.2">7.2 How to use lang support</A>
</H2>
<P>The <CODE>lang()</CODE> function is your application's interface to phpGroupWare's
internationalization support.
<P>While developing your application, just wrap all your text output with calls to
lang(), as in the following code:
<HR>
<PRE>
$x = 42;
echo lang("The counter is %1",$x)."&lt;br&gt;";
</PRE>
<HR>
This will attempt to translate "The counter is %1", and return a translated version
based on the current application and language in use. Note how the position that
<CODE>$x</CODE> will end up is controlled by the format string, <B>not</B> by
building up the string in your code. This allows your application to be translated
to languages where the actual number is not placed at the end of the string.
<P>When a translation is not found, the original text will be returned with a * after
the string. This makes it easy to develop your application, then go back and
add missing translations (identified by the *) later.
<P>Without a specific translation in the lang table, the above code will print:
<PRE>
The counter is 42*&lt;br&gt;
</PRE>
If the current user speaks Italian, they string returned may instead be:
<PRE>
il contatore è 42&lt;br&gt;
</PRE>
<H3>The lang function</H3>
<P>
<PRE>
lang($key, $m1="", $m2="", $m3="", $m4="", $m5="",
$m6="", $m7="", $m8="", $m9="", $m10="")
</PRE>
<DL>
<DT><B>$key</B><DD><P>is the string to translate and may contain replacement directives of the form <CODE>%n</CODE>.<BR>
<DT><B>$m1</B><DD><P>is the first replacement value or may be an array of replacement values
(in which case $m2 and above are ignored).
<DT><B>$m2 - $m10</B><DD><P>the 2nd through 10th replacement values if $m1 is not an array.
</DL>
The database is searched for rows with a <CODE>lang.message_id</CODE> that matches <CODE>$key</CODE>.
If a translation is not found, the original <CODE>$key</CODE> is used. The translation engine then replaces
all tokens of the form <CODE>%N</CODE> with the Nth parameter (either <CODE>$m1[N]</CODE> or <CODE>$mN</CODE>).
<H3>Adding translation data</H3>
<P>An application called <B>Transy</B> is being developed to make this easier, until then you can create
the translation data manually.
<P>
<H3>The lang table</H3>
<P>The translation class uses the lang table for all translations.
We are concerned with 4 of the columns to create a translation:
<DL>
<DT><B>message_id</B><DD><P>The key to identify the message (the <CODE>$key</CODE> passed
to the <CODE>lang()</CODE> function). This is written in English.
<DT><B>app_name</B><DD><P>The application the translation applies to, or
<CODE>common</CODE> if it is common across multiple applications.
<DT><B>lang</B><DD><P>The code for the language the translation is in.
<DT><B>content</B><DD><P>The translated string.
</DL>
<H3>lang.sql</H3>
<P>Currently all applications, and the core phpGroupWare source tree
have a <CODE>lang.sql</CODE> file. This is the place to add translation
data. Just add lines of the form:
<HR>
<PRE>
REPLACE INTO lang (message_id, app_name, lang, content)
VALUES( 'account has been deleted','common','en','Account has been deleted');
</PRE>
<HR>
translating the <CODE>content</CODE> to reflect the <CODE>message_id</CODE> string in the <CODE>lang</CODE> language.
If the string is specific to your application, put your application name in for <CODE>app_name</CODE>
otherwise use the name <CODE>common</CODE>. The <CODE>message_id</CODE> should be in lower case for a small
increase in speed.
<H2><A NAME="ss7.3">7.3 Common return codes</A>
</H2>
<P>If you browse through the phpGroupWare sources, you may notice
a pattern to the return codes used in the higher-level functions.
The codes used are partially documented in the <CODE>doc/developers/CODES</CODE>
file.
<P>Codes are used as a simple way to communicate common error and progress
conditions back to the user. They are mapped to a text string through the
<CODE>check_code()</CODE> function, which passes the strings through
<CODE>lang()</CODE> before returning.
<P>For example, calling
<HR>
<PRE>
echo check_code(13);
</PRE>
<HR>
Would print
<PRE>
Your message has been sent
</PRE>
translated into the current language.
<P>
<HR>
<A HREF="phpGW_Developers-HOWTO-8.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-6.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc7">Contents</A>
</BODY>
</HTML>

View File

@ -1,31 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: Using Templates</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-9.html" REL=next>
<LINK HREF="phpGW_Developers-HOWTO-7.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc8" REL=contents>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-9.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-7.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc8">Contents</A>
<HR>
<H2><A NAME="s8">8. Using Templates</A></H2>
<H2><A NAME="ss8.1">8.1 Overview</A>
</H2>
<P>phpGroupWare is built using a templates based design. This means the display pages, stored in tpl files, can be translated to other languages, made to look completely different.
<H2><A NAME="ss8.2">8.2 How to use templates</A>
</H2>
<P>Some instructions on using templates<BR>
For Further info read the PHPLIBs documentation for their template class.
<HR>
<A HREF="phpGW_Developers-HOWTO-9.html">Next</A>
<A HREF="phpGW_Developers-HOWTO-7.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc8">Contents</A>
</BODY>
</HTML>

View File

@ -1,51 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development: About this document</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-8.html" REL=previous>
<LINK HREF="phpGW_Developers-HOWTO.html#toc9" REL=contents>
</HEAD>
<BODY>
Next
<A HREF="phpGW_Developers-HOWTO-8.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc9">Contents</A>
<HR>
<H2><A NAME="s9">9. About this document</A></H2>
<H2><A NAME="ss9.1">9.1 New versions </A>
</H2>
<P>The newest version of this document can be found on our website
<A HREF="http://www.phpgroupware.org">http://www.phpgroupware.org</A> as SGML source, as HTML and as TEXT.
<H2><A NAME="ss9.2">9.2 Comments </A>
</H2>
<P>Comments on this HOWTO should be directed to the phpGroupWare developers mailing list
<A HREF="mailto:phpgroupware-developers@lists.sourceforge.net">phpgroupware-developers@lists.sourceforge.net</A>.
<P>To subscribe, go to
<A HREF="http://sourceforge.net/mail/?group_id=7305">http://sourceforge.net/mail/?group_id=7305</A><H2><A NAME="ss9.3">9.3 History </A>
</H2>
<P>This document was written by Dan Kuykendall.
<P>2000-09-25 documentation on lang(), codes, administration and preferences extension added by Steve Brown.
<H2><A NAME="ss9.4">9.4 Copyrights and Trademarks </A>
</H2>
<P>Copyright (c) Dan Kuykendall.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation
<P>A copy of the license is available at
<A HREF="http://www.gnu.org/copyleft/fdl.txt">GNU Free Documentation License</A>.
<H2><A NAME="ss9.5">9.5 Acknowledgments and Thanks </A>
</H2>
<P>Thanks to Joesph Engo for starting phpGroupWare (at the time called webdistro).
Thanks to all the developers and users who contribute to making phpGroupWare such a success.
<HR>
Next
<A HREF="phpGW_Developers-HOWTO-8.html">Previous</A>
<A HREF="phpGW_Developers-HOWTO.html#toc9">Contents</A>
</BODY>
</HTML>

View File

@ -1,107 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE> phpGroupWare Application Development</TITLE>
<LINK HREF="phpGW_Developers-HOWTO-1.html" REL=next>
</HEAD>
<BODY>
<A HREF="phpGW_Developers-HOWTO-1.html">Next</A>
Previous
Contents
<HR>
<H1> phpGroupWare Application Development</H1>
<H2>Dan Kuykendall &lt;dan@kuykendall.org&gt;</H2> v0.9 29 September 2000
<P><HR>
<EM> This document explains phpGroupWare's infrastructure and API, along with what is required to integrate applications into it.</EM>
<HR>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="phpGW_Developers-HOWTO-1.html">Introduction</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-1.html#ss1.1">1.1 Overview of application writing</A>
<LI><A HREF="phpGW_Developers-HOWTO-1.html#ss1.2">1.2 What does the phpGroupWare API provide?</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="phpGW_Developers-HOWTO-2.html">Guidelines</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-2.html#ss2.1">2.1 Requirements</A>
<LI><A HREF="phpGW_Developers-HOWTO-2.html#ss2.2">2.2 Writing/porting your application</A>
</UL>
<P>
<H2><A NAME="toc3">3.</A> <A HREF="phpGW_Developers-HOWTO-3.html">Installing your application</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-3.html#ss3.1">3.1 Overview</A>
<LI><A HREF="phpGW_Developers-HOWTO-3.html#ss3.2">3.2 Automatic features</A>
<LI><A HREF="phpGW_Developers-HOWTO-3.html#ss3.3">3.3 Adding files, directories and icons.</A>
<LI><A HREF="phpGW_Developers-HOWTO-3.html#ss3.4">3.4 Making phpGroupWare aware of your application</A>
<LI><A HREF="phpGW_Developers-HOWTO-3.html#ss3.5">3.5 Hooking into Administration page</A>
<LI><A HREF="phpGW_Developers-HOWTO-3.html#ss3.6">3.6 Hooking into Preferences page</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="phpGW_Developers-HOWTO-4.html">Infrastructure</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-4.html#ss4.1">4.1 Overview</A>
<LI><A HREF="phpGW_Developers-HOWTO-4.html#ss4.2">4.2 Directory tree</A>
<LI><A HREF="phpGW_Developers-HOWTO-4.html#ss4.3">4.3 Translations</A>
</UL>
<P>
<H2><A NAME="toc5">5.</A> <A HREF="phpGW_Developers-HOWTO-5.html">The API</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-5.html#ss5.1">5.1 Introduction</A>
<LI><A HREF="phpGW_Developers-HOWTO-5.html#ss5.2">5.2 Basic functions</A>
<LI><A HREF="phpGW_Developers-HOWTO-5.html#ss5.3">5.3 Application Functions</A>
<LI><A HREF="phpGW_Developers-HOWTO-5.html#ss5.4">5.4 File functions</A>
<LI><A HREF="phpGW_Developers-HOWTO-5.html#ss5.5">5.5 Email/NNTP Functions</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="phpGW_Developers-HOWTO-6.html">Configuration Variables</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.1">6.1 Introduction</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.2">6.2 User information</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.3">6.3 Group information</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.4">6.4 Server information</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.5">6.5 Database information</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.6">6.6 Mail information</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.7">6.7 NNTP information</A>
<LI><A HREF="phpGW_Developers-HOWTO-6.html#ss6.8">6.8 Application information</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="phpGW_Developers-HOWTO-7.html">Using Language Support</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-7.html#ss7.1">7.1 Overview</A>
<LI><A HREF="phpGW_Developers-HOWTO-7.html#ss7.2">7.2 How to use lang support</A>
<LI><A HREF="phpGW_Developers-HOWTO-7.html#ss7.3">7.3 Common return codes</A>
</UL>
<P>
<H2><A NAME="toc8">8.</A> <A HREF="phpGW_Developers-HOWTO-8.html">Using Templates</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-8.html#ss8.1">8.1 Overview</A>
<LI><A HREF="phpGW_Developers-HOWTO-8.html#ss8.2">8.2 How to use templates</A>
</UL>
<P>
<H2><A NAME="toc9">9.</A> <A HREF="phpGW_Developers-HOWTO-9.html">About this document</A></H2>
<UL>
<LI><A HREF="phpGW_Developers-HOWTO-9.html#ss9.1">9.1 New versions </A>
<LI><A HREF="phpGW_Developers-HOWTO-9.html#ss9.2">9.2 Comments </A>
<LI><A HREF="phpGW_Developers-HOWTO-9.html#ss9.3">9.3 History </A>
<LI><A HREF="phpGW_Developers-HOWTO-9.html#ss9.4">9.4 Copyrights and Trademarks </A>
<LI><A HREF="phpGW_Developers-HOWTO-9.html#ss9.5">9.5 Acknowledgments and Thanks </A>
</UL>
<HR>
<A HREF="phpGW_Developers-HOWTO-1.html">Next</A>
Previous
Contents
</BODY>
</HTML>

View File

@ -1,643 +0,0 @@
<!doctype linuxdoc system>
<!-- LinuxDoc file was created by hand by <Dan Kuykendall> 7 July 2000 -->
<!--
$Log$
Revision 1.6 2000/09/29 05:24:17 sjb4891
Added $phpgw->common->phpgw_footer() function, and changed all
places that were including the footer.inc.php to use the function.
Re-arrange phpgw.inc.php to include optional classes after reading the DB config
misc bugfixes.
-->
<article>
<title>
phpGroupWare Application Development
</title>
<author>
Dan Kuykendall &lt;dan@kuykendall.org&gt;
</author>
<date>
v0.9 29 September 2000
</date>
<abstract>
This document explains phpGroupWare's infrastructure and API, along with what is required to integrate applications into it.
</abstract>
<toc>
<sect>Introduction
<p>
phpGroupWare is a web based groupware application framework (API), for writing applications. Integrated applications such as
email, calendar, todo list, address book, and file manager are included.
</p>
<sect1>Overview of application writing
<p>
We have attempted to make writing application for phpGroupWare as painless as possible.
We hope any pain and suffering is cause by making your application work, but not dealing with phpGroupWare itself.
</p>
<sect1>What does the phpGroupWare API provide?
<p>
The phpGroupWare API handles session management, user/group management, has support for multiple databases, using the PHPLIB database abstraction method, we support templates using the PHPLIB Templates class, a file system interface, and even a network i/o interface.<newline>
On top of these standard functions, phpGroupWare provides several functions to give you the information you need about the users environment, and to properly plug into phpGroupWare.
</p>
<sect>Guidelines
<sect1>Requirements
<p>
These guidelines must be followed for any application that wants considered for inclusion into phpGroupWare deluxe.
</P>
<P>
It must run on PHP3 and PHP4. <newline>
SQL statements must be compatible with both MySQL and PostgreSQL.<newline>
It must use our default header.inc.php include.<newline>
It must use our <tt>$phpgw_link($url)</tt> for all links (this is for session support).<newline>
It must use "post" for forms.<newline>
It must respect phpGW group rights and phpGW user permissions.<newline>
It must use our directory structure, template support and lang (multi-language) support.<newline>
Where possible it should run on both Unix and NT platforms.
</p>
<p>
For applications that do not meet these requirements, they can be available to users via the phpGroupWare Apps project, or whatever means the developers decide.<newline>
If you need help converting your application to templates and our lang support, we will try to connect you with someone to help.
</P>
<sect1>Writing/porting your application
<sect2>Include files
<p>
Each PHP page you write will need to include the header.inc.php along with a few variables.<newline>
This is done by putting this at the top of each PHP page.
<code>
<?php
$phpgw_info["flags"]["currentapp"] = "appname";
include("../header.inc.php");
?>
</code>
Of course change application name to fit.<newline>
This include will provide the following things:
<itemize>
<item> The phpgwAPI - The phpGroupWare API will be loaded.
<item> The phpGW navbar will be loaded (by default, but can be disabled until a later point.
<item> appname/inc/functions.inc.php - This file is loaded just after the phpgwAPI and before any HTML code is generated. This file should include all your application specific functions.. You are welcome to include any additional files you need from within this file.
<item> appname/inc/header.inc.php - This file is loaded just after the system header/navbar, and allows developers to use it for whatever they need to load.
<item> appname/inc/footer.inc.php - This file is loaded just before the system footer, allowing developers to close connections and whatever else they need.
<item> The phpGW footer will be loaded, which closes several connections.
</itemize>
</p>
<sect>Installing your application
<sect1>Overview
<P>
It is fairly simple to add and delete applications to/from phpGroupWare.
</p>
<sect1>Automatic features
<P>
To make things easy for developers we go ahead and load the following files.
<itemize>
<item> appname/inc/functions.inc.php - This file should include all your application specific functions.
<item> appname/inc/header.inc.php - This file is loaded by <tt>$phpgw->common->header</tt> just after the system header/navbar, and allows developers to use it for whatever they need to load.
<item> appname/inc/footer.inc.php - This file is loaded by <tt>$phpgw->common->footer</tt> just before the system footer, allowing developers to close connections and whatever else they need.
</itemize>
</p>
<sect1>Adding files, directories and icons.
<p>
You will need to create the following directories for your code <newline>
(replace 'appname' with your application name)<newline>
<verb>
`-- appname
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| |-- footer.inc.php
| |-- preferences.inc.php
| `-- admin.inc.php
`-- templates
`-- default
</verb>
</p>
<sect1>Making phpGroupWare aware of your application
<p>
To make the application aware of your application, add your application details to the applications table. This can be done via the GUI administration screen, or via a SQL script.
<verb>
insert into applications (app_name, app_title, app_enabled) values ('appname', 'The App name', 1);
</verb>
</p>
<sect1>Hooking into Administration page
<P>
When a user goes to the Administration page, it stats appname/inc/admin.inc.php
for each application that is enabled, in alphabetical order of application title.
If the file exists, it is include()d in the hopes it will display a selection of
links to configure that application.
Simple Example:
<code>
&lt;?php
$img = "/" . $appname . "/images/navbar.gif";
section_start("My Application",$img);
echo "&lt;a HREF=\"" . $phpgw->link("myAdminPage.php") . "\"&gt;";
echo lang("Change myApp settings") . "&lt;/a&gt;";
section_end();
?>
</code>
Look at headlines/inc/admin.inc.php and admin/inc/admin.inc.php for more examples.
Things to note:
<itemize>
<item>Links are relative to the admin/index.php file, not your application's
base directory. (so use <tt>$appname</tt> in your <tt>link()</tt> calls)</item>
<item>The file is brought in with include() so be careful to not pollute the name-space too much</item>
</itemize>
The standard $phpgw and $phpgw_info variables are in-scope, as is $appname
which corresponds to the application name in the path.
There are 2 functions to coordinate the display of each application's links,
section_start() and section_end()
<sect2>section_start
<P>
<tt>section_start($title,$icon_url)</tt>
starts the section for your application. <tt>$title</tt> is passed through <tt>lang()</tt>
for you. <tt>$icon_url</tt> should be page-relative to admin/index.php or an absolute URL.
<sect2>section_end
<P>
<tt>section_end()</tt> closes the section that was started with section_start().
<sect1>Hooking into Preferences page
<P>
The mechanism to hook into the preferences page is identical to the one used to
hook into the administration page, however it looks for
<tt>appname/inc/preferences.inc.php</tt> instead of
<tt>appname/inc/admin.inc.php</tt>. The same functions and variables are defined.
<sect>Infrastructure
<sect1>Overview
<P>
phpGroupWare attempts to provide developers with a sound directory structure to work from.<newline>
The directory layout may seem complex at first, but after some use, you will see that it is designed to accommodate a large number of applications and functions.
</p>
<sect1>Directory tree
<p>
<verb>
.-- addressbook
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- admin
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- calendar
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- cron
|-- doc
|-- email
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | |-- preferences.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- filemanager
|-- files
| |-- groups
| `-- users
|-- inc
| |-- phpgwapi
| | |-- phpgw.inc.php
| | |-- phpgw_info.inc.php
| | |-- phpgw_common.inc.php
| | `-- etc...
| `-- templates
| |-- default
| | |-- addressbook
| | |-- admin
| | |-- calendar
| | |-- common
| | |-- email
| | |-- filemanager
| | |-- headlines
| | |-- preferences
| | |-- todo
| | `-- tts
| `-- icons
| |-- email
| |-- calendar
| `-- tts
|-- preferences
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- preferences.inc.php
| `-- templates
| `-- default
|-- themes
`-- todo
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| `-- footer.inc.php
`-- templates
`-- default
</verb>
</p>
<sect1>Translations
<p>
The translations are now being done thru the database, and will be configurable to use other mechanisms.<newline>
We are completing a program called Transy, which will provide developers/translators a nice GUI for building and updating translations.<newline>
In the mean time you will need to create a SQL script yourself and name it lang.sql. You can copy the one in doc/lang.sql and use it as a template.
</p>
<sect>The API
<sect1>Introduction
<p>
phpGroupWare attempts to provide developers with a useful API to handle common tasks.<newline>
To do this we have created a multi-dimensional class $phpgw->.<newline>
This allows for terrific code organization, and help developers easily identify the file that the function is in.
All the files that are part of this class are in the inc/core directory and are named to match the sub-class.<newline>
Example:
<tt>$phpgw->send->msg()</tt> is in the <tt>inc/phpgwapi/phpgw_send.inc.php</tt> file.
<sect1>Basic functions
<sect2>$phpgw->link
<p>
<tt>$phpgw->link($url)</tt><newline>
Add support for session management. ALL links must use this, that includes href's form actions and header location's.<newline>
If you are just doing a form action back to the same page, you can use it without any parameters.<newline>
This function is right at the core of the class because it is used so often, we wanted to save developers a few keystrokes.
Example:
<code>
<form name=copy method=post action="<?php echo $phpgw->link();?>">
/* If session management is done via passing url parameters */
/* The the result would be */
/* <form name=copy method=post action="somepage.php?sessionid=87687693276?kp3=kjh98u80"> */
</code>
</p>
<sect1>Application Functions
<p>
<sect2>$phpgw->common->phpgw_header
<p>
<tt>$phpgw->phpgw_header()</tt><newline>
Print out the start of the HTML page, including the navigation bar
and includes <tt>appname/inc/header.php</tt>
</p>
<sect2>$phpgw->common->phpgw_footer
<p>
<tt>$phpgw->phpgw_footer()</tt><newline>
Prints the system footer, and includes <tt>appname/inc/footer.php</tt>
</p>
<sect2>$phpgw->common->appsession
<p>
<tt>$phpgw->common->appsession($data)</tt><newline>
Store important information session information that your application needs.<newline>
<tt>$phpgw->appsession</tt> will return the value of your session data is you leave the parameter empty [i.e. <tt>$phpgw->appsession("")</tt>], otherwise it will store whatever data you send to it.<newline>
You can also store a comma delimited string and use <tt>explode()</tt> to turn it back into an array when you receive the value back.<newline>
Example:
<code>
$phpgw->common->appsession("/path/to/something");
echo "Dir: " . $phpgw->common->appsession();
</code>
</p>
<sect1>File functions
<sect2>$phpgw->vfs->read_file
<p>
<tt>$phpgw->vfs->read_file($file)</tt><newline>
Returns the data from $file.<newline>
You must send the complete path to the file.<newline>
Example:
<code>
$data = $phpgw->vfs->read_file("/some/dir/to/file.txt");
</code>
<sect2>$phpgw->vfs->write_file
<p>
<tt>$phpgw->vfs->write_file($file, $contents)</tt><newline>
Write data to $file.<newline>
You must send the complete path to the file.<newline>
Example:
<code>
$data = $phpgw->vfs->write_file("/some/dir/to/file.txt");
</code>
<sect2>$phpgw->vfs->read_userfile
<p>
<tt>$phpgw->vfs->read_userfile($file)</tt><newline>
Returns the data from $file, which resides in the users private dir.<newline>
Example:
<code>
$data = $phpgw->vfs->read_userfile("file.txt");
</code>
<sect2>$phpgw->vfs->write_userfile
<p>
<tt>$phpgw->write_userfile($file, $contents)</tt><newline>
Writes data to $file, which resides in the users private dir.<newline>
Example:
<code>
$data = $phpgw->vfs->write_userfile("file.txt");
</code>
<sect2>$phpgw->vfs->list_userfiles
<p>
<tt>$phpgw->vfs->list_userfiles()</tt><newline>
Returns an array which has the list of files in the users private dir.<newline>
Example:
<code>
$filelist = array();
$filelist = $phpgw->vfs->list_userfiles();
</code>
</p>
<sect1>Email/NNTP Functions
<p>
<sect2>$phpgw->send->msg
<p>
<tt>$phpgw->msg->send($service, $to, $subject, $body, $msgtype, $cc, $bcc)</tt><newline>
Send a message via email or NNTP and returns any error codes.<newline>
Example:
<code>
$to = "someuser@domain.com";
$subject = "Hello buddy";
$body = "Give me a call\n Been wondering what your up to.";
$errors = $phpgw->msg->send("email", $to, $subject, $body);
</code>
</p>
<sect>Configuration Variables
<sect1>Introduction
<p>
phpGroupWare attempt to provide developers with as much information about the user, group, server, and application configuration as possible.<newline>
To do this we provide a multi-dimensional array called '$phpgw_info[]', which includes all the information about your environment.<newline>
Due to the multi-dimensional array approach. getting these values is easy. <newline>
Here are some examples:
<code>
<?php
// To do a hello username
echo "Hello " . $phpgw_info["user"]["fullname"];
//If username first name is John and last name is Doe, prints: 'Hello John Doe'
?>
<?php
// To find out the location of the imap server
echo "IMAP Server is named: " . $phpgw_info["server"]["imap_server"];
//If imap is running on localhost, prints: 'IMAP Server is named: localhost'
?>
</code>
</p>
<sect1>User information
<p>
<tt>$phpgw_info["user"]["userid"] = </tt>The user ID.<newline>
<tt>$phpgw_info["user"]["sessionid"] = </tt>The session ID<newline>
<tt>$phpgw_info["user"]["theme"] = </tt>Selected theme<newline>
<tt>$phpgw_info["user"]["private_dir"] = </tt>Users private dir. Use phpGroupWare core functions for access to the files.<newline>
<tt>$phpgw_info["user"]["firstname"] = </tt>Users first name<newline>
<tt>$phpgw_info["user"]["lastname"] = </tt>Users last name<newline>
<tt>$phpgw_info["user"]["fullname"] = </tt>Users Full Name<newline>
<tt>$phpgw_info["user"]["groups"] = </tt>Groups the user is a member of<newline>
<tt>$phpgw_info["user"]["app_perms"] = </tt>If the user has access to the current application<newline>
<tt>$phpgw_info["user"]["lastlogin"] = </tt>Last time the user logged in.<newline>
<tt>$phpgw_info["user"]["lastloginfrom"] = </tt>Where they logged in from the last time.<newline>
<tt>$phpgw_info["user"]["lastpasswd_change"] = </tt>Last time they changed their password.<newline>
<tt>$phpgw_info["user"]["passwd"] = </tt>Hashed password.<newline>
<tt>$phpgw_info["user"]["status"] = </tt>If the user is enabled.<newline>
<tt>$phpgw_info["user"]["logintime"] = </tt>Time they logged into their current session.<newline>
<tt>$phpgw_info["user"]["session_dla"] = </tt>Last time they did anything in their current session<newline>
<tt>$phpgw_info["user"]["session_ip"] = </tt>Current IP address<newline>
</p>
<sect1>Group information
<p>
<tt>$phpgw_info["group"]["group_names"] = </tt>List of groups.<newline>
</p>
<sect1>Server information
<p>
<tt>$phpgw_info["server"]["server_root"] = </tt>Main installation directory<newline>
<tt>$phpgw_info["server"]["include_root"] = </tt>Location of the '<tt>inc</tt>' directory.<newline>
<tt>$phpgw_info["server"]["temp_dir"] = </tt>Directory that can be used for temporarily storing files<newline>
<tt>$phpgw_info["server"]["files_dir"] = </tt>Directory er and group files are stored<newline>
<tt>$phpgw_info["server"]["common_include_dir"] = </tt>Location of the core/shared include files.<newline>
<tt>$phpgw_info["server"]["template_dir"] = </tt>Active template files directory. This is defaulted by the server, and changeable by the user.<newline>
<tt>$phpgw_info["server"]["dir_separator"] = </tt>Allows compatibility with WindowsNT directory format,<newline>
<tt>$phpgw_info["server"]["encrpytkey"] = </tt>Key used for encryption functions<newline>
<tt>$phpgw_info["server"]["site_title"] = </tt>Site Title will show in the title bar of each webpage.<newline>
<tt>$phpgw_info["server"]["webserver_url"] = </tt>URL to phpGroupWare installation.<newline>
<tt>$phpgw_info["server"]["hostname"] = </tt>Name of the server phpGroupWare is installed upon.<newline>
<tt>$phpgw_info["server"]["charset"] = </tt>default charset, default:<tt>iso-8859-1</tt><newline>
<tt>$phpgw_info["server"]["version"] = </tt>phpGroupWare version.<newline>
</p>
<sect1>Database information
<p>
It is unlikely you will need these, because $phpgw_info_db will already be loaded as a database for you to use.
<tt>$phpgw_info["server"]["db_host"] = </tt>Address of the database server. Usually this is set to localhost.<newline>
<tt>$phpgw_info["server"]["db_name"] = </tt>Database name.<newline>
<tt>$phpgw_info["server"]["db_user"] = </tt>User name.<newline>
<tt>$phpgw_info["server"]["db_pass"] = </tt>Password<newline>
<tt>$phpgw_info["server"]["db_type"] = </tt>Type of database. Currently MySQL and PostgreSQL are supported.<newline>
</p>
<sect1>Mail information
<p>
It is unlikely you will need these, because most email needs are services thru core phpGroupWare functions.
<tt>$phpgw_info["server"]["mail_server"] = </tt>Address of the IMAP server. Usually this is set to localhost.<newline>
<tt>$phpgw_info["server"]["mail_server_type"] = </tt>IMAP or POP3<newline>
<tt>$phpgw_info["server"]["imap_server_type"] = </tt>Cyrus or Uwash<newline>
<tt>$phpgw_info["server"]["imap_port"] = </tt>This is usually 143, and should only be changed if there is a good reason.<newline>
<tt>$phpgw_info["server"]["mail_suffix] = </tt>This is the domain name, used to add to email address<newline>
<tt>$phpgw_info["server"]["mail_login_type"] = </tt>This adds support for VMailMgr. Generally this should be set to '<tt>standard</tt>'.<newline>
<tt>$phpgw_info["server"]["smtp_server"] = </tt>Address of the SMTP server. Usually this is set to localhost.<newline>
<tt>$phpgw_info["server"]["smtp_port"] = </tt>This is usually 25, and should only be changed if there is a good reason.<newline>
</p>
<sect1>NNTP information
<p>
<tt>$phpgw_info["server"]["nntp_server"] = </tt>Address of the NNTP server.<newline>
<tt>$phpgw_info["server"]["nntp_port"] = </tt>This is usually XX, and should only be changed if there is a good reason.<newline>
<tt>$phpgw_info["server"]["nntp_sender"] = </tt>Unknown<newline>
<tt>$phpgw_info["server"]["nntp_organization"] = </tt>Unknown<newline>
<tt>$phpgw_info["server"]["nntp_admin"] = </tt>Unknown<newline>
</p>
<sect1>Application information
<p>
Each application has the following information available.
<tt>$phpgw_info["apps"]["appname"]["title"] = </tt>The title of the application.<newline>
<tt>$phpgw_info["apps"]["appname"]["enabled"] = </tt>If the application is enabled. True or False.<newline>
<tt>$phpgw_info["server"]["app_include_dir"] = </tt>Location of the current application include files.<newline>
<tt>$phpgw_info["server"]["app_template_dir"] = </tt>Location of the current application tpl files.<newline>
<tt>$phpgw_info["server"]["app_lang_dir"] = </tt>Location of the current lang directory.<newline>
<tt>$phpgw_info["server"]["app_auth"] = </tt>If the server and current user have access to current application<newline>
<tt>$phpgw_info["server"]["app_current"] = </tt>name of the current application.<newline>
</p>
<sect>Using Language Support
<sect1>Overview
<P>
phpGroupWare is built using a multi-language support scheme. This means the pages can be
translated to other languages very easily. Translations of text strings are
stored in the phpGroupWare database, and can be modified by the phpGroupWare
administrator.
</p>
<sect1>How to use lang support
<p>
The <tt>lang()</tt> function is your application's interface to phpGroupWare's
internationalization support.
While developing your application, just wrap all your text output with calls to
lang(), as in the following code:
<code>
$x = 42;
echo lang("The counter is %1",$x)."&lt;br&gt;";
</code>
This will attempt to translate "The counter is %1", and return a translated version
based on the current application and language in use. Note how the position that
<tt>$x</tt> will end up is controlled by the format string, <bf>not</bf> by
building up the string in your code. This allows your application to be translated
to languages where the actual number is not placed at the end of the string.
When a translation is not found, the original text will be returned with a * after
the string. This makes it easy to develop your application, then go back and
add missing translations (identified by the *) later.
Without a specific translation in the lang table, the above code will print:
<verb>
The counter is 42*&lt;br&gt;
</verb>
If the current user speaks Italian, they string returned may instead be:
<verb>
il contatore è 42&lt;br&gt;
</verb>
<sect2>The lang function
<p>
<verb>lang($key, $m1="", $m2="", $m3="", $m4="", $m5="",
$m6="", $m7="", $m8="", $m9="", $m10="")</verb>
<descrip>
<tag/$key/ is the string to translate and may contain replacement directives of the form <tt>%n</tt>.<newline>
<tag/$m1/ is the first replacement value or may be an array of replacement values
(in which case $m2 and above are ignored).
<tag/$m2 - $m10/ the 2nd through 10th replacement values if $m1 is not an array.
</descrip>
The database is searched for rows with a <tt>lang.message_id</tt> that matches <tt>$key</tt>.
If a translation is not found, the original <tt>$key</tt> is used. The translation engine then replaces
all tokens of the form <tt>%N</tt> with the Nth parameter (either <tt>$m1[N]</tt> or <tt>$mN</tt>).
</p>
<sect2>Adding translation data
<p>
An application called <bf>Transy</bf> is being developed to make this easier, until then you can create
the translation data manually.
<sect3>The lang table
<P>
The translation class uses the lang table for all translations.
We are concerned with 4 of the columns to create a translation:
<descrip>
<tag/message_id/The key to identify the message (the <tt>$key</tt> passed
to the <tt>lang()</tt> function). This is written in English.
<tag/app_name/The application the translation applies to, or
<tt>common</tt> if it is common across multiple applications.
<tag/lang/The code for the language the translation is in.
<tag/content/The translated string.
</descrip>
<sect3>lang.sql
<P>
Currently all applications, and the core phpGroupWare source tree
have a <tt>lang.sql</tt> file. This is the place to add translation
data. Just add lines of the form:
<code>
REPLACE INTO lang (message_id, app_name, lang, content)
VALUES( 'account has been deleted','common','en','Account has been deleted');
</code>
translating the <tt>content</tt> to reflect the <tt>message_id</tt> string in the <tt>lang</tt> language.
If the string is specific to your application, put your application name in for <tt>app_name</tt>
otherwise use the name <tt>common</tt>. The <tt>message_id</tt> should be in lower case for a small
increase in speed.
</p>
<sect1>Common return codes
<P>
If you browse through the phpGroupWare sources, you may notice
a pattern to the return codes used in the higher-level functions.
The codes used are partially documented in the <tt>doc/developers/CODES</tt>
file.
Codes are used as a simple way to communicate common error and progress
conditions back to the user. They are mapped to a text string through the
<tt>check_code()</tt> function, which passes the strings through
<tt>lang()</tt> before returning.
For example, calling
<code>
echo check_code(13);
</code>
Would print
<verb>
Your message has been sent
</verb>
translated into the current language.
<sect>Using Templates
<sect1>Overview
<P>
phpGroupWare is built using a templates based design. This means the display pages, stored in tpl files, can be translated to other languages, made to look completely different.
</p>
<sect1>How to use templates
<p>
Some instructions on using templates<newline>
For Further info read the PHPLIBs documentation for their template class.
</p>
<sect>About this document
<sect1>New versions
<p>
The newest version of this document can be found on our website <url url="http://www.phpgroupware.org"> as SGML source, as HTML and as TEXT.
</p>
<sect1>Comments
<p>
Comments on this HOWTO should be directed to the phpGroupWare developers mailing list
<url url="mailto:phpgroupware-developers@lists.sourceforge.net" name="phpgroupware-developers@lists.sourceforge.net">.<P>
To subscribe, go to <url url="http://sourceforge.net/mail/?group_id=7305"
</p>
<sect1>History
<p>
This document was written by Dan Kuykendall.
2000-09-25 documentation on lang(), codes, administration and preferences extension added by Steve Brown.
</p>
<sect1>Copyrights and Trademarks
<p>
Copyright (c) Dan Kuykendall.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation
</p>
<p>
A copy of the license is available at
<url url="http://www.gnu.org/copyleft/fdl.txt" name="GNU Free Documentation License">.
</p>
<sect1>Acknowledgments and Thanks
<p>
Thanks to Joesph Engo for starting phpGroupWare (at the time called webdistro).
Thanks to all the developers and users who contribute to making phpGroupWare such a success.
</p>
</article>

File diff suppressed because it is too large Load Diff

View File

@ -1,139 +0,0 @@
phpgw_msg_pop3.inc.php
Itzchak Rehberg <izzy@qumran.org>
v1.0, 07 August 2000
documentation of the pop3 "msg" class
______________________________________________________________________
Table of Contents
1. Why this pop class?
2. Function reference
2.1. function pop_close($stream,$flags="")
2.2. function pop_delete($stream,$msg_num,$flags="")
2.3. function pop_fetchbody($stream,$msgnr,$partnr="",$flags="")
2.4. function pop_fetchstructure($stream,$msg_num,$flags="")
2.5. function pop_header($stream,$msg_nr,$fromlength="",$tolength="",
$defaulthost="")
2.6. function pop_mailboxmsginfo($stream)
2.7. function pop_sort($stream,$criteria,$reverse="",$options="",
$msg_info="")
3. Additional functionality
______________________________________________________________________
1. Why this pop class?
You may ask, why we use another pop class - php's imap_*() functions
would work on pop3, too. Well, that may be true - but there are lots
of folks out there having their php *not* compiled --with-imap, and
some of them feel unable doing such. So it's the easiest thing to have
an own pop3 class built on straight socket calls - and since I already
did the same writing the smtp "send" class... And by the way this pop3
class will have some advantages over php's imap_*() functions...
We named this class "msg" instead of "pop3", since we use another
class with the same structure for imap. Additionally to imap_open()
(or pop_open() in this case) we have the "wrapper method" open(),
which allows us just to decide on user configuration wether using
imap or pop and then just to include the appropriate file, using the
same function/method calls for both.
______________________________________________________________________
2. Function reference
When I built up this pop class, I felt it an important issue to have
it most compatible in syntax to the imap_*() functions, so we could
adapt it easily into phpGroupWare. So if I made some improvements, as
e.g. to the pop_sort() method, I did it in a manner, that one still
can call it the same way as he would call imap_sort() (in this case).
Due to this fact I have *not* to explain the syntax of each single
method here (for this, please refer to your php manual). I will just
list up differences one has to keep in mind when using them.
The first difference is, that this is a class. So before you can use
the functions, you have to create an instance of this class, e.g.
$mypop3 = new msg;
$mypop3->open($mailbox,$username,$password,$flags); // or:
$mypop3->pop_open($mailbox,$username,$password,$flags);
both methods do the same - see "wrapper" above in section 1. So if you
want to use this pop3 class outside the phpGroupWare environment, you
may just want to strip these wrapper methods off the file and just use
the pop_*() methods themselves.
Not all imap_*() funcs have their (working) pendant here, since pop3
does not support all the features imap has (e.g. multiple folders).
Those methods (e.g. pop_expunge()) just return a default value (here
false) and do nothing. They are just kept here in case one of our
wrapper methods tries to call them :) These methods are not listed in
this document, neither are those who are fully described by their imap
pendant.
2.1. function pop_close($stream,$flags="")
$flags is not used here and won't ever be (makes no sense), but just
kept for compatibility.
2.2. function pop_delete($stream,$msg_num,$flags="")
Does a real delete - not just marks as deleted (as in imap_delete),
since this function is not available to pop3 (in fact the mail is
deleted by calling pop_close() afterwards - but there's no undelete)
2.3. function pop_fetchbody($stream,$msgnr,$partnr="",$flags="")
$partnr and $flags are ignored and just put here for compatibility
purposes to imap_fetchbody
2.4. function pop_fetchstructure($stream,$msg_num,$flags="")
$flags is not used here (yet).
2.5. function pop_header($stream,$msg_nr,$fromlength="",$tolength="",
$defaulthost="")
Not all information you find returned by imap_header is included here,
some fields of the array just contain empty values, since these are
not available in pop. Note further, that just the first two params of
the method are evaluated here. $info[date] contains the date as it
appears in the msg header. The method returns false if message does
not exist.
2.6. function pop_mailboxmsginfo($stream)
Only Nmsgs and Size contain real values. All other fields are empty
and just in here for compatibility (those informations you'ld expect
in there is not retainable from pop3 servers - e.g. Recent or Unread)
2.7. function pop_sort($stream,$criteria,$reverse="",$options="")
$options is not used here. For speed optimizing this method will make
use of an array stored within the class (and temporary "out-sourced"
to a file, since else it would be lost after the page is once built),
holding all the header infos needed to fulfill the sort task. So it
only retrieves new header info when either the page is called for the
very first time that session, the count of messages reported by the
array differs from the count reported by the pop3 server (which in
this case would be the same ;), or the class variable $force_check is
set to true (which is done automatically by pop_delete, e.g.) - thus
not only saving bandwith but gaining additional speed (you will really
feel this with several hundreds of mails in your mailbox :)
______________________________________________________________________
3. Additional functionality
The msg->err Array is available as described for the smtp "send"
method.
The $msg->logout() method does remove the temp file.

View File

@ -1,117 +0,0 @@
phpgw_send.inc.php
Itzchak Rehberg <izzy@qumran.org>
v1.0, 07 August 2000
documentation of the smtp "send" class
______________________________________________________________________
Table of Contents
1. Why another mail() function?
2. Function reference
3. Additional functionality
3.1. The smail->err Array
3.2. The smail->to_res Array
3.3. The function msg()
4. Comments
4.1. reply codes according to RFC821 - short explanation
______________________________________________________________________
1. Why another mail() function?
Who ever has used php's owm (built-in) mail() function will certainly
agree to its limitations. And if I say "limitations", this is a very
neat way to describe what we really think of it - it's almost
unreliable at all. Imagine sending a mail to multiple recipients: how
will you know if a copy was sent to all of them, and not just one
address failed? Or even only one address did *not* fail? There's
almost no possibility for detailed error checking (if there's limited
possibility for it, I didn't see it). That was the point when we
decided on writing an own mail() function to use with phpGroupWare.
We call the class "send" instead of "smtp" since we plan to have nntp
sending, too, with the same structure and function naming.
______________________________________________________________________
2. Function reference
Syntax is almost the same as for the mail() function, so please refer
to php's docu on this. The difference, of course, is that smtp is a
class, so you first have to create an instance of it before you can
actually use it, e.g.:
$mymailer = new send;
$mymailer->smail($to,$subject,$message,$header);
______________________________________________________________________
3. Additional functionality
As mentioned above, the smtp class provides additional error checking
facilities. These are realized by two arrays used inside the class:
3.1. The smail->err Array
This array holds the latest information returned by the remote smtp
server. It consists of 3 parts:
smail->err["code"] is a 3 digit code according to RFC821
smail->err["msg"] is the additional message returned by the server
smail->err["desc"] may hold some more detailed information, if
available
3.2. The smail->to_res Array
This is actually an array of arrays holding information equivalent to
the smail->err array, but for each single recipient. So here you can
check for each recipient, if the server accepted him/her. There's an
additional field smail->to_res["addr"] to identify the recipient:
smail->to_res["addr"] is the concerned recipient's address
smail->to_res["code"] is a 3 digit code according to RFC821
smail->to_res["msg"] is the additional message returned by the server
smail->to_res["desc"] may hold some more detailed information, if
available
3.3. The function msg($service, $to, $subject, $body)
We use this additional function to build the message header and call
the "smail()" function right from within this. So you may want to
adapt the header information, if you want to use the class outside
the phpGroupWare environment.
______________________________________________________________________
4. Comments
the server to use is hardcoded into the smtp->smail() func using the
variable $phpgw_info - so if you want to use the function outside of
phpGroupWare, you may want to change this.
4.1. reply codes according to RFC821 - short explanation
The reply code according to RFC821 consists of 3 digits, I'll refer to
those here as xyz. X holds some general information - and by x only
one already can decide wether the code tells something good or bad. Y
tells the service affected, and z may give some non specified detail.
value | x | y
------+--------------------------------------+------------------------
0 | - | syntax
1 | accepted, confirmation required | information only
2 | action completed successfully | connection related
3 | accepted, send more (detailed) data | -
4 | not accepted, try again later | -
5 | refused, don't retry | mail system
so x=4 notifies of some temporary, x=5 of some permanent problem.
If the 3-digit-code is followed by a "-", it's a multi-line response
(last line of this response will have a blank following the 3-digit
code). Otherwise the 3-digit-code is just followed by a blank.

View File

@ -1,301 +0,0 @@
<HTML
><HEAD
><TITLE
>About this document</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="About"
HREF="p731.html"><LINK
REL="PREVIOUS"
TITLE="About"
HREF="p731.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="p731.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
>&nbsp;</TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="ABOUT"
>Chapter 29. About this document</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="about.html#AEN737"
>New versions</A
></DT
><DT
><A
HREF="about.html#AEN742"
>Comments</A
></DT
><DT
><A
HREF="about.html#AEN750"
>History</A
></DT
><DT
><A
HREF="about.html#AEN753"
>Version History</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN737"
>New versions</A
></H4
><P
> The newest version of this document can be found on our website <A
HREF="http://www.phpgroupware.org"
TARGET="_top"
> <I
CLASS="CITETITLE"
>www.phpgroupware.org</I
></A
>
as SGML source, HTML, or TEXT.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN742"
>Comments</A
></H4
><P
> Comments on this HOWTO should be directed to the phpGroupWare developers mailing list
<A
HREF="mailto:phpgroupware-developers@lists.sourceforge.net"
TARGET="_top"
> <I
CLASS="CITETITLE"
>phpgroupware-developers@lists.sourceforge.net</I
></A
>
</P
><P
> To subscribe, go to <A
HREF="http://sourceforge.net/mail/?group_id=7305"
TARGET="_top"
> <I
CLASS="CITETITLE"
>http://sourceforge.net/mail/?group_id=7305</I
></A
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN750"
>History</A
></H4
><P
> This document was started by Joseph Engo and reworked by Dan Kuykendall.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN753"
>Version History</A
></H4
><P
> Old Version
<P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Created by Jengo, wasn't in SGML HOWTO format.</P
></LI
></UL
>
</P
><P
> v1.0 (July 6, 2000)
</P
><P
> <P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Built proper SGML version.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Included the FAQ.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Other minor additions.</P
></LI
></UL
>
</P
><P
> v1.1 (September 27-29, 2000) - blinky
</P
><P
> <P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Added Testing Install section</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Added Trouble-shooting section</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Added description of application installation</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Changes for the new setup program</P
></LI
></UL
>
</P
><P
> v0.01 (October 15 , 2000) - gnrfan , Converted the HOWTO to DocBook format
</P
><P
> v.0.05 (November 5, 2000) - gnrfan , Completely revamped according to Seek's
idea and intregrated the Developers HOWTO.
</P
><P
> v 0.xx (Somewhere in the near future) - gnrfan, Trail map comming up on
how to hack and learn about coding phpGroupWare(core) and its
apps too :-).
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="p731.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>About</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p731.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Using Addressbook</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="checking Email"
HREF="checkmail.html"><LINK
REL="NEXT"
TITLE="Using Calender"
HREF="calender.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="checkmail.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="calender.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="ADDRESSBOOK"
>Chapter 10. Using Addressbook</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="checkmail.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="calender.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>checking Email</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Calender</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,168 +0,0 @@
<HTML
><HEAD
><TITLE
>Applications</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Administering phpGroupWare"
HREF="p223.html"><LINK
REL="PREVIOUS"
TITLE="Maintaining Accounts"
HREF="maintaing.html"><LINK
REL="NEXT"
TITLE="Updating"
HREF="updata.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="maintaing.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="updata.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="APP"
>Chapter 20. Applications</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="app.html#INSTALLA"
>Installing</A
></DT
><DT
><A
HREF="updata.html"
>Updating</A
></DT
></DL
></DIV
><P
> There r many applications been developed for phpGroupWare and there would be more
in the future. So insatallation of these application and as well as the future
applications has been made easy the developers. So what you have to do is to
just go to the <TT
CLASS="CLASSNAME"
>Application</TT
> section.
</P
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="INSTALLA"
>Installing</A
></H1
><P
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="maintaing.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="updata.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Maintaining Accounts</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p223.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Updating</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,694 +0,0 @@
<HTML
><HEAD
><TITLE
>phpGroupWare Docs V0.05</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="p21.html"></HEAD
><BODY
CLASS="BOOK"
><DIV
CLASS="BOOK"
><A
NAME="AEN1"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN1"
>phpGroupWare Docs V0.05</A
></H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN5"
>Joseph Engo</A
></H3
><H3
CLASS="AUTHOR"
><A
NAME="AEN12"
>Dan Kuykendall</A
></H3
><HR></DIV
><H1
><A
NAME="AEN19"
>Dedication</A
></H1
><P
> Thanks to Joesph Engo for starting phpGroupWare (at the time called webdistro) and the core of this HOWTO.
Thanks to all the developers and users who contribute to making phpGroupWare such a success.
</P
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>I. <A
HREF="p21.html"
>Introduction</A
></DT
><DD
><DL
><DT
>1. <A
HREF="what.html"
>What is phpGroupWare</A
></DT
><DT
>2. <A
HREF="why.html"
>Why should u use it</A
></DT
><DT
>3. <A
HREF="dochis.html"
>A short History</A
></DT
><DD
><DL
><DT
><A
HREF="dochis.html#AEN34"
>Copyright</A
></DT
></DL
></DD
></DL
></DD
><DT
>II. <A
HREF="p39.html"
>Installation</A
></DT
><DD
><DL
><DT
>4. <A
HREF="requirements.html"
>Requirements</A
></DT
><DD
><DL
><DT
><A
HREF="requirements.html#AEN46"
>Tested Systems</A
></DT
></DL
></DD
><DT
>5. <A
HREF="obtaining.html"
>Obtaining phpGroupWare</A
></DT
><DD
><DL
><DT
><A
HREF="obtaining.html#AEN61"
>Released Versions</A
></DT
><DT
><A
HREF="obtaining.html#AEN66"
>Developer's version from CVS</A
></DT
></DL
></DD
><DT
>6. <A
HREF="installing.html"
>Installing on Tested Systems</A
></DT
><DD
><DL
><DT
><A
HREF="installing.html#TARBALLINS"
>Installing from TarBall</A
></DT
><DT
><A
HREF="cvsins.html"
>Installing from CVS</A
></DT
><DT
><A
HREF="x85.html"
>Setup / Configure phpGroupWare</A
></DT
><DT
><A
HREF="x109.html"
>Testing the install</A
></DT
><DT
><A
HREF="x114.html"
>Installing additional applications</A
></DT
></DL
></DD
><DT
>7. <A
HREF="trobleshooting.html"
>Trouble Shooting</A
></DT
><DD
><DL
><DT
><A
HREF="trobleshooting.html#TROB1"
>I get "Unable to open mailbox" when using the email application</A
></DT
><DT
><A
HREF="trob2.html"
>It seems to hang when I try to read my mail</A
></DT
><DT
><A
HREF="trob3.html"
>When I log in I see the directory listing instead of a web page</A
></DT
><DT
><A
HREF="trob4.html"
>I get garbage that looks like code when I go to the phpGroupWare URL</A
></DT
></DL
></DD
></DL
></DD
><DT
>III. <A
HREF="p186.html"
>Using phpGroupWare</A
></DT
><DD
><DL
><DT
>8. <A
HREF="logingin.html"
>Loging into phpgw</A
></DT
><DT
>9. <A
HREF="checkmail.html"
>checking Email</A
></DT
><DT
>10. <A
HREF="addressbook.html"
>Using Addressbook</A
></DT
><DT
>11. <A
HREF="calender.html"
>Using Calender</A
></DT
><DT
>12. <A
HREF="fileman.html"
>Managing Files with file manager</A
></DT
><DT
>13. <A
HREF="headlines.html"
>Getting Headlines</A
></DT
><DT
>14. <A
HREF="hr.html"
>Human Resources</A
></DT
><DT
>15. <A
HREF="pref.html"
>Preferences</A
></DT
><DT
>16. <A
HREF="todo.html"
>Using todo</A
></DT
><DT
>17. <A
HREF="tobtick.html"
>Using Trouble ticket</A
></DT
></DL
></DD
><DT
>IV. <A
HREF="p223.html"
>Administering phpGroupWare</A
></DT
><DD
><DL
><DT
>18. <A
HREF="useracc.html"
>User Accounts</A
></DT
><DD
><DL
><DT
><A
HREF="useracc.html#CREATEU"
>Creating Accounts</A
></DT
><DT
><A
HREF="maintainu.html"
>Maintaining Accounts</A
></DT
></DL
></DD
><DT
>19. <A
HREF="groupacc.html"
>Group Accounts</A
></DT
><DD
><DL
><DT
><A
HREF="groupacc.html#CREATEG"
>Creating Accounts</A
></DT
><DT
><A
HREF="maintaing.html"
>Maintaining Accounts</A
></DT
></DL
></DD
><DT
>20. <A
HREF="app.html"
>Applications</A
></DT
><DD
><DL
><DT
><A
HREF="app.html#INSTALLA"
>Installing</A
></DT
><DT
><A
HREF="updata.html"
>Updating</A
></DT
></DL
></DD
></DL
></DD
><DT
>V. <A
HREF="p261.html"
>Developers Documentation</A
></DT
><DD
><DL
><DT
>21. <A
HREF="devintro.html"
>Introduction</A
></DT
><DD
><DL
><DT
><A
HREF="devintro.html#AEN269"
>Overview of application writing</A
></DT
><DT
><A
HREF="devintro.html#AEN272"
>What does the phpGroupWare API provide?</A
></DT
></DL
></DD
><DT
>22. <A
HREF="devguid.html"
>Guidelines</A
></DT
><DD
><DL
><DT
><A
HREF="devguid.html#AEN277"
>Requirements</A
></DT
><DT
><A
HREF="devguid.html#AEN300"
>Writing/porting your application</A
></DT
></DL
></DD
><DT
>23. <A
HREF="devinstall.html"
>Installing your application</A
></DT
><DD
><DL
><DT
><A
HREF="devinstall.html#AEN321"
>Overview</A
></DT
><DT
><A
HREF="devinstall.html#AEN324"
>Automatic features</A
></DT
><DT
><A
HREF="devinstall.html#AEN339"
>Adding files, directories and icons.</A
></DT
><DT
><A
HREF="devinstall.html#AEN343"
>Making phpGroupWare aware of your application</A
></DT
><DT
><A
HREF="devinstall.html#AEN347"
>Hooking into Administration page</A
></DT
><DT
><A
HREF="devinstall.html#AEN359"
>section_start</A
></DT
><DT
><A
HREF="devinstall.html#AEN366"
>section_end</A
></DT
><DT
><A
HREF="devinstall.html#AEN370"
>Hooking into Preferences page</A
></DT
></DL
></DD
><DT
>24. <A
HREF="devinfra.html"
>Infrastructure</A
></DT
><DD
><DL
><DT
><A
HREF="devinfra.html#AEN377"
>Overview</A
></DT
><DT
><A
HREF="devinfra.html#AEN380"
>Directory tree</A
></DT
><DT
><A
HREF="devinfra.html#AEN384"
>Translations</A
></DT
></DL
></DD
><DT
>25. <A
HREF="devapi.html"
>The API</A
></DT
><DD
><DL
><DT
><A
HREF="devapi.html#AEN389"
>Introduction</A
></DT
><DT
><A
HREF="x398.html"
>Basic functions</A
></DT
><DT
><A
HREF="x407.html"
>Application Functions</A
></DT
><DT
><A
HREF="x434.html"
>File functions</A
></DT
><DT
><A
HREF="x471.html"
>Email/NNTP Functions</A
></DT
></DL
></DD
><DT
>26. <A
HREF="devconfvar.html"
>Configuration Variables</A
></DT
><DD
><DL
><DT
><A
HREF="devconfvar.html#AEN482"
>Introduction</A
></DT
><DT
><A
HREF="devconfvar.html#AEN488"
>User information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN526"
>Group information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN530"
>Server information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN562"
>Database information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN577"
>Mail information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN598"
>NNTP information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN612"
>Application information</A
></DT
></DL
></DD
><DT
>27. <A
HREF="devlangsup.html"
>Using Language Support</A
></DT
><DD
><DL
><DT
><A
HREF="devlangsup.html#AEN632"
>Overview</A
></DT
><DT
><A
HREF="devlangsup.html#AEN635"
>How to use lang support</A
></DT
><DT
><A
HREF="devlangsup.html#AEN644"
>The lang function</A
></DT
><DT
><A
HREF="devlangsup.html#AEN668"
>Adding translation data</A
></DT
><DT
><A
HREF="devlangsup.html#AEN672"
>The lang table</A
></DT
><DT
><A
HREF="devlangsup.html#AEN695"
>lang.sql</A
></DT
><DT
><A
HREF="devlangsup.html#AEN706"
>Common return codes</A
></DT
></DL
></DD
><DT
>28. <A
HREF="devtemp.html"
>Using Templates</A
></DT
><DD
><DL
><DT
><A
HREF="devtemp.html#AEN716"
>Overview</A
></DT
><DT
><A
HREF="devtemp.html#AEN719"
>How to use templates</A
></DT
></DL
></DD
><DT
><A
HREF="devabout.html"
>About developers docs</A
></DT
><DD
><DL
><DT
><A
HREF="devabout.html#AEN725"
>About this document</A
></DT
><DT
><A
HREF="devabout.html#AEN728"
>History</A
></DT
></DL
></DD
></DL
></DD
><DT
>VII. <A
HREF="p731.html"
>About</A
></DT
><DD
><DL
><DT
>29. <A
HREF="about.html"
>About this document</A
></DT
><DD
><DL
><DT
><A
HREF="about.html#AEN737"
>New versions</A
></DT
><DT
><A
HREF="about.html#AEN742"
>Comments</A
></DT
><DT
><A
HREF="about.html#AEN750"
>History</A
></DT
><DT
><A
HREF="about.html#AEN753"
>Version History</A
></DT
></DL
></DD
></DL
></DD
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p21.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Introduction</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Using Calender</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Using Addressbook"
HREF="addressbook.html"><LINK
REL="NEXT"
TITLE="Managing Files with file manager"
HREF="fileman.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="addressbook.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="fileman.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="CALENDER"
>Chapter 11. Using Calender</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="addressbook.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="fileman.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Addressbook</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Managing Files with file manager</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>checking Email</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Loging into phpgw"
HREF="logingin.html"><LINK
REL="NEXT"
TITLE="Using Addressbook"
HREF="addressbook.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="logingin.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="addressbook.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="CHECKMAIL"
>Chapter 9. checking Email</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="logingin.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="addressbook.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Loging into phpgw</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Addressbook</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,132 +0,0 @@
<HTML
><HEAD
><TITLE
>Installing from CVS</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installing on Tested Systems"
HREF="installing.html"><LINK
REL="PREVIOUS"
TITLE="Installing on Tested Systems"
HREF="installing.html"><LINK
REL="NEXT"
TITLE="Setup / Configure phpGroupWare"
HREF="x85.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="installing.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Installing on Tested Systems</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x85.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CVSINS"
>Installing from CVS</A
></H1
><P
>Fill this Seek3r</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="installing.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x85.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installing on Tested Systems</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installing.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Setup / Configure phpGroupWare</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,177 +0,0 @@
<HTML
><HEAD
><TITLE
>About developers docs</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Using Templates"
HREF="devtemp.html"><LINK
REL="NEXT"
TITLE="About"
HREF="p731.html"></HEAD
><BODY
CLASS="ARTICLE"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devtemp.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="p731.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="DEVABOUT"
>About developers docs</A
></H1
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devabout.html#AEN725"
>About this document</A
></DT
><DT
><A
HREF="devabout.html#AEN728"
>History</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN725"
>About this document</A
></H4
><P
></P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN728"
>History</A
></H4
><P
> This document was written by Dan Kuykendall.
2000-09-25 documentation on lang(), codes, administration and preferences extension added by Steve Brown.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devtemp.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p731.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Templates</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>About</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,197 +0,0 @@
<HTML
><HEAD
><TITLE
>The API</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Infrastructure"
HREF="devinfra.html"><LINK
REL="NEXT"
TITLE="Basic functions"
HREF="x398.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devinfra.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x398.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVAPI"
>Chapter 25. The API</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devapi.html#AEN389"
>Introduction</A
></DT
><DT
><A
HREF="x398.html"
>Basic functions</A
></DT
><DT
><A
HREF="x407.html"
>Application Functions</A
></DT
><DT
><A
HREF="x434.html"
>File functions</A
></DT
><DT
><A
HREF="x471.html"
>Email/NNTP Functions</A
></DT
></DL
></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN389"
>Introduction</A
></H1
><P
> phpGroupWare attempts to provide developers with a useful API to handle common tasks.
</P
><P
> To do this we have created a multi-dimensional class $phpgw-&#62;.
</P
><P
> This allows for terrific code organization, and help developers easily identify
the file that the function is in. All the files that are part of this class are in the
<TT
CLASS="FILENAME"
>inc/core</TT
> directory
and are named to match the sub-class.
</P
><P
> Example:<TT
CLASS="CLASSNAME"
>$phpgw-&#62;send-&#62;msg()</TT
> is in the
<TT
CLASS="FILENAME"
>inc/phpgwapi/phpgw_send.inc.php</TT
> file.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devinfra.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x398.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Infrastructure</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Basic functions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,763 +0,0 @@
<HTML
><HEAD
><TITLE
>Configuration Variables</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Email/NNTP Functions"
HREF="x471.html"><LINK
REL="NEXT"
TITLE="Using Language Support"
HREF="devlangsup.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x471.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devlangsup.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVCONFVAR"
>Chapter 26. Configuration Variables</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devconfvar.html#AEN482"
>Introduction</A
></DT
><DT
><A
HREF="devconfvar.html#AEN488"
>User information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN526"
>Group information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN530"
>Server information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN562"
>Database information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN577"
>Mail information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN598"
>NNTP information</A
></DT
><DT
><A
HREF="devconfvar.html#AEN612"
>Application information</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN482"
>Introduction</A
></H4
><P
> phpGroupWare attempt to provide developers with as much information about the user, group,
server, and application configuration as possible. To do this we provide a multi-dimensional
array called <TT
CLASS="CLASSNAME"
>$phpgw_info[]</TT
>, which includes all the information about
your environment.Due to the multi-dimensional array approach. getting these values is easy.
</P
><P
> Here are some examples:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&#60;?php
// To do a hello username
echo "Hello " . $phpgw_info["user"]["fullname"];
//If username first name is John and last name is Doe, prints: 'Hello John Doe'
?&#62;
&#60;?php
// To find out the location of the imap server
echo "IMAP Server is named: " . $phpgw_info["server"]["imap_server"];
//If imap is running on localhost, prints: 'IMAP Server is named: localhost'
?&#62;</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN488"
>User information</A
></H4
><P
> <P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["userid"] = </TT
>The user ID</TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["sessionid"] = </TT
>The session ID</TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["theme"] = </TT
>Selected theme</TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["private_dir"] = </TT
>Users private dir. Use phpGroupWare core functions for access to the files.</TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["firstname"] = </TT
>Users first name</TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["lastname"] = </TT
>Users last name </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["fullname"] = </TT
>Users Full Name </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["groups"] = </TT
>Groups the user is a member of </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["app_perms"] = </TT
>If the user has access to the current application </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["lastlogin"] = </TT
>Last time the user logged in. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["lastloginfrom"] = </TT
>Where they logged in from the last time. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["lastpasswd_change"] = </TT
>Last time they changed their password. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["passwd"] = </TT
>Hashed password. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["status"] = </TT
>If the user is enabled. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["logintime"] = </TT
>Time they logged into their current session. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["session_dla"] = </TT
>Last time they did anything in their current session </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["user"]["session_ip"] = </TT
>Current IP address </TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN526"
>Group information</A
></H4
><P
> <TT
CLASS="CLASSNAME"
>$phpgw_info["group"]["group_names"] = </TT
>List of groups.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN530"
>Server information</A
></H4
><P
> <P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["server_root"] = </TT
>Main installation directory </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["include_root"] = </TT
>Location of the '<TT
CLASS="CLASSNAME"
>inc</TT
>' directory. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["temp_dir"] = </TT
>Directory that can be used for temporarily storing files </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["files_dir"] = </TT
>Directory er and group files are stored </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["common_include_dir"] = </TT
>Location of the core/shared include files. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["template_dir"] = </TT
>Active template files directory. This is defaulted by the server, and changeable by the user. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["dir_separator"] = </TT
>Allows compatibility with WindowsNT directory format, </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["encrpytkey"] = </TT
>Key used for encryption functions </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["site_title"] = </TT
>Site Title will show in the title bar of each webpage. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["webserver_url"] = </TT
>URL to phpGroupWare installation. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["hostname"] = </TT
>Name of the server phpGroupWare is installed upon. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["charset"] = </TT
>default charset, default:<TT
CLASS="CLASSNAME"
>iso-8859-1</TT
> </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["version"] = </TT
>phpGroupWare version. </TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN562"
>Database information</A
></H4
><P
> It is unlikely you will need these, because <TT
CLASS="CLASSNAME"
>$phpgw_info_db</TT
> will already be loaded as a database for you to use.
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["db_host"] = </TT
>Address of the database server. Usually this is set to localhost. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["db_name"] = </TT
>Database name. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["db_user"] = </TT
>User name. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["db_pass"] = </TT
>Password </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["db_type"] = </TT
>Type of database. Currently MySQL and PostgreSQL are supported. </TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN577"
>Mail information</A
></H4
><P
> It is unlikely you will need these, because most email needs are services thru core phpGroupWare functions.
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["mail_server"] = </TT
>Address of the IMAP server. Usually this is set to localhost. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["mail_server_type"] = </TT
>IMAP or POP3 </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["imap_server_type"] = </TT
>Cyrus or Uwash </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["imap_port"] = </TT
>This is usually 143, and should only be changed if there is a good reason. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["mail_suffix] = </TT
>This is the domain name, used to add to email address </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["mail_login_type"] = </TT
>This adds support for VMailMgr. Generally this should be set to '<TT
CLASS="CLASSNAME"
>standard</TT
>'. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["smtp_server"] = </TT
>Address of the SMTP server. Usually this is set to localhost. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["smtp_port"] = </TT
>This is usually 25, and should only be changed if there is a good reason. </TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN598"
>NNTP information</A
></H4
><P
> <P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["nntp_server"] = </TT
>Address of the NNTP server. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["nntp_port"] = </TT
>This is usually XX, and should only be changed if there is a good reason. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["nntp_sender"] = </TT
>Unknown </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["nntp_organization"] = </TT
>Unknown </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["nntp_admin"] = </TT
>Unknown </TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN612"
>Application information</A
></H4
><P
> Each application has the following information available.
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["apps"]["appname"]["title"] = </TT
>The title of the application. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["apps"]["appname"]["enabled"] = </TT
>If the application is enabled. True or False. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["app_include_dir"] = </TT
>Location of the current application include files. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["app_template_dir"] = </TT
>Location of the current application tpl files. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["app_lang_dir"] = </TT
>Location of the current lang directory. </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["app_auth"] = </TT
>If the server and current user have access to current application </TD
></TR
><TR
><TD
><TT
CLASS="CLASSNAME"
>$phpgw_info["server"]["app_current"] = </TT
>name of the current application. </TD
></TR
></TBODY
></TABLE
><P
></P
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x471.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devlangsup.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Email/NNTP Functions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Language Support</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,299 +0,0 @@
<HTML
><HEAD
><TITLE
>Guidelines</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
HREF="devintro.html"><LINK
REL="NEXT"
TITLE="Installing your application"
HREF="devinstall.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devintro.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devinstall.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVGUID"
>Chapter 22. Guidelines</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devguid.html#AEN277"
>Requirements</A
></DT
><DT
><A
HREF="devguid.html#AEN300"
>Writing/porting your application</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN277"
>Requirements</A
></H4
><P
> These guidelines must be followed for any application that wants
considered for inclusion into phpGroupWare deluxe.
</P
><P
> <P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>It must run on PHP3 and PHP4. </P
></LI
><LI
STYLE="list-style-type: disc"
><P
>SQL statements must be compatible with both MySQL
and PostgreSQL.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>It must use our default header.inc.php include.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>It must use our <TT
CLASS="CLASSNAME"
>$phpgw_link($url)</TT
> for all links
(this is for session support).</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>It must use "post" for forms.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>It must respect phpGW group rights and phpGW user permissions.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>It must use our directory structure, template support and lang
(multi-language) support.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Where possible it should run on both Unix and NT platforms.</P
></LI
></UL
>
</P
><P
> For applications that do not meet these requirements, they can be
available to users via the phpGroupWare Apps project, or whatever
means the developers decide.If you need help converting your
application to templates and our lang support, we will try to
connect you with someone to help.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN300"
>Writing/porting your application</A
></H4
><P
><I
CLASS="EMPHASIS"
>Include files</I
></P
><P
> Each PHP page you write will need to include the header.inc.php along
with a few variables.This is done by putting this at the top of each PHP page.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&#60;?php
$phpgw_info["flags"]["currentapp"] = "appname";
include("../header.inc.php");
?&#62;
</PRE
></TD
></TR
></TABLE
>
Of course change application name to fit.
This include will provide the following things:
<P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>The phpgwAPI - The phpGroupWare API will be loaded.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>The phpGW navbar will be loaded (by default, but can be disabled until a later point.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>appname/inc/functions.inc.php - This file is loaded just after the phpgwAPI
and before any HTML code is generated. This file should include all your application
specific functions..You are welcome to include any additional files you need from within
this file. </P
></LI
><LI
STYLE="list-style-type: disc"
><P
>appname/inc/header.inc.php - This file is loaded just after the system header/navbar,
and allows developers to use it for whatever they need to load.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>appname/inc/footer.inc.php - This file is loaded just before the system footer,
allowing developers to close connections and whatever else they need.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>The phpGW footer will be loaded, which closes several connections.</P
></LI
></UL
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devintro.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devinstall.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing your application</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,295 +0,0 @@
<HTML
><HEAD
><TITLE
>Infrastructure</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Installing your application"
HREF="devinstall.html"><LINK
REL="NEXT"
TITLE="The API"
HREF="devapi.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devinstall.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devapi.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVINFRA"
>Chapter 24. Infrastructure</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devinfra.html#AEN377"
>Overview</A
></DT
><DT
><A
HREF="devinfra.html#AEN380"
>Directory tree</A
></DT
><DT
><A
HREF="devinfra.html#AEN384"
>Translations</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN377"
>Overview</A
></H4
><P
> phpGroupWare attempts to provide developers with a sound directory
structure to work from. The directory layout may seem complex at first,
but after some use, you will see that it is designed to accommodate a
large number of applications and functions.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN380"
>Directory tree</A
></H4
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>.-- addressbook
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- admin
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- calendar
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- cron
|-- doc
|-- email
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | |-- preferences.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- filemanager
|-- files
| |-- groups
| `-- users
|-- inc
| |-- phpgwapi
| | |-- phpgw.inc.php
| | |-- phpgw_info.inc.php
| | |-- phpgw_common.inc.php
| | `-- etc...
| `-- templates
| |-- default
| | |-- addressbook
| | |-- admin
| | |-- calendar
| | |-- common
| | |-- email
| | |-- filemanager
| | |-- headlines
| | |-- preferences
| | |-- todo
| | `-- tts
| `-- icons
| |-- email
| |-- calendar
| `-- tts
|-- preferences
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- preferences.inc.php
| `-- templates
| `-- default
|-- themes
`-- todo
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| `-- footer.inc.php
`-- templates
`-- default
</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN384"
>Translations</A
></H4
><P
> The translations are now being done thru the database, and will be configurable
to use other mechanisms.We are completing a program called Transy, which will
provide developers/translators a nice GUI for building and updating translations.
In the mean time you will need to create a SQL script yourself and name it lang.sql.
You can copy the one in doc/lang.sql and use it as a template.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devinstall.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devapi.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installing your application</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The API</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,436 +0,0 @@
<HTML
><HEAD
><TITLE
>Installing your application</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Guidelines"
HREF="devguid.html"><LINK
REL="NEXT"
TITLE="Infrastructure"
HREF="devinfra.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devguid.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devinfra.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVINSTALL"
>Chapter 23. Installing your application</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devinstall.html#AEN321"
>Overview</A
></DT
><DT
><A
HREF="devinstall.html#AEN324"
>Automatic features</A
></DT
><DT
><A
HREF="devinstall.html#AEN339"
>Adding files, directories and icons.</A
></DT
><DT
><A
HREF="devinstall.html#AEN343"
>Making phpGroupWare aware of your application</A
></DT
><DT
><A
HREF="devinstall.html#AEN347"
>Hooking into Administration page</A
></DT
><DT
><A
HREF="devinstall.html#AEN359"
>section_start</A
></DT
><DT
><A
HREF="devinstall.html#AEN366"
>section_end</A
></DT
><DT
><A
HREF="devinstall.html#AEN370"
>Hooking into Preferences page</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN321"
>Overview</A
></H4
><P
>It is fairly simple to add and delete applications to/from phpGroupWare.</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN324"
>Automatic features</A
></H4
><P
> To make things easy for developers we go ahead and load the following files.
<P
></P
><UL
><LI
><P
> <TT
CLASS="FILENAME"
>appname/inc/functions.inc.php</TT
> - This file should include
all your application specific functions.</P
></LI
><LI
><P
> <TT
CLASS="FILENAME"
>appname/inc/header.inc.php</TT
> - This file is loaded by
<TT
CLASS="CLASSNAME"
>$phpgw-&#62;common-&#62;header</TT
> just after the system header/navbar,
and allows developers to use it for whatever they need to load.</P
></LI
><LI
><P
> <TT
CLASS="FILENAME"
>appname/inc/footer.inc.php</TT
> - This file is loaded by
<TT
CLASS="CLASSNAME"
>$phpgw-&#62;common-&#62;footer</TT
> just before the system footer,
allowing developers to close connections and whatever else they need.</P
></LI
></UL
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN339"
>Adding files, directories and icons.</A
></H4
><P
> You will need to create the following directories for your code
(replace 'appname' with your application name)
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> `-- appname
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| |-- footer.inc.php
| |-- preferences.inc.php
| `-- admin.inc.php
`-- templates
`-- default
</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN343"
>Making phpGroupWare aware of your application</A
></H4
><P
> To make the application aware of your application, add your application details to the applications table. This can be done via the GUI administration screen, or via a SQL script.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> insert into applications (app_name, app_title, app_enabled) values ('appname', 'The App name', 1);</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN347"
>Hooking into Administration page</A
></H4
><P
> When a user goes to the Administration page, it stats appname/inc/admin.inc.php
for each application that is enabled, in alphabetical order of application title.
If the file exists, it is include()d in the hopes it will display a selection of
links to configure that application.
Simple Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&#60;?php
$img = "/" . $appname . "/images/navbar.gif";
section_start("My Application",$img);
echo "&#60;a HREF=\"" . $phpgw-&#62;link("myAdminPage.php") . "\"&#62;";
echo lang("Change myApp settings") . "&#60;/a&#62;";
section_end();
?&#62;
</PRE
></TD
></TR
></TABLE
>
Look at headlines/inc/admin.inc.php and admin/inc/admin.inc.php for more examples.
Things to note:
<P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Links are relative to the <TT
CLASS="FILENAME"
>admin/index.php</TT
> file, not your
application's base directory. (so use <TT
CLASS="CLASSNAME"
>$appname</TT
> in your
<TT
CLASS="CLASSNAME"
>link()</TT
> calls)</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>The file is brought in with include() so be careful to not pollute the name-space
too much</P
></LI
></UL
>
The standard $phpgw and $phpgw_info variables are in-scope, as is $appname
which corresponds to the application name in the path.
There are 2 functions to coordinate the display of each application's links,
section_start() and section_end()
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN359"
>section_start</A
></H4
><P
> <TT
CLASS="CLASSNAME"
>section_start($title,$icon_url)</TT
>
starts the section for your application. <TT
CLASS="CLASSNAME"
>$title</TT
> is passed through
<TT
CLASS="CLASSNAME"
>lang()</TT
>
for you. <TT
CLASS="CLASSNAME"
>$icon_url</TT
> should be page-relative to admin/index.php or
an absolute URL.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN366"
>section_end</A
></H4
><P
> <TT
CLASS="CLASSNAME"
>section_end()</TT
> closes the section that was started with section_start().
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN370"
>Hooking into Preferences page</A
></H4
><P
> The mechanism to hook into the preferences page is identical to the one used to
hook into the administration page, however it looks for
<TT
CLASS="FILENAME"
>appname/inc/preferences.inc.php</TT
> instead of
<TT
CLASS="FILENAME"
>appname/inc/admin.inc.php</TT
>. The same functions and variables are defined.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devguid.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devinfra.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Guidelines</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Infrastructure</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,185 +0,0 @@
<HTML
><HEAD
><TITLE
>Introduction</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="NEXT"
TITLE="Guidelines"
HREF="devguid.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="p261.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devguid.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVINTRO"
>Chapter 21. Introduction</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devintro.html#AEN269"
>Overview of application writing</A
></DT
><DT
><A
HREF="devintro.html#AEN272"
>What does the phpGroupWare API provide?</A
></DT
></DL
></DIV
><P
> phpGroupWare is a web based groupware application framework (API),
for writing applications. Integrated applications such as email,
calendar, todo list, address book, and file manager are included.
</P
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN269"
>Overview of application writing</A
></H4
><P
> We have attempted to make writing application for phpGroupWare as
painless as possible. We hope any pain and suffering is cause by making
your application work, but not dealing with phpGroupWare itself.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN272"
>What does the phpGroupWare API provide?</A
></H4
><P
> The phpGroupWare API handles session management, user/group management,
has support for multiple databases, using the PHPLIB database abstraction
method, we support templates using the PHPLIB Templates class, a file
system interface, and even a network i/o interface. On top of these
standard functions, phpGroupWare provides several functions to give
you the information you need about the users environment, and to properly
plug into phpGroupWare.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="p261.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devguid.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Developers Documentation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Guidelines</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,491 +0,0 @@
<HTML
><HEAD
><TITLE
>Using Language Support</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Configuration Variables"
HREF="devconfvar.html"><LINK
REL="NEXT"
TITLE="Using Templates"
HREF="devtemp.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devconfvar.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devtemp.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVLANGSUP"
>Chapter 27. Using Language Support</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devlangsup.html#AEN632"
>Overview</A
></DT
><DT
><A
HREF="devlangsup.html#AEN635"
>How to use lang support</A
></DT
><DT
><A
HREF="devlangsup.html#AEN644"
>The lang function</A
></DT
><DT
><A
HREF="devlangsup.html#AEN668"
>Adding translation data</A
></DT
><DT
><A
HREF="devlangsup.html#AEN672"
>The lang table</A
></DT
><DT
><A
HREF="devlangsup.html#AEN695"
>lang.sql</A
></DT
><DT
><A
HREF="devlangsup.html#AEN706"
>Common return codes</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN632"
>Overview</A
></H4
><P
> phpGroupWare is built using a multi-language support scheme. This means the pages can be
translated to other languages very easily. Translations of text strings are
stored in the phpGroupWare database, and can be modified by the phpGroupWare
administrator.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN635"
>How to use lang support</A
></H4
><P
> The <TT
CLASS="CLASSNAME"
>lang()</TT
> function is your application's interface to phpGroupWare's
internationalization support.
While developing your application, just wrap all your text output with calls to
lang(), as in the following code:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> $x = 42;
echo lang("The counter is %1",$x)."&#60;br&#62;";</PRE
></TD
></TR
></TABLE
>
This will attempt to translate "The counter is %1", and return a translated version
based on the current application and language in use. Note how the position that
<TT
CLASS="CLASSNAME"
>$x</TT
> will end up is controlled by the format string, <I
CLASS="EMPHASIS"
>not</I
> by
building up the string in your code. This allows your application to be translated
to languages where the actual number is not placed at the end of the string.
When a translation is not found, the original text will be returned with a * after
the string. This makes it easy to develop your application, then go back and
add missing translations (identified by the *) later.
Without a specific translation in the lang table, the above code will print:
<TT
CLASS="CLASSNAME"
>The counter is 42*&#60;br&#62;</TT
>
If the current user speaks Italian, they string returned may instead be:
<TT
CLASS="CLASSNAME"
>il contatore è 42&#60;br&#62;</TT
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN644"
>The lang function</A
></H4
><P
> <TT
CLASS="CLASSNAME"
>lang($key, $m1="", $m2="", $m3="", $m4="", $m5="",
$m6="", $m7="", $m8="", $m9="", $m10="")
</TT
>
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>$key</DT
><DD
><P
>is the string to translate and may contain replacement directives of the form <TT
CLASS="CLASSNAME"
>%n</TT
>. </P
></DD
><DT
>$m1</DT
><DD
><P
> is the first replacement value or may be an array of replacement values (in which case $m2 and above are ignored). </P
></DD
><DT
>$m2</DT
><DD
><P
>- $m10/ the 2nd through 10th replacement values if $m1 is not an array. </P
></DD
></DL
></DIV
>
The database is searched for rows with a <TT
CLASS="CLASSNAME"
>lang.message_id</TT
> that matches <TT
CLASS="CLASSNAME"
>$key</TT
>.
If a translation is not found, the original <TT
CLASS="CLASSNAME"
>$key</TT
> is used. The translation engine then replaces
all tokens of the form <TT
CLASS="CLASSNAME"
>%N</TT
> with the Nth parameter (either <TT
CLASS="CLASSNAME"
>$m1[N]</TT
> or <TT
CLASS="CLASSNAME"
>$mN</TT
>).
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN668"
>Adding translation data</A
></H4
><P
> An application called <I
CLASS="EMPHASIS"
>Transy</I
> is being developed to make this easier, until then you can create
the translation data manually.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN672"
>The lang table</A
></H4
><P
> The translation class uses the lang table for all translations.
We are concerned with 4 of the columns to create a translation:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>message_id</DT
><DD
><P
> The key to identify the message (the <TT
CLASS="CLASSNAME"
>$key</TT
> passed
to the <TT
CLASS="CLASSNAME"
>lang()</TT
> function). This is written in English.
</P
></DD
><DT
>app_name</DT
><DD
><P
> The application the translation applies to, or
<TT
CLASS="CLASSNAME"
>common</TT
> if it is common across multiple applications.
</P
></DD
><DT
>lang</DT
><DD
><P
>The code for the language the translation is in. </P
></DD
><DT
>content</DT
><DD
><P
>The translated string. </P
></DD
></DL
></DIV
>
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN695"
>lang.sql</A
></H4
><P
> Currently all applications, and the core phpGroupWare source tree
have a <TT
CLASS="CLASSNAME"
>lang.sql</TT
> file. This is the place to add translation
data. Just add lines of the form:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>REPLACE INTO lang (message_id, app_name, lang, content)
VALUES( 'account has been deleted','common','en','Account has been deleted');</PRE
></TD
></TR
></TABLE
>
translating the <TT
CLASS="CLASSNAME"
>content</TT
> to reflect the <TT
CLASS="CLASSNAME"
>message_id</TT
> string in the <TT
CLASS="CLASSNAME"
>lang</TT
> language.
If the string is specific to your application, put your application name in for <TT
CLASS="CLASSNAME"
>app_name</TT
>
otherwise use the name <TT
CLASS="CLASSNAME"
>common</TT
>. The <TT
CLASS="CLASSNAME"
>message_id</TT
> should be in lower case for a small
increase in speed.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN706"
>Common return codes</A
></H4
><P
> If you browse through the phpGroupWare sources, you may notice
a pattern to the return codes used in the higher-level functions.
The codes used are partially documented in the <TT
CLASS="CLASSNAME"
>doc/developers/CODES</TT
>
file.
Codes are used as a simple way to communicate common error and progress
conditions back to the user. They are mapped to a text string through the
<TT
CLASS="CLASSNAME"
>check_code()</TT
> function, which passes the strings through
<TT
CLASS="CLASSNAME"
>lang()</TT
> before returning.
For example, calling
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>echo check_code(13);</PRE
></TD
></TR
></TABLE
>
Would print
<TT
CLASS="CLASSNAME"
>Your message has been sent</TT
>
translated into the current language.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devconfvar.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devtemp.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Configuration Variables</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Templates</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,175 +0,0 @@
<HTML
><HEAD
><TITLE
>Using Templates</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Developers Documentation"
HREF="p261.html"><LINK
REL="PREVIOUS"
TITLE="Using Language Support"
HREF="devlangsup.html"><LINK
REL="NEXT"
TITLE="About developers docs"
HREF="devabout.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devlangsup.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devabout.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEVTEMP"
>Chapter 28. Using Templates</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="devtemp.html#AEN716"
>Overview</A
></DT
><DT
><A
HREF="devtemp.html#AEN719"
>How to use templates</A
></DT
></DL
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN716"
>Overview</A
></H4
><P
> phpGroupWare is built using a templates based design. This means the display pages, stored in tpl files, can be translated to other languages, made to look completely different.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN719"
>How to use templates</A
></H4
><P
> Some instructions on using templates.
</P
><P
> For Further info read the PHPLIBs documentation for their template class.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devlangsup.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devabout.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Language Support</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p261.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>About developers docs</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,20 +0,0 @@
.BOOK .TITLE { text-align: center }
.BOOK .SUBTITLE { text-align: center }
.BOOK .CORPAUTHOR { text-align: center }
.BOOK .AUTHOR { text-align: center }
.BOOK .AFFILIATION { text-align: center }
.BOOK .EDITEDBY { text-align: center }
.BOOK .EDITOR { text-align: center }
.BOOK .GRAPHIC { text-align: center }
.ARTICLE .TITLE { text-align: center }
.ARTICLE .SUBTITLE { text-align: center }
.ARTICLE .CORPAUTHOR { text-align: center }
.ARTICLE .AUTHOR { text-align: center }
.ARTICLE .AFFILIATION { text-align: center }
.ARTICLE .EDITEDBY { text-align: center }
.ARTICLE .EDITOR { text-align: center }
.ARTICLE .GRAPHIC { text-align: center }
.ARTICLE .ABSTRACT { margin-left: 0.5in;
margin-right: 0.5in;
font-style: italic }

View File

@ -1,158 +0,0 @@
<HTML
><HEAD
><TITLE
>A short History</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Introduction"
HREF="p21.html"><LINK
REL="PREVIOUS"
TITLE="Why should u use it"
HREF="why.html"><LINK
REL="NEXT"
TITLE="Installation"
HREF="p39.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="why.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="p39.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DOCHIS"
>Chapter 3. A short History</A
></H1
><P
> This document was started by Joseph Engo and reworked by Dan Kuykendall and converted to do
DocBook By Powell Molleti.
</P
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN34"
>Copyright</A
></H4
><P
> Copyright (c) Dan Kuykendall.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation
A copy of the license is available at
<A
HREF="http://www.gnu.org/copyleft/fdl.txt"
TARGET="_top"
> <I
CLASS="CITETITLE"
>GNU Free Documentation License Making TeXWork</I
>
</A
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="why.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p39.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Why should u use it</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p21.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Managing Files with file manager</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Using Calender"
HREF="calender.html"><LINK
REL="NEXT"
TITLE="Getting Headlines"
HREF="headlines.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="calender.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="headlines.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="FILEMAN"
>Chapter 12. Managing Files with file manager</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="calender.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="headlines.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Calender</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Getting Headlines</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,172 +0,0 @@
<HTML
><HEAD
><TITLE
>Group Accounts</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Administering phpGroupWare"
HREF="p223.html"><LINK
REL="PREVIOUS"
TITLE="Maintaining Accounts"
HREF="maintainu.html"><LINK
REL="NEXT"
TITLE="Maintaining Accounts"
HREF="maintaing.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="maintainu.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="maintaing.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="GROUPACC"
>Chapter 19. Group Accounts</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="groupacc.html#CREATEG"
>Creating Accounts</A
></DT
><DT
><A
HREF="maintaing.html"
>Maintaining Accounts</A
></DT
></DL
></DIV
><P
> Enter the <TT
CLASS="CLASSNAME"
>User Group</TT
> section. You would see
the current user groups.
</P
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CREATEG"
>Creating Accounts</A
></H1
><P
> Click the <TT
CLASS="CLASSNAME"
>Add</TT
> button. Now fill the form by
selecting the existing users and the persmissions you want to include
in the new group.And you r done.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="maintainu.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="maintaing.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Maintaining Accounts</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p223.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Maintaining Accounts</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Getting Headlines</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Managing Files with file manager"
HREF="fileman.html"><LINK
REL="NEXT"
TITLE="Human Resources"
HREF="hr.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="fileman.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="hr.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="HEADLINES"
>Chapter 13. Getting Headlines</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="fileman.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="hr.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Managing Files with file manager</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Human Resources</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Human Resources</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Getting Headlines"
HREF="headlines.html"><LINK
REL="NEXT"
TITLE="Preferences"
HREF="pref.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="headlines.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="pref.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="HR"
>Chapter 14. Human Resources</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="headlines.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="pref.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Getting Headlines</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Preferences</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,186 +0,0 @@
<HTML
><HEAD
><TITLE
>Installing on Tested Systems</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="p39.html"><LINK
REL="PREVIOUS"
TITLE="Obtaining phpGroupWare"
HREF="obtaining.html"><LINK
REL="NEXT"
TITLE="Installing from CVS"
HREF="cvsins.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="obtaining.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cvsins.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="INSTALLING"
>Chapter 6. Installing on Tested Systems</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="installing.html#TARBALLINS"
>Installing from TarBall</A
></DT
><DT
><A
HREF="cvsins.html"
>Installing from CVS</A
></DT
><DT
><A
HREF="x85.html"
>Setup / Configure phpGroupWare</A
></DT
><DT
><A
HREF="x109.html"
>Testing the install</A
></DT
><DT
><A
HREF="x114.html"
>Installing additional applications</A
></DT
></DL
></DIV
><P
> After you have met the system requirements, You can install
it from the TarBall or you can get it directly from CVS.
</P
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TARBALLINS"
>Installing from TarBall</A
></H1
><P
>Installing from a TarBall is very easy. The files should be
installed in the webserver directory. So all you need to
do is unpack the tar ball and copy the whole directory to
the webserver directory (eg. /home/httpd/html for default
apache configuration in many linux distros).You may
have to get required permissions to do this. Contact
your system administrator if you dont have the permission
to write to your webserver directory
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="obtaining.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="cvsins.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Obtaining phpGroupWare</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p39.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing from CVS</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,144 +0,0 @@
<HTML
><HEAD
><TITLE
>Loging into phpgw</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="NEXT"
TITLE="checking Email"
HREF="checkmail.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="p186.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="checkmail.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="LOGINGIN"
>Chapter 8. Loging into phpgw</A
></H1
><P
> After your setup you can point your browser to <TT
CLASS="FILENAME"
>index.php</TT
> in the
installation directory. If the set up was right you can login with user name <TT
CLASS="CLASSNAME"
>demo
</TT
> and the password is <TT
CLASS="CLASSNAME"
>1234</TT
>&#62; Now it is recommended to
create a new user with administrative privileges and delete the old one.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="p186.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="checkmail.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using phpGroupWare</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>checking Email</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,134 +0,0 @@
<HTML
><HEAD
><TITLE
>Maintaining Accounts</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Group Accounts"
HREF="groupacc.html"><LINK
REL="PREVIOUS"
TITLE="Group Accounts"
HREF="groupacc.html"><LINK
REL="NEXT"
TITLE="Applications"
HREF="app.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="groupacc.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 19. Group Accounts</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="app.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="MAINTAING"
>Maintaining Accounts</A
></H1
><P
> One has always a option to view and edit the groups when ever
needed
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="groupacc.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="app.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Group Accounts</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="groupacc.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Applications</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,140 +0,0 @@
<HTML
><HEAD
><TITLE
>Maintaining Accounts</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="User Accounts"
HREF="useracc.html"><LINK
REL="PREVIOUS"
TITLE="User Accounts"
HREF="useracc.html"><LINK
REL="NEXT"
TITLE="Group Accounts"
HREF="groupacc.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="useracc.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 18. User Accounts</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="groupacc.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="MAINTAINU"
>Maintaining Accounts</A
></H1
><P
> Maintaining user accounts is also very easy. Just go to the
<TT
CLASS="CLASSNAME"
>User Accounts</TT
> section . Now you can see
the list of the current users and there logins. You
can now either view their ops or can even edit them.
FIXMEAGIN: need i say anything more :-&#62;.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="useracc.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="groupacc.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>User Accounts</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="useracc.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Group Accounts</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,218 +0,0 @@
<HTML
><HEAD
><TITLE
>Obtaining phpGroupWare</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="p39.html"><LINK
REL="PREVIOUS"
TITLE="Requirements"
HREF="requirements.html"><LINK
REL="NEXT"
TITLE="Installing on Tested Systems"
HREF="installing.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="requirements.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="installing.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="OBTAINING"
>Chapter 5. Obtaining phpGroupWare</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="obtaining.html#AEN61"
>Released Versions</A
></DT
><DT
><A
HREF="obtaining.html#AEN66"
>Developer's version from CVS</A
></DT
></DL
></DIV
><P
> While we are still in the Beta phase of phpGroupWare, you may
want to track the CVS copy as closely as possible. The released
versions are more stable, but often contain bugs that have been fixed
in the CVS version.
</P
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN61"
>Released Versions</A
></H4
><P
> The downloads section on the <A
HREF="http://www.phpgroupware.org/"
TARGET="_top"
><I
CLASS="CITETITLE"
>site</I
></A
>
contains links to the most recent releases, and several mirror sites
for the releases.
</P
></DIV
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN66"
>Developer's version from CVS</A
></H4
><P
> If you have never used CVS, you may want to read through the doucmentation
found at <A
HREF="http://www.cvshome.org/"
TARGET="_top"
><I
CLASS="CITETITLE"
>www.cvshome.org</I
>
</A
>.
The CVS pages for the core and apps projects can be found at
<A
HREF="http://sourceforge.net/cvs/?group_id=7305"
TARGET="_top"
> <I
CLASS="CITETITLE"
>phpGroupWare Core CVS</I
></A
>
, and <A
HREF="http://sourceforge.net/cvs/?group_id=9787"
TARGET="_top"
> <I
CLASS="CITETITLE"
>phpGroupWare Apps CVS</I
></A
>.
Follow the directions for <I
CLASS="EMPHASIS"
>Anonymous CVS access</I
> and you should
have the most recent development copy of phpGroupWare in no time.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="requirements.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="installing.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Requirements</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p39.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing on Tested Systems</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,196 +0,0 @@
<HTML
><HEAD
><TITLE
>Using phpGroupWare</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="I get garbage that looks like code when I go to the phpGroupWare URL"
HREF="trob4.html"><LINK
REL="NEXT"
TITLE="Loging into phpgw"
HREF="logingin.html"></HEAD
><BODY
CLASS="PART"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trob4.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="logingin.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="PART"
><A
NAME="AEN186"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
>III. Using phpGroupWare</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN188"
></A
><P
> Using phpGroupWare is a cake walk , thats what people say :-). Reading this doc would
definitely give a head start. If u ever comea cross any problem please report to
</P
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>8. <A
HREF="logingin.html"
>Loging into phpgw</A
></DT
><DT
>9. <A
HREF="checkmail.html"
>checking Email</A
></DT
><DT
>10. <A
HREF="addressbook.html"
>Using Addressbook</A
></DT
><DT
>11. <A
HREF="calender.html"
>Using Calender</A
></DT
><DT
>12. <A
HREF="fileman.html"
>Managing Files with file manager</A
></DT
><DT
>13. <A
HREF="headlines.html"
>Getting Headlines</A
></DT
><DT
>14. <A
HREF="hr.html"
>Human Resources</A
></DT
><DT
>15. <A
HREF="pref.html"
>Preferences</A
></DT
><DT
>16. <A
HREF="todo.html"
>Using todo</A
></DT
><DT
>17. <A
HREF="tobtick.html"
>Using Trouble ticket</A
></DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="trob4.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="logingin.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>I get garbage that looks like code when I go to the phpGroupWare URL</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Loging into phpgw</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,161 +0,0 @@
<HTML
><HEAD
><TITLE
>Introduction</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="NEXT"
TITLE="What is phpGroupWare"
HREF="what.html"></HEAD
><BODY
CLASS="PART"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="book1.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="what.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="PART"
><A
NAME="AEN21"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
>I. Introduction</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN23"
></A
><P
> do yo have questions on using phpGroupWare , like What? Why? What for? What's in for me?
then you should seriously read this doc :-).
</P
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="what.html"
>What is phpGroupWare</A
></DT
><DT
>2. <A
HREF="why.html"
>Why should u use it</A
></DT
><DT
>3. <A
HREF="dochis.html"
>A short History</A
></DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="book1.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="what.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>phpGroupWare Docs V0.05</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>What is phpGroupWare</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,162 +0,0 @@
<HTML
><HEAD
><TITLE
>Administering phpGroupWare</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Using Trouble ticket"
HREF="tobtick.html"><LINK
REL="NEXT"
TITLE="User Accounts"
HREF="useracc.html"></HEAD
><BODY
CLASS="PART"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="tobtick.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="useracc.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="PART"
><A
NAME="AEN223"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
>IV. Administering phpGroupWare</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN225"
></A
><P
> To administer phpGroupWare you need not be a PHP hacker. All you need to do is again just
point and click. And hey just a bit of typing too. :). You need to login to phpGroupWare
and click the Administration image.
</P
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>18. <A
HREF="useracc.html"
>User Accounts</A
></DT
><DT
>19. <A
HREF="groupacc.html"
>Group Accounts</A
></DT
><DT
>20. <A
HREF="app.html"
>Applications</A
></DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="tobtick.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="useracc.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Trouble ticket</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>User Accounts</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,194 +0,0 @@
<HTML
><HEAD
><TITLE
>Developers Documentation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Updating"
HREF="updata.html"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="devintro.html"></HEAD
><BODY
CLASS="PART"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="updata.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devintro.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="PART"
><A
NAME="AEN261"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
>V. Developers Documentation</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN263"
></A
><P
> Dan Kuykendall &#60;dan@kuykendall.org&#62;
</P
><P
> This document explains phpGroupWare's infrastructure and API, along with
what is required to integrate applications into it.
</P
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>21. <A
HREF="devintro.html"
>Introduction</A
></DT
><DT
>22. <A
HREF="devguid.html"
>Guidelines</A
></DT
><DT
>23. <A
HREF="devinstall.html"
>Installing your application</A
></DT
><DT
>24. <A
HREF="devinfra.html"
>Infrastructure</A
></DT
><DT
>25. <A
HREF="devapi.html"
>The API</A
></DT
><DT
>26. <A
HREF="devconfvar.html"
>Configuration Variables</A
></DT
><DT
>27. <A
HREF="devlangsup.html"
>Using Language Support</A
></DT
><DT
>28. <A
HREF="devtemp.html"
>Using Templates</A
></DT
><DT
><A
HREF="devabout.html"
>About developers docs</A
></DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="updata.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devintro.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Updating</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Introduction</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,167 +0,0 @@
<HTML
><HEAD
><TITLE
>Installation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="A short History"
HREF="dochis.html"><LINK
REL="NEXT"
TITLE="Requirements"
HREF="requirements.html"></HEAD
><BODY
CLASS="PART"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dochis.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="requirements.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="PART"
><A
NAME="AEN39"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
>II. Installation</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN41"
></A
><P
> Installation and Configuration of phpGroupWare has never been easy. Just point and click , yeah
its very easy :-). Since this is still a beta version we do expect some bugs . By carefully reading
this document you can easly install phpGroupWare.
</P
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>4. <A
HREF="requirements.html"
>Requirements</A
></DT
><DT
>5. <A
HREF="obtaining.html"
>Obtaining phpGroupWare</A
></DT
><DT
>6. <A
HREF="installing.html"
>Installing on Tested Systems</A
></DT
><DT
>7. <A
HREF="trobleshooting.html"
>Trouble Shooting</A
></DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dochis.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="requirements.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>A short History</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Requirements</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,149 +0,0 @@
<HTML
><HEAD
><TITLE
>About</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="About developers docs"
HREF="devabout.html"><LINK
REL="NEXT"
TITLE="About this document"
HREF="about.html"></HEAD
><BODY
CLASS="PART"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devabout.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="about.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="PART"
><A
NAME="AEN731"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
>VII. About</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN733"
></A
><P
></P
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>29. <A
HREF="about.html"
>About this document</A
></DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devabout.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="about.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>About developers docs</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>About this document</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Preferences</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Human Resources"
HREF="hr.html"><LINK
REL="NEXT"
TITLE="Using todo"
HREF="todo.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="hr.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="todo.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="PREF"
>Chapter 15. Preferences</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="hr.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="todo.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Human Resources</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using todo</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,173 +0,0 @@
<HTML
><HEAD
><TITLE
>Requirements</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="p39.html"><LINK
REL="PREVIOUS"
TITLE="Installation"
HREF="p39.html"><LINK
REL="NEXT"
TITLE="Obtaining phpGroupWare"
HREF="obtaining.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="p39.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="obtaining.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="REQUIREMENTS"
>Chapter 4. Requirements</A
></H1
><P
> You will need PHP compiled and installed on your system. You will also need MySQL or PostgreSQL setup.
If you are planning on using the email system, you will need to have an IMAP server installed and IMAP support compiled into PHP.
You can have it installed as an Apache module or command line version, the Apache module is preferred.
We will assume that you are running on a Linux or other Unix system for these steps.
Windows is supported, but there is no documentation for it currently.
</P
><DIV
CLASS="SIMPLESECT"
><H4
CLASS="SIMPLESECT"
><A
NAME="AEN46"
>Tested Systems</A
></H4
><P
> On Linux 2.2.x
<P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>PHP 3.0.15+ / PHP 4.0.x</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Apache 1.3.x</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>MySQL 3.22.25 or PostgreSQL 7.0.x</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Courier-IMAP 0.33+ and/or qmail 1.03 for POP3 access</P
></LI
></UL
>
We have reports of it working on Windows NT and OS/2, and using Oracle as the database.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="p39.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="obtaining.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p39.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Obtaining phpGroupWare</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Using Trouble ticket</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Using todo"
HREF="todo.html"><LINK
REL="NEXT"
TITLE="Administering phpGroupWare"
HREF="p223.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="todo.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="p223.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="TOBTICK"
>Chapter 17. Using Trouble ticket</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="todo.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p223.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using todo</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Administering phpGroupWare</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,131 +0,0 @@
<HTML
><HEAD
><TITLE
>Using todo</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Using phpGroupWare"
HREF="p186.html"><LINK
REL="PREVIOUS"
TITLE="Preferences"
HREF="pref.html"><LINK
REL="NEXT"
TITLE="Using Trouble ticket"
HREF="tobtick.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="pref.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="tobtick.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="TODO"
>Chapter 16. Using todo</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="pref.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="tobtick.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Preferences</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p186.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Trouble ticket</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,169 +0,0 @@
<HTML
><HEAD
><TITLE
>It seems to hang when I try to read my mail</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Trouble Shooting"
HREF="trobleshooting.html"><LINK
REL="PREVIOUS"
TITLE="Trouble Shooting"
HREF="trobleshooting.html"><LINK
REL="NEXT"
TITLE="When I log in I see the directory listing instead of a web page"
HREF="trob3.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trobleshooting.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 7. Trouble Shooting</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trob3.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TROB2"
>It seems to hang when I try to read my mail</A
></H1
><P
> This is often a problem if you are using POP3 instead of IMAP, and you have
more than a few hundred messages in your mailbox.
</P
><P
> By default, php is set up to time-out a request that takes over 30 seconds
to complete. phpGroupWare must do a lot of work the first time your POP3 mailbox
is opened, and every time you get new mail, which may take more than the 30
second timeout.
</P
><P
> You can either clean up your mailbox with another mail program, or
add the line
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>set_time_limit(0);
</PRE
></TD
></TR
></TABLE
>
to the top of the inc/phpgwapi/phpgw_msg_pop3.inc.php file, just before
the line <TT
CLASS="CLASSNAME"
>class msg extends msg_common</TT
>
</P
><P
> If you choose to edit the file, be patient when loading a large POP3
mailbox - the author tested against a mailbox with 2500 messages in it,
but it took 15 minutes to load the page. We highly suggest you use IMAP
if you expect to have more than a few hundred messages in your mailbox.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="trobleshooting.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trob3.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Trouble Shooting</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="trobleshooting.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>When I log in I see the directory listing instead of a web page</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,155 +0,0 @@
<HTML
><HEAD
><TITLE
>When I log in I see the directory listing instead of a web page</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Trouble Shooting"
HREF="trobleshooting.html"><LINK
REL="PREVIOUS"
TITLE="It seems to hang when I try to read my mail"
HREF="trob2.html"><LINK
REL="NEXT"
TITLE="I get garbage that looks like code when I go to the phpGroupWare URL"
HREF="trob4.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trob2.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 7. Trouble Shooting</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trob4.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TROB3"
>When I log in I see the directory listing instead of a web page</A
></H1
><P
>You are using Apache, this often means you need to add
<TT
CLASS="CLASSNAME"
>.php</TT
> to the <TT
CLASS="CLASSNAME"
>DirectoryIndex</TT
> line in your httpd.conf file.
For example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>DirectoryIndex index.php index.php3 index.html index.htm index.cgi
</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="trob2.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trob4.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>It seems to hang when I try to read my mail</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="trobleshooting.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>I get garbage that looks like code when I go to the phpGroupWare URL</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,167 +0,0 @@
<HTML
><HEAD
><TITLE
>I get garbage that looks like code when I go to the phpGroupWare URL</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Trouble Shooting"
HREF="trobleshooting.html"><LINK
REL="PREVIOUS"
TITLE="When I log in I see the directory listing instead of a web page"
HREF="trob3.html"><LINK
REL="NEXT"
TITLE="Using phpGroupWare"
HREF="p186.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trob3.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 7. Trouble Shooting</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="p186.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TROB4"
>I get garbage that looks like code when I go to the phpGroupWare URL</A
></H1
><P
> This is often because you have php3 installed,
which does not map <TT
CLASS="CLASSNAME"
>.php</TT
> to the PHP engine.
For PHP3:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>AddType application/x-httpd-php3 .php3 .php
</PRE
></TD
></TR
></TABLE
>
For PHP4:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>AddType application/x-httpd-php .php3 .php
</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="trob3.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p186.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>When I log in I see the directory listing instead of a web page</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="trobleshooting.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using phpGroupWare</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,220 +0,0 @@
<HTML
><HEAD
><TITLE
>Trouble Shooting</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installation"
HREF="p39.html"><LINK
REL="PREVIOUS"
TITLE="Installing additional applications"
HREF="x114.html"><LINK
REL="NEXT"
TITLE="It seems to hang when I try to read my mail"
HREF="trob2.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x114.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trob2.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="TROBLESHOOTING"
>Chapter 7. Trouble Shooting</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="trobleshooting.html#TROB1"
>I get "Unable to open mailbox" when using the email application</A
></DT
><DT
><A
HREF="trob2.html"
>It seems to hang when I try to read my mail</A
></DT
><DT
><A
HREF="trob3.html"
>When I log in I see the directory listing instead of a web page</A
></DT
><DT
><A
HREF="trob4.html"
>I get garbage that looks like code when I go to the phpGroupWare URL</A
></DT
></DL
></DIV
><DIV
CLASS="WARNING"
><P
></P
><TABLE
CLASS="WARNING"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>Warning</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
> phpGroupWare is still Beta software, expect some bugs
along the way. If you run into a problem not discussed here, contact us
through one of the methods listed on the website.
</P
></TD
></TR
></TABLE
></DIV
><P
> The phpGroupWare developers can most often be seen hanging out in <I
CLASS="EMPHASIS"
>#phpGroupWare</I
>
on <I
CLASS="EMPHASIS"
>irc.openprojects.net</I
> if you require real-time help.
</P
><P
>
Also check the FAQ in this directory for additional common questions,
it is available as FAQ.sgml, FAQ.txt and FAQ.html
</P
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="TROB1"
>I get "Unable to open mailbox" when using the email application</A
></H1
><P
> At the time of this writing (2000-09-27) you must use the same
username and password in phpGroupWare that you use to log into
your mail server. If you change your password and it still isn't working,
try logging out of phpGroupWare (the rightmost icon in the navigation bar)
and then log back in.
</P
><P
> An preference page to edit the email settings is being developed, and should
appear shortly after the first beta release.
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x114.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trob2.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installing additional applications</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p39.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>It seems to hang when I try to read my mail</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,132 +0,0 @@
<HTML
><HEAD
><TITLE
>Updating</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Applications"
HREF="app.html"><LINK
REL="PREVIOUS"
TITLE="Applications"
HREF="app.html"><LINK
REL="NEXT"
TITLE="Developers Documentation"
HREF="p261.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="app.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 20. Applications</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="p261.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="UPDATA"
>Updating</A
></H1
><P
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="app.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="p261.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Applications</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="app.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Developers Documentation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,179 +0,0 @@
<HTML
><HEAD
><TITLE
>User Accounts</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Administering phpGroupWare"
HREF="p223.html"><LINK
REL="PREVIOUS"
TITLE="Administering phpGroupWare"
HREF="p223.html"><LINK
REL="NEXT"
TITLE="Maintaining Accounts"
HREF="maintainu.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="p223.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="maintainu.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="USERACC"
>Chapter 18. User Accounts</A
></H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="useracc.html#CREATEU"
>Creating Accounts</A
></DT
><DT
><A
HREF="maintainu.html"
>Maintaining Accounts</A
></DT
></DL
></DIV
><P
> In phpGroupWare it is very easy to maintain User Accounts. You can easily add , remove or
set previleges to the user accordingly.
</P
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CREATEU"
>Creating Accounts</A
></H1
><P
>
To create a user account goto <TT
CLASS="CLASSNAME"
>User Accounts</TT
> section
of <TT
CLASS="CLASSNAME"
>Administration</TT
> and the click the
<TT
CLASS="CLASSNAME"
>Add</TT
> button. Now a form would be displayed.
FIXME : should i explain the process :-). After submiting the form you would be sent
back to the accounts page and you can now see the new user you have just created.
Isn't it easy !!!
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="p223.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="maintainu.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Administering phpGroupWare</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p223.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Maintaining Accounts</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,135 +0,0 @@
<HTML
><HEAD
><TITLE
>What is phpGroupWare</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Introduction"
HREF="p21.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
HREF="p21.html"><LINK
REL="NEXT"
TITLE="Why should u use it"
HREF="why.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="p21.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="why.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="WHAT"
>Chapter 1. What is phpGroupWare</A
></H1
><P
> phpGroupWare is a web based groupware application that includes integrated features such as
email, calendar, todo list, address book, file manager, headline news, and a trouble ticket system.
It should run on all systems where PHP is available and currently supports MySQL ,PostgreSQL and
also for oracle.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="p21.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="why.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p21.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Why should u use it</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,133 +0,0 @@
<HTML
><HEAD
><TITLE
>Why should u use it</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Introduction"
HREF="p21.html"><LINK
REL="PREVIOUS"
TITLE="What is phpGroupWare"
HREF="what.html"><LINK
REL="NEXT"
TITLE="A short History"
HREF="dochis.html"></HEAD
><BODY
CLASS="CHAPTER"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="what.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="dochis.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="WHY"
>Chapter 2. Why should u use it</A
></H1
><P
> You should use it if you would like a powerful groupware system that can be access from anywhere on the Internet.
For companies with a distributed user base, it's an ideal solution. Oh, and did I mention that its FREE?
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="what.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="dochis.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>What is phpGroupWare</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p21.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>A short History</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,142 +0,0 @@
<HTML
><HEAD
><TITLE
>Testing the install</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installing on Tested Systems"
HREF="installing.html"><LINK
REL="PREVIOUS"
TITLE="Setup / Configure phpGroupWare"
HREF="x85.html"><LINK
REL="NEXT"
TITLE="Installing additional applications"
HREF="x114.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x85.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Installing on Tested Systems</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x114.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN109"
>Testing the install</A
></H1
><P
> If your config is setup properly you can now login. Point your browser to the
installed location and login with the username <TT
CLASS="CLASSNAME"
>demo</TT
> and the password is <TT
CLASS="CLASSNAME"
>1234</TT
>
At this point it would be a good idea to create a new user with administrative privileges and
delete the old one.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x85.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x114.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Setup / Configure phpGroupWare</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installing.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing additional applications</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,276 +0,0 @@
<HTML
><HEAD
><TITLE
>Installing additional applications</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installing on Tested Systems"
HREF="installing.html"><LINK
REL="PREVIOUS"
TITLE="Testing the install"
HREF="x109.html"><LINK
REL="NEXT"
TITLE="Trouble Shooting"
HREF="trobleshooting.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x109.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Installing on Tested Systems</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trobleshooting.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN114"
>Installing additional applications</A
></H1
><P
> Once you have the core phpGroupWare install up and running,
you may want to download and install additional applications.
</P
><P
> You should consult any <TT
CLASS="FILENAME"
>README</TT
> or <TT
CLASS="FILENAME"
>INSTALL</TT
>
files that come with the new application first, as most require you
to create additional tables in the database, and add additional
translation data to the lang table (typically a file called <TT
CLASS="FILENAME"
>lang.sql</TT
>)
</P
><P
> You install the new application within the phpGroupWare install tree by
copying the application directory into the phpGroupWare install location,
and enabling the application through the Administration page.
</P
><P
> For example, this is the process to install the
Headlines application (see <A
HREF="http://sourceforge.net/phpgwapps/"
TARGET="_top"
> <I
CLASS="CITETITLE"
>http://sourceforge.net/phpgwapps/</I
></A
> for
more on this and other applications).
<P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Download the .tar.gz file for the application, or check out the source
with cvs with
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>export CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsroot/phpgwapps'
cvs login (just hit enter if prompted for a password)
cvs co headlines
</PRE
></TD
></TR
></TABLE
></P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Move the <TT
CLASS="CLASSNAME"
>headlines</TT
> directory into your phpGroupWare
install directory.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Log into phpGroupWare as an administrative user, and go to the Administration page.
</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>In the first section, choose the <TT
CLASS="CLASSNAME"
>Applications</TT
> link.
</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Click on add, and fill in the form.</P
><P
> <SPAN
CLASS="APPLICATION"
>Application name</SPAN
>
should be identical to the name
of the directory you moved into the phpGroupWare install, in this case use <TT
CLASS="CLASSNAME"
>headlines</TT
>
</P
><P
> <SPAN
CLASS="APPLICATION"
>Application Title</SPAN
>
is shown in the navigation bar and other places to refer to the
new application. Enter <TT
CLASS="CLASSNAME"
>Headlines</TT
> for this example.
</P
><P
> <SPAN
CLASS="APPLICATION"
>Enabled</SPAN
>
can be used to disable an application for all users temporially. You
should normal check the box to enable the application.
</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Back in the Administration page, you need to enable the application for specific users
or user groups by editing them, and checking the new <TT
CLASS="CLASSNAME"
>Headlines</TT
> box that appears
in the middle of the account editing page.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Once you have added the Headlines app to your account, you should see a Headlines
entry in the Administration and Preferences pages, and there should be an icon for
the Headlines application in the navigation bar.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Once you enable a few of the Headlines sites through the Administration page link, you
should see headlines grabbed from the sites you selected when you click on the Headlines
icon in the navigation bar.</P
></LI
></UL
>
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x109.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trobleshooting.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Testing the install</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installing.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Trouble Shooting</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,170 +0,0 @@
<HTML
><HEAD
><TITLE
>Basic functions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="The API"
HREF="devapi.html"><LINK
REL="PREVIOUS"
TITLE="The API"
HREF="devapi.html"><LINK
REL="NEXT"
TITLE="Application Functions"
HREF="x407.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="devapi.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 25. The API</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x407.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN398"
>Basic functions</A
></H1
><P
></P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN401"
>$phpgw-&#62;link</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;link($url)</TT
>
</P
><P
> Add support for session management. ALL links must use this, that includes href's form actions and header location's.
If you are just doing a form action back to the same page, you can use it without any parameters.
This function is right at the core of the class because it is used so often, we wanted to save developers a few keystrokes.
Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&#60;form name=copy method=post action="&#60;?php echo $phpgw-&#62;link();?&#62;"&#62;
/* If session management is done via passing url parameters */
/* The the result would be */
/* &#60;form name=copy method=post action="somepage.php?sessionid=87687693276?kp3=kjh98u80"&#62; */
</PRE
></TD
></TR
></TABLE
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="devapi.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x407.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The API</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="devapi.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Application Functions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,227 +0,0 @@
<HTML
><HEAD
><TITLE
>Application Functions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="The API"
HREF="devapi.html"><LINK
REL="PREVIOUS"
TITLE="Basic functions"
HREF="x398.html"><LINK
REL="NEXT"
TITLE="File functions"
HREF="x434.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x398.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 25. The API</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x434.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN407"
>Application Functions</A
></H1
><P
></P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN410"
>$phpgw-&#62;common-&#62;phpgw_header</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;phpgw_header()</TT
>
</P
><P
> Print out the start of the HTML page, including the navigation bar
and includes <TT
CLASS="FILENAME"
>appname/inc/header.php</TT
>
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN416"
>$phpgw-&#62;common-&#62;phpgw_footer</A
></H2
><P
><TT
CLASS="CLASSNAME"
>$phpgw-&#62;phpgw_footer()</TT
></P
><P
> Prints the system footer, and includes <TT
CLASS="FILENAME"
>appname/inc/footer.php</TT
>
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN422"
>$phpgw-&#62;common-&#62;appsession</A
></H2
><P
><TT
CLASS="CLASSNAME"
>$phpgw-&#62;common-&#62;appsession($data)</TT
></P
><P
> Store important information session information that your
application needs.
</P
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;appsession</TT
> will return the value of your session data is
you leave the parameter empty [i.e. <TT
CLASS="CLASSNAME"
>$phpgw-&#62;appsession("")</TT
>], otherwise
it will store whatever data you send to it.
</P
><P
> You can also store a comma delimited string and use <TT
CLASS="CLASSNAME"
>explode()</TT
>
to turn it back into an array when you receive the value back.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> $phpgw-&#62;common-&#62;appsession("/path/to/something");
echo "Dir: " . $phpgw-&#62;common-&#62;appsession();</PRE
></TD
></TR
></TABLE
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x398.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x434.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Basic functions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="devapi.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>File functions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,309 +0,0 @@
<HTML
><HEAD
><TITLE
>File functions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="The API"
HREF="devapi.html"><LINK
REL="PREVIOUS"
TITLE="Application Functions"
HREF="x407.html"><LINK
REL="NEXT"
TITLE="Email/NNTP Functions"
HREF="x471.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x407.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 25. The API</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x471.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN434"
>File functions</A
></H1
><P
></P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN437"
>$phpgw-&#62;vfs-&#62;read_file</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;vfs-&#62;read_file($file)</TT
> Returns the data from
<TT
CLASS="CLASSNAME"
>$file</TT
>.
You must send the complete path to the file.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>$data = $phpgw-&#62;vfs-&#62;read_file("/some/dir/to/file.txt");</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN444"
>$phpgw-&#62;vfs-&#62;write_file</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;vfs-&#62;write_file($file, $contents)</TT
>
Write data to <TT
CLASS="CLASSNAME"
>$file</TT
>.
You must send the complete path to the file.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>$data = $phpgw-&#62;vfs-&#62;write_file("/some/dir/to/file.txt");</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN451"
>$phpgw-&#62;vfs-&#62;read_userfile</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;vfs-&#62;read_userfile($file)</TT
>
Returns the data from <TT
CLASS="CLASSNAME"
>$file</TT
>, which resides
in the users private dir.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>$data = $phpgw-&#62;vfs-&#62;read_userfile("file.txt");</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN458"
>$phpgw-&#62;vfs-&#62;write_userfile</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;write_userfile($file, $contents)</TT
>
Writes data to <TT
CLASS="CLASSNAME"
>$file</TT
>, which resides in the
users private dir.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>$data = $phpgw-&#62;vfs-&#62;write_userfile("file.txt");</PRE
></TD
></TR
></TABLE
>
</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN465"
>$phpgw-&#62;vfs-&#62;list_userfiles</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;vfs-&#62;list_userfiles()</TT
>
Returns an array which has the list of files in the users private dir.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>$filelist = array();
$filelist = $phpgw-&#62;vfs-&#62;list_userfiles();</PRE
></TD
></TR
></TABLE
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x407.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x471.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Application Functions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="devapi.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Email/NNTP Functions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,167 +0,0 @@
<HTML
><HEAD
><TITLE
>Email/NNTP Functions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="The API"
HREF="devapi.html"><LINK
REL="PREVIOUS"
TITLE="File functions"
HREF="x434.html"><LINK
REL="NEXT"
TITLE="Configuration Variables"
HREF="devconfvar.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x434.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 25. The API</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="devconfvar.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN471"
>Email/NNTP Functions</A
></H1
><P
></P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN474"
>$phpgw-&#62;send-&#62;msg</A
></H2
><P
> <TT
CLASS="CLASSNAME"
>$phpgw-&#62;msg-&#62;send($service, $to, $subject, $body, $msgtype, $cc, $bcc)</TT
>
Send a message via email or NNTP and returns any error codes.
</P
><P
> Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>$to = "someuser@domain.com";
$subject = "Hello buddy";
$body = "Give me a call\n Been wondering what your up to.";
$errors = $phpgw-&#62;msg-&#62;send("email", $to, $subject, $body);</PRE
></TD
></TR
></TABLE
>
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x434.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="devconfvar.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>File functions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="devapi.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Configuration Variables</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@ -1,236 +0,0 @@
<HTML
><HEAD
><TITLE
>Setup / Configure phpGroupWare</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
REL="HOME"
TITLE="phpGroupWare Docs V0.05"
HREF="book1.html"><LINK
REL="UP"
TITLE="Installing on Tested Systems"
HREF="installing.html"><LINK
REL="PREVIOUS"
TITLE="Installing from CVS"
HREF="cvsins.html"><LINK
REL="NEXT"
TITLE="Testing the install"
HREF="x109.html"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>phpGroupWare Docs V0.05</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="cvsins.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Installing on Tested Systems</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x109.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN85"
>Setup / Configure phpGroupWare</A
></H1
><P
> Copy the <TT
CLASS="FILENAME"
>header.inc.php.sample</TT
> file to
<TT
CLASS="FILENAME"
>header.inc.php</TT
> and edit the file, following the
directions in the comments.
</P
><P
> Then point your browser to phpgroupware/setup/ which will
create (or upgrade) the database tables.
You wil be asked to login, using the password set in
<TT
CLASS="FILENAME"
>header.inc.php</TT
>. Setup will attempt to determine what version
of the phpGroupWare database you have installed, and upgrade to the most recent
version.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> The developers are concentrating on getting the beta
working, and have not spent a great deal of time building upgrade scripts from the
alpha versions of phpGroupWare. You are advised to backup your existing alpha
database before running the setup script to avoid problems!
</P
></BLOCKQUOTE
></DIV
><P
> If you get no error messages, continue on to phpgroupware/setup/config.php
to configure phpGroupWare to your system.
</P
><P
> If you are using the email system you will need to create a temporary directory
where file uploads will be stored. For security reasons, you should <TT
CLASS="CONSTANT"
>chown
nobody.nobody</TT
> and <TT
CLASS="CONSTANT"
>chmod 700</TT
> to that directory. Depending on your system configuration.
Default installs of Apache normally run as the user nobody. You may need your system
administrator to do this for you if you do not have root access.
</P
><P
> If you do not have access to root, create this file and run it.
</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> &#60;?php
if (mkdir("/path/to/temp/directory",0700)) {
echo "Directory created successfully";
} else {
echo "Error creating directory";
}
?&#62;
</PRE
></TD
></TR
></TABLE
><P
> If you have access to cron, you may want to setup the files in the cron
directory.
</P
><P
> stalesessions.pl - There are 2 reasons for this file.
<P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Users always forget to logout. This way the session doesn't sit around forever, creating a possible security risk.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>The email system requires plain text passwords which are stored in the sessions table.</P
></LI
></UL
>
This file is not required, you can simply disable cron_apps in the admin -&#62; applications section
to clean out the sessions table during login and logout
</P
><P
> stale_uploads.pl - This will delete file attachments for messages that where not
completed. If a users browser crashes, Internet connection dies, etc, their
files will sit there forever unless deleted. You could add a few lines to
logout.php that will look in the temp directory for any stale uploads and delete
them. But, once again, it becomes a performance issue.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="cvsins.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x109.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installing from CVS</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installing.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Testing the install</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

File diff suppressed because it is too large Load Diff

View File

@ -1,706 +0,0 @@
phpGroupWare Docs V0.05
Dan Kuykendall
Joseph Engo
_________________________________________________________________
_________________________________________________________________
Dedication
Thanks to Joesph Engo for starting phpGroupWare (at the time called
webdistro) and the core of this HOWTO. Thanks to all the developers
and users who contribute to making phpGroupWare such a success.
Table of Contents
I. Introduction
1. What is phpGroupWare
2. Why should you use it
3. A short History
4. Copyright
II. Installation
5. Requirements
Tested Systems
6. Obtaining phpGroupWare
Released Versions
Developer's version from CVS
7. Installation Steps
Installing from TarBall
Installing from CVS
Setup / Configure phpGroupWare
Testing the install
Installing additional applications
8. Trouble Shooting
I get "Unable to open mailbox" when using the email
application
It seems to hang when I try to read my mail
When I log in I see the directory listing instead of a web
page
I get garbage that looks like code when I go to the
phpGroupWare URL
III. Using phpGroupWare
9. Loging into phpgw
10. checking Email
11. Using Addressbook
12. Using Calender
13. Managing Files with file manager
14. Getting Headlines
15. Human Resources
16. Preferences
17. Using todo
18. Using Trouble ticket
IV. Administering phpGroupWare
19. User Accounts
Creating Accounts
Maintaining Accounts
20. Group Accounts
Creating Accounts
Maintaining Accounts
21. Applications
Installing
Updating
V. Developers Documentation
22. Developing Add-On Apps
Requirements
add your topic seek
23. API documentation
function1(or what ever)
VII. About this document
I. Introduction
Do yo have questions on using phpGroupWare , like What? Why? What for?
What's in for me?
Then you should seriously read this doc :-).
Table of Contents
1. What is phpGroupWare
2. Why should you use it
3. A short History
4. Copyright
_________________________________________________________________
Chapter 1. What is phpGroupWare
phpGroupWare is a web based groupware application that includes
integrated features such as email, calendar, todo list, address book,
file manager, headline news, and a trouble ticket system. It should
run on all systems where PHP is installed and has access to a SQL
server (MySQL ,PostgreSQL or Oracle).
_________________________________________________________________
Chapter 2. Why should you use it
You should use it if you would like a powerful groupware system that
can be access from anywhere on the Internet.
For companies with a distributed user base, it's an ideal solution.
Oh, and did I mention that its FREE?
_________________________________________________________________
Chapter 3. A short History
phpGroupWare started by Jengo (Joseph Engo) as an application to
satisfy his girlfriends need for a webbased calendar/todo_list/email.
At the time it was called webdistro when Seek3r (Dan Kuykendall)
discovered this promising project. The two joined up together and
between Seek3r's API design and Jengo's programming skills they
renamed the project phpGroupWare and started building the application
around the phpgwAPI.
During this period Seek3r took over project management to free Jengo
up to do more development. This duo worked hard to build a sucessful
community around the project. Their efforts paid off, and the project
is what it is today due to the efforts of the developers who have
joined this community.
_________________________________________________________________
Chapter 4. Copyright
Copyright (c) Dan Kuykendall.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation A copy of
the license is available at GNU Free Documentation License Making
TeXWork
II. Installation
Installation/Upgrade and Configuration of phpGroupWare has been made a
s easy as possible.
Most of the work is point and click.
By carefully reading this document you can easly install phpGroupWare.
Since this is still a beta version we do expect some bugs.
Table of Contents
5. Requirements
6. Obtaining phpGroupWare
7. Installation Steps
8. Trouble Shooting
_________________________________________________________________
Chapter 5. Requirements
You will need PHP compiled and installed on your system. You will also
need MySQL, PostgreSQL or Oracle setup.
If you are planning on using the email system, you will need to have
an IMAP server installed and IMAP support compiled into PHP, or a POP3
server installed. You can have it installed as an Apache module or CGI
mode for other web servers, the Apache module is preferred. We will
assume that you are running on a Linux or other Unix system for these
steps. Windows is supported, but there is no documentation for it
currently.
_________________________________________________________________
Tested Systems
Seek3r has tested:
* phpGroupWare.org runs: Red Hat 6.2,
Apache/1.3.12,PHP/4.0.2,mod_perl/1.21,MySQL
3.23.10-alpha,Courier-IMAP 0.33+ with qmail 1.03
Blinky has tested:
* phpGroupWare.net runs: Red Hat 6.2,Apache/1.3.14 PHP/4.0.3pl1
mod_ssl/2.7.1 OpenSSL/0.9.6 PHP4.03.pl1, MySQL 3.23.10-alpha,qmail
1.03
* dev boxes are variants on: Red Hat 7.0,mysql-3.23.22-6 (from RH7
RPM), and Sendmail, Courier, or qmail+courier IMAP depending on
mood.
Jengo has tested:
* main test box: Red Hat 6.2,Apache 1.3.12,PHP 3.0.16,PostgreSQL
7.2,Sendmail (from RH6.2)
* laptop is rh 6.1, apache 1.3.?, MySQL and PostgreSQL 7.0 w/ PHP
3.0.16, its a P-90 w/ 40 mb ram and a 800 mb hd
* Test box: Win2k with IIS5.0, PHP4.0.2 and MySQL
There are installations on Windows NT and OS/2, and using MySQL or
Oracle as the database.
_________________________________________________________________
Chapter 6. Obtaining phpGroupWare
While we are still in the Beta phase of phpGroupWare, you may want to
track the CVS copy as closely as possible. The released versions are
more stable, but often contain bugs that have been fixed in the CVS
version.
_________________________________________________________________
Released Versions
The downloads section on the site contains links to the most recent
releases, and several mirror sites for the releases.
_________________________________________________________________
Developer's version from CVS
If you have never used CVS, you may want to read through the
doucmentation found at www.cvshome.org . The CVS pages for the core
and apps projects can be found at phpGroupWare Core CVS , and
phpGroupWare Apps CVS. Follow the directions for Anonymous CVS access
and you should have the most recent development copy of phpGroupWare
in no time.
_________________________________________________________________
Chapter 7. Installation Steps
After you have met the system requirements, You can install it from
the TarBall or you can get it directly from CVS.
_________________________________________________________________
Installing from TarBall
The files should be installed in the webserver directory. So all you
need to do is unpack the tar ball and copy the whole directory to the
webserver directory
(eg. /home/httpd/html for default apache configuration in many linux
distros).
You may have to get required permissions to do this. Contact your
system administrator if you dont have the permission to write to your
webserver directory.
_________________________________________________________________
Installing from CVS
Grabbing a copy from CVS is not as hard as it may seem. You will need
to have a cvs client installed. Then try the following commands:
export
CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsroot/
phpgroupware'
cvs login (just hit enter when prompted for a password)
cvs checkout phpgroupware
If you need to install into a different dirname, you can add ' -d
dirname' after 'checkout' and before 'phpgroupware'. The commands
would look like this:
export
CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsroot/
phpgroupware'
cvs login (just hit enter when prompted for a password)
cvs checkout -d dirname phpgroupware
_________________________________________________________________
Setup / Configure phpGroupWare
The config file
Copy the header.inc.php.sample file to header.inc.php and edit the
file, following the directions in the comments.
_________________________________________________________________
Create database in MySQL
An empty database will be needed for phpGroupWare. Here are the
instructions for doing so with MySQL. First create the database:
mysqladmin create phpgroupware -p
Then login to the mysql:
mysql -p
Finally grant the needed security rights:
grant all on phpgroupware.* to phpgroupware@localhost identified by
"some_password";
_________________________________________________________________
Create database in PostreSQL
An empty database will be needed for phpGroupWare. Here are the
instructions for doing so with PostgreSQL. Create the database:
postmaster -i -D /home/[username]/[dataDir]
You will probably need to review PostgreSQL documentation for futher
details.
_________________________________________________________________
The Setup Program
Then point your browser to phpgroupware/setup/ which will create (or
upgrade) the database tables. You wil be asked to login, using the
password set in header.inc.php. Setup will attempt to determine what
version of the phpGroupWare database you have installed, and upgrade
to the most recent version.
Note: The developers are concentrating on getting the beta working,
and have not spent a great deal of time building upgrade scripts
from the alpha versions of phpGroupWare. You are advised to backup
your existing alpha database before running the setup script to
avoid problems!
If you get no error messages, continue on to
phpgroupware/setup/config.php to configure phpGroupWare to your
system.
If you are using the email system you will need to create a temporary
directory where file uploads will be stored. For security reasons, you
should chown nobody.nobody and chmod 700 to that directory. Depending
on your system configuration. Default installs of Apache normally run
as the user nobody. You may need your system administrator to do this
for you if you do not have root access.
If you do not have access to root, create this file and run it.
?php
if (mkdir("/path/to/temp/directory",0700)) {
echo "Directory created successfully";
} else {
echo "Error creating directory";
}
?
_________________________________________________________________
The phpGroupWare Daemon
If you have access to cron, you may want to setup the files in the
cron directory.
stalesessions.pl - There are 2 reasons for this file.
* Users always forget to logout. This way the session doesn't sit
around forever, creating a possible security risk.
* The email system requires plain text passwords which are stored in
the sessions table.
This file is not required, you can simply disable cron_apps in the
admin -> applications section to clean out the sessions table during
login and logout
stale_uploads.pl - This will delete file attachments for messages that
where not completed. If a users browser crashes, Internet connection
dies, etc, their files will sit there forever unless deleted. You
could add a few lines to logout.php that will look in the temp
directory for any stale uploads and delete them. But, once again, it
becomes a performance issue.
_________________________________________________________________
Testing the install
If your config is setup properly you can now login. Point your browser
to the installed location and login with the username demo and the
password is 1234 At this point it would be a good idea to create a new
user with administrative privileges and delete the old one.
_________________________________________________________________
Installing additional applications
Once you have the core phpGroupWare install up and running, you may
want to download and install additional applications.
You should consult any README or INSTALL files that come with the new
application first, as most require you to create additional tables in
the database, and add additional translation data to the lang table
(typically a file called lang.sql)
You install the new application within the phpGroupWare install tree
by copying the application directory into the phpGroupWare install
location, and enabling the application through the Administration
page.
For example, this is the process to install the Headlines application
(see http://sourceforge.net/phpgwapps/ for more on this and other
applications).
* Download the .tar.gz file for the application, or check out the
source with cvs with
export
CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsr
oot/phpgwapps'
cvs login (just hit enter if prompted for a password)
cvs co headlines
* Move the headlines directory into your phpGroupWare install
directory.
* Log into phpGroupWare as an administrative user, and go to the
Administration page.
* In the first section, choose the Applications link.
* Click on add, and fill in the form.
Application name should be identical to the name of the directory
you moved into the phpGroupWare install, in this case use
headlines
Application Title is shown in the navigation bar and other places
to refer to the new application. Enter Headlines for this example.
Enabled can be used to disable an application for all users
temporially. You should normal check the box to enable the
application.
* Back in the Administration page, you need to enable the
application for specific users or user groups by editing them, and
checking the new Headlines box that appears in the middle of the
account editing page.
* Once you have added the Headlines app to your account, you should
see a Headlines entry in the Administration and Preferences pages,
and there should be an icon for the Headlines application in the
navigation bar.
* Once you enable a few of the Headlines sites through the
Administration page link, you should see headlines grabbed from
the sites you selected when you click on the Headlines icon in the
navigation bar.
_________________________________________________________________
Chapter 8. Trouble Shooting
Warning
phpGroupWare is still Beta software, expect some bugs along the way.
If you run into a problem not discussed here, contact us through one
of the methods listed on the website.
The phpGroupWare developers can most often be seen hanging out in
#phpGroupWare on irc.openprojects.net if you require real-time help.
Also check the FAQ in this directory for additional common questions,
it is available as FAQ.sgml, FAQ.txt and FAQ.html
_________________________________________________________________
I get "Unable to open mailbox" when using the email application
At the time of this writing (2000-09-27) you must use the same
username and password in phpGroupWare that you use to log into your
mail server. If you change your password and it still isn't working,
try logging out of phpGroupWare (the rightmost icon in the navigation
bar) and then log back in.
An preference page to edit the email settings is being developed, and
should appear shortly after the first beta release.
_________________________________________________________________
It seems to hang when I try to read my mail
This is often a problem if you are using POP3 instead of IMAP, and you
have more than a few hundred messages in your mailbox.
By default, php is set up to time-out a request that takes over 30
seconds to complete. phpGroupWare must do a lot of work the first time
your POP3 mailbox is opened, and every time you get new mail, which
may take more than the 30 second timeout.
You can either clean up your mailbox with another mail program, or add
the line
set_time_limit(0);
to the top of the inc/phpgwapi/phpgw_msg_pop3.inc.php file, just
before the line class msg extends msg_common
If you choose to edit the file, be patient when loading a large POP3
mailbox - the author tested against a mailbox with 2500 messages in
it, but it took 15 minutes to load the page. We highly suggest you use
IMAP if you expect to have more than a few hundred messages in your
mailbox.
_________________________________________________________________
When I log in I see the directory listing instead of a web page
You are using Apache, this often means you need to add .php to the
DirectoryIndex line in your httpd.conf file. For example:
DirectoryIndex index.php index.php3 index.html index.htm index.cgi
_________________________________________________________________
I get garbage that looks like code when I go to the phpGroupWare URL
This is often because you have php3 installed, which does not map .php
to the PHP engine. For PHP3:
AddType application/x-httpd-php3 .php3 .php
For PHP4:
AddType application/x-httpd-php .php3 .php
III. Using phpGroupWare
Using phpGroupWare is a cake walk , thats what people say :-). Reading
this doc would definitely give a head start. If you ever come cross
any problem please report to
Table of Contents
9. Loging into phpgw
10. checking Email
11. Using Addressbook
12. Using Calender
13. Managing Files with file manager
14. Getting Headlines
15. Human Resources
16. Preferences
17. Using todo
18. Using Trouble ticket
_________________________________________________________________
Chapter 9. Loging into phpgw
After your setup you can point your browser to index.php in the
installation directory. If the set up was right you can login with
user name demo and the password is 1234> Now it is recommended to
create a new user with administrative privileges and delete the old
one.
_________________________________________________________________
Chapter 10. checking Email
_________________________________________________________________
Chapter 11. Using Addressbook
_________________________________________________________________
Chapter 12. Using Calender
_________________________________________________________________
Chapter 13. Managing Files with file manager
_________________________________________________________________
Chapter 14. Getting Headlines
_________________________________________________________________
Chapter 15. Human Resources
_________________________________________________________________
Chapter 16. Preferences
_________________________________________________________________
Chapter 17. Using todo
_________________________________________________________________
Chapter 18. Using Trouble ticket
IV. Administering phpGroupWare
To administer phpGroupWare you need not be a PHP hacker. All you need
to do is again just point and click. And hey just a bit of typing too.
:). You need to login to phpGroupWare and click the Administration
image.
Table of Contents
19. User Accounts
20. Group Accounts
21. Applications
_________________________________________________________________
Chapter 19. User Accounts
In phpGroupWare it is very easy to maintain User Accounts. You can
easily add , remove or set previleges to the user accordingly.
_________________________________________________________________
Creating Accounts
To create a user account goto User Accounts section of Administration
and the click the Add button. Now a form would be displayed. FIXME :
should i explain the process :-). After submiting the form you would
be sent back to the accounts page and you can now see the new user you
have just created. Isn't it easy !!!
_________________________________________________________________
Maintaining Accounts
Maintaining user accounts is also very easy. Just go to the User
Accounts section . Now you can see the list of the current users and
there logins. You can now either view their ops or can even edit them.
FIXMEAGIN: need i say anything more :->.
_________________________________________________________________
Chapter 20. Group Accounts
Enter the User Group section. You would see the current user groups.
_________________________________________________________________
Creating Accounts
Click the Add button. Now fill the form by selecting the existing
users and the persmissions you want to include in the new group.And
you r done.
_________________________________________________________________
Maintaining Accounts
One has always a option to view and edit the groups when ever needed
_________________________________________________________________
Chapter 21. Applications
There r many applications been developed for phpGroupWare and there
would be more in the future. So insatallation of these application and
as well as the future applications has been made easy the developers.
So what you have to do is to just go to the Application section.
_________________________________________________________________
Installing
_________________________________________________________________
Updating
V. Developers Documentation
This documentation is for developers who want to hack into the core of
the phpGroupWare. Please follow this documentation carefully before u
take a jump into the code :)
Table of Contents
22. Developing Add-On Apps
23. API documentation
_________________________________________________________________
Chapter 22. Developing Add-On Apps
text for developin add on apps (seek its your area)
_________________________________________________________________
Requirements
text for requirements
_________________________________________________________________
add your topic seek
text for the appropriate topic
_________________________________________________________________
Chapter 23. API documentation
text for the API documentation chapter
_________________________________________________________________
function1(or what ever)
the function you want to include seek.
VII. About this document
The newest version of this document can be found on our website
www.phpgroupware.org as SGML source, HTML, or TEXT.
_________________________________________________________________
Comments
Comments on this HOWTO should be directed to the phpGroupWare
developers mailing list phpgroupware-developers@lists.sourceforge.net
To subscribe, go to http://sourceforge.net/mail/?group_id=7305
_________________________________________________________________
History
This document was started by Joseph Engo and reworked by Dan
Kuykendall.
_________________________________________________________________
Version History
Old Version
* Created by Jengo, wasn't in SGML HOWTO format.
v1.0 (July 6, 2000)
* Built proper SGML version.
* Included the FAQ.
* Other minor additions.
v1.1 (September 27-29, 2000) - blinky
* Added Testing Install section
* Added Trouble-shooting section
* Added description of application installation
* Changes for the new setup program
v0.01 (October 15 , 2000) - gnrfan , Converted the HOWTO to DocBook
format
v.0.05 (November 5, 2000) - gnrfan , Completely revamped according to
Seek's idea and intregrated the Developers HOWTO.
v 0.xx (Somewhere in the near future) - gnrfan, Trail map comming up
on how to hack and learn about coding phpGroupWare(core) and its apps
too :-).

View File

@ -1,65 +0,0 @@
<!doctype linuxdoc system>
<!-- LinuxDoc file was created by hand by <Dan Kuykendall> Sat July 15 -->
<article>
<title>
phpGroupWare FAQ
</title>
<author>
Dan Kuykendall &lt;dan@kuykendall.org&gt;
</author>
<date>
v1.0, 15 July 2000
</date>
<abstract>
phpGroupWare Frequently Asked Questions.
</abstract>
<toc>
<sect>Building and Installing
<sect1>Questions and Answers
<p>
Q: When I try to send file attachments, I get errors about safe mode being
effect.<newline>
A: I ran into this problem after I installed Aeromail for the first time.<newline>
Try chown root.root for all files in your /phpGroupWare directory. I don't know
why this is needed. Any ideas ?
<p>
Q: Why don't you just use the session class from phplib? Why not use cookies
to hold the sessionid?<newline>
A: I personally don't like using cookies for something like this.<newline>
However, the session management is currently being abstracted for the applications.
This means that switching to cookies will be possible for those that are interested.
<p>
Q: When I do a search, it returns the results but they have the wrong date.<newline>
A: Becuase of the way the tables are set up to handle repeating events,
I need to rewrite the query. I have not had a chance to play around with it
<p>
Q: When I view the calendar, I get tons of SQL errors.<newline>
A: Make sure all users on the system belong to a group. That should clear up
any problems. This is something that needs to be fixed.
<p>
Q: Will phpGroupWare run on PHP4 ?<newline>
A: Yes. It runs on both PHP3 and PHP4.
<p>
Q: Will phpGroupWare work with SSL ?<newline>
A: Sure, why not ? I am running it with mod_ssl and have had no problems.
Since there are no references to http:// or https:// there should not be
any problems with it.
<p>
Q: Does phpGroupWare work on any other databases ?<newline>
A: Right now, no. I have been playing around with support for mSQL, but, that
will take some time. Other databases are completly unknown at this point,
support for Oracle, MS-SQL, and others are planned for the future.
<p>
Q: I am having problems installing on PostgreSQL 6.x.<newline>
A: phpGroupWare is being developed with version 7.x. I tried installing it on
6.x and ran into a bunch of probelms. Unless you plan on toying around
with it, your better off with 7.x.
<p>
Q: Will phpGroupWare work with Windows?<newline>
A: Yes, there several people who are using it.<newline>
Thanks Vincent Larchet <&lt;vinz@users.sourceforge.net&gt;> for patching anything
we do that breaks phpGroupWare on NT.
</p>
</article>

View File

@ -1,63 +0,0 @@
** This file is mostly out of date, please see the HOWTO docs **
This program was created becuase I needed a more centralize means of conduting
my daily life. I have seen many great programs out there, calendars, todolist,
addressbooks, email, etc... But, there is a very common problem with 95% of
them, they don't like each other. ( The programs, not the people :) If I was
logged into the calendar and wanted to grab a phone number, I would have to
login to another app. Which became a real pain real quick. So, I search high
and low for something that would have all these systems tied in to one. Well,
I didn't find anything I really liked. So, I made my own. ( Isn't that the
driving force of 99% of Open Source apps ? :)
Before I bore you to death, not all of these programs are written by me. Some,
I wrote my self. Some where downloaded and converted. All apps are released
under the GPL license. I would not use anything but. If you are intrested
in adding/recommending a program to be included in this ditro. Please, send
me the URL. I will not except restrictive licenses. I will only accept GPL
or freeware. If you are intrested in helping out with development, or think
you might be able to help out. Let me know what your plains are.
You might have noticed there are a few references to programs that can't be
found anywhere in the archive or on the site. Thats becuase there not ready
yet. For example, pop_mail. This is a feature that will be added in the
future. It will give the admin control over who has POP-3 access for virtual
users. Becuase the system does not use nor require the user to have a shell
account on the system, a special POP-3 server is going to be used. It will
verify the user from the accounts table, then allow or disallow access to there
messages. I don't think this feature will be used too often, but, it gives
a nice bit of control for some added flexablity. Currently users that have
access to email will be required to have an account on the server. This will
change in the future. I am looking into other IMAP servers that can verify
logins through the accounts table. This will take some time for me to find the
best solution.
Some things you should note on how this system works. Think of the navigation
bar as the glue sticking all of these apps together. It is handling the
login portions, session info and account info. If you notice the layout of
the directorys, it can give a good clue to how this system is layied out.
/phpGroupWare
|- inc [ The common files used by the distro ]
|- addressbook [ File needed by the addressbook only ]
| |- inc [ The include files for the addressbook ]
| \- icons [ Images for the addressbook, unless commonly
| used through out the program ]
|- icons [ Images used throughout the program ]
I think you can get the idea of it. Another thing that should be noted is the
structure of the database. Yes, it looks pretty odd, but, for the most part
makes a lot of sense. Lets say you didn't need the addressbook. Delete
/phpGroupWare/addressbook and change the settings in /phpGroupWare/config.inc There are
still a few references to it, like in the account table. But, there not used.
This is one of the main reasons I use $dbase->f("con") instead of $dbase->f(0)
Which brings me to another point, I _try_ to use standared colum names through
out the database. con = control number, owner = the users loginid,
status = that records status. This makes it easier to keep track of what does
what. Refear to CODES in the doc directory.
BTW: Please, ingnore my very poor spelling and grammer. I am a programmer
not an English teacher.
Happy hacking :)

View File

@ -1,80 +0,0 @@
<part label="VII">
<title>About</title>
<partintro>
<para></para>
</partintro>
<chapter id="about">
<title>About this document</title>
<simplesect>
<title>New versions</title>
<para>
The newest version of this document can be found on our website <ulink url="http://www.phpgroupware.org">
<citetitle>www.phpgroupware.org</citetitle></ulink>
as SGML source, HTML, or TEXT.
</para>
</simplesect>
<simplesect>
<title>Comments</title>
<para>
Comments on this HOWTO should be directed to the phpGroupWare developers mailing list
<ulink url="mailto:phpgroupware-developers@lists.sourceforge.net">
<citetitle>phpgroupware-developers@lists.sourceforge.net</citetitle></ulink>
</para>
<para>
To subscribe, go to <ulink url="http://sourceforge.net/mail/?group_id=7305">
<citetitle>http://sourceforge.net/mail/?group_id=7305</citetitle></ulink>
</para>
</simplesect>
<simplesect>
<title>History</title>
<para>
This document was started by Joseph Engo and reworked by Dan Kuykendall.
</para>
</simplesect>
<simplesect>
<title>Version History</title>
<para>
Old Version
<itemizedlist mark=bullet>
<listitem>
<para>Created by Jengo, wasn't in SGML HOWTO format.</para>
</listitem>
</itemizedlist>
</para>
<para>
v1.0 (July 6, 2000)
</para>
<para>
<itemizedlist mark=bullet>
<listitem><para>Built proper SGML version.</para></listitem>
<listitem><para>Included the FAQ.</para></listitem>
<listitem><para>Other minor additions.</para></listitem>
</itemizedlist>
</para>
<para>
v1.1 (September 27-29, 2000) - blinky
</para>
<para>
<itemizedlist mark=bullet>
<listitem><para>Added Testing Install section</para></listitem>
<listitem><para>Added Trouble-shooting section</para></listitem>
<listitem><para>Added description of application installation</para></listitem>
<listitem><para>Changes for the new setup program</para></listitem>
</itemizedlist>
</para>
<para>
v0.01 (October 15 , 2000) - gnrfan , Converted the HOWTO to DocBook format
</para>
<para>
v.0.05 (November 5, 2000) - gnrfan , Completely revamped according to Seek's
idea and intregrated the Developers HOWTO.
</para>
<para>
v 0.xx (Somewhere in the near future) - gnrfan, Trail map comming up on
how to hack and learn about coding phpGroupWare(core) and its
apps too :-).
</para>
</simplesect>
</chapter>
</part>

View File

@ -1,80 +0,0 @@
<part label="IV">
<title>Administering phpGroupWare</title>
<partintro>
<para>
To administer phpGroupWare you need not be a PHP hacker. All you need to do is again just
point and click. And hey just a bit of typing too. :). You need to login to phpGroupWare
and click the Administration image.
</para>
</partintro>
<chapter id="useracc">
<title>User Accounts</title>
<para>
In phpGroupWare it is very easy to maintain User Accounts. You can easily add , remove or
set previleges to the user accordingly.
</para>
<sect1 id="createu">
<title>Creating Accounts</title>
<para>
To create a user account goto <classname>User Accounts</classname> section
of <classname>Administration</classname> and the click the
<classname>Add</classname> button. Now a form would be displayed.
FIXME : should i explain the process :-). After submiting the form you would be sent
back to the accounts page and you can now see the new user you have just created.
Isn't it easy !!!
</para>
</sect1>
<sect1 id="maintainu">
<title>Maintaining Accounts</title>
<para>
Maintaining user accounts is also very easy. Just go to the
<classname>User Accounts</classname> section . Now you can see
the list of the current users and there logins. You
can now either view their ops or can even edit them.
FIXMEAGIN: need i say anything more :->.
</para>
</sect1>
</chapter>
<chapter id="groupacc">
<title>Group Accounts</title>
<para>
Enter the <classname>User Group</classname> section. You would see
the current user groups.
</para>
<sect1 id="createg">
<title>Creating Accounts</title>
<para>
Click the <classname>Add</classname> button. Now fill the form by
selecting the existing users and the persmissions you want to include
in the new group.And you r done.
</para>
</sect1>
<sect1 id="maintaing">
<title>Maintaining Accounts</title>
<para>
One has always a option to view and edit the groups when ever
needed
</para>
</sect1>
</chapter>
<chapter id="app">
<title>Applications</title>
<para>
There r many applications been developed for phpGroupWare and there would be more
in the future. So insatallation of these application and as well as the future
applications has been made easy the developers. So what you have to do is to
just go to the <classname>Application</classname> section.
</para>
<sect1 id="installa">
<title>Installing</title>
<para></para>
</sect1>
<sect1 id="updata">
<title>Updating</title>
<para></para>
</sect1>
</chapter>
</part>

View File

@ -1,16 +0,0 @@
<article id="devabout">
<title>About developers docs</title>
<simplesect>
<title>About this document</title>
<para></para>
</simplesect>
<simplesect>
<title>History</title>
<para>
This document was written by Dan Kuykendall.
2000-09-25 documentation on lang(), codes, administration and preferences extension added by Steve Brown.
</para>
</simplesect>
</article>

View File

@ -1,192 +0,0 @@
<chapter id="devapi">
<title>The API</title>
<sect1>
<title>Introduction</title>
<para>
phpGroupWare attempts to provide developers with a useful API to handle common tasks.
</para>
<para>
To do this we have created a multi-dimensional class $phpgw->.
</para>
<para>
This allows for terrific code organization, and help developers easily identify
the file that the function is in. All the files that are part of this class are in the
<filename>inc/core</filename> directory
and are named to match the sub-class.
</para>
<para>
Example:<classname>$phpgw->send->msg()</classname> is in the
<filename>inc/phpgwapi/phpgw_send.inc.php</filename> file.
</para>
</sect1>
<sect1>
<title>Basic functions</title>
<para></para>
<sect2>
<title>$phpgw->link</title>
<para>
<classname>$phpgw->link($url)</classname>
</para>
<para>
Add support for session management. ALL links must use this, that includes href's form actions and header location's.
If you are just doing a form action back to the same page, you can use it without any parameters.
This function is right at the core of the class because it is used so often, we wanted to save developers a few keystrokes.
Example:
<programlisting>
&lt;form name=copy method=post action="&lt;?php echo $phpgw-&gt;link();?&gt;"&gt;
/* If session management is done via passing url parameters */
/* The the result would be */
/* &lt;form name=copy method=post action="somepage.php?sessionid=87687693276?kp3=kjh98u80"&gt; */
</programlisting>
</para>
</sect2>
</sect1>
<sect1>
<title>Application Functions</title>
<para></para>
<sect2>
<title>$phpgw->common->phpgw_header</title>
<para>
<classname>$phpgw->phpgw_header()</classname>
</para>
<para>
Print out the start of the HTML page, including the navigation bar
and includes <filename>appname/inc/header.php</filename>
</para>
</sect2>
<sect2>
<title>$phpgw->common->phpgw_footer</title>
<para><classname>$phpgw->phpgw_footer()</classname></para>
<para>
Prints the system footer, and includes <filename>appname/inc/footer.php</filename>
</para>
</sect2>
<sect2>
<title>$phpgw->common->appsession</title>
<para><classname>$phpgw->common->appsession($data)</classname></para>
<para>
Store important information session information that your
application needs.
</para>
<para>
<classname>$phpgw->appsession</classname> will return the value of your session data is
you leave the parameter empty [i.e. <classname>$phpgw->appsession("")</classname>], otherwise
it will store whatever data you send to it.
</para>
<para>
You can also store a comma delimited string and use <classname>explode()</classname>
to turn it back into an array when you receive the value back.
</para>
<para>
Example:
<programlisting>
$phpgw->common->appsession("/path/to/something");
echo "Dir: " . $phpgw->common->appsession();
</programlisting>
</para>
</sect2>
</sect1>
<sect1>
<title>File functions</title>
<para></para>
<sect2>
<title>$phpgw->vfs->read_file</title>
<para>
<classname>$phpgw->vfs->read_file($file)</classname> Returns the data from
<classname>$file</classname>.
You must send the complete path to the file.
</para>
<para>
Example:
<programlisting>
$data = $phpgw->vfs->read_file("/some/dir/to/file.txt");
</programlisting>
</para>
</sect2>
<sect2>
<title>$phpgw->vfs->write_file</title>
<para>
<classname>$phpgw->vfs->write_file($file, $contents)</classname>
Write data to <classname>$file</classname>.
You must send the complete path to the file.
</para>
<para>
Example:
<programlisting>
$data = $phpgw->vfs->write_file("/some/dir/to/file.txt");
</programlisting>
</para>
</sect2>
<sect2>
<title>$phpgw->vfs->read_userfile</title>
<para>
<classname>$phpgw->vfs->read_userfile($file)</classname>
Returns the data from <classname>$file</classname>, which resides
in the users private dir.
</para>
<para>
Example:
<programlisting>
$data = $phpgw->vfs->read_userfile("file.txt");
</programlisting>
</para>
</sect2>
<sect2>
<title>$phpgw->vfs->write_userfile</title>
<para>
<classname>$phpgw->write_userfile($file, $contents)</classname>
Writes data to <classname>$file</classname>, which resides in the
users private dir.
</para>
<para>
Example:
<programlisting>
$data = $phpgw->vfs->write_userfile("file.txt");
</programlisting>
</para>
</sect2>
<sect2>
<title>$phpgw->vfs->list_userfiles</title>
<para>
<classname>$phpgw->vfs->list_userfiles()</classname>
Returns an array which has the list of files in the users private dir.
</para>
<para>
Example:
<programlisting>
$filelist = array();
$filelist = $phpgw->vfs->list_userfiles();
</programlisting>
</para>
</sect2>
</sect1>
<sect1>
<title>Email/NNTP Functions</title>
<para></para>
<sect2>
<title>$phpgw->send->msg</title>
<para>
<classname>$phpgw->msg->send($service, $to, $subject, $body, $msgtype, $cc, $bcc)</classname>
Send a message via email or NNTP and returns any error codes.
</para>
<para>
Example:
<programlisting>
$to = "someuser@domain.com";
$subject = "Hello buddy";
$body = "Give me a call\n Been wondering what your up to.";
$errors = $phpgw->msg->send("email", $to, $subject, $body);
</programlisting>
</para>
</sect2>
</sect1>
</chapter>

View File

@ -1,137 +0,0 @@
<chapter id="devconfvar">
<title>Configuration Variables</title>
<simplesect>
<title>Introduction</title>
<para>
phpGroupWare attempt to provide developers with as much information about the user, group,
server, and application configuration as possible. To do this we provide a multi-dimensional
array called <classname>$phpgw_info[]</classname>, which includes all the information about
your environment.Due to the multi-dimensional array approach. getting these values is easy.
</para>
<para>
Here are some examples:
<programlisting>
&lt;?php
// To do a hello username
echo "Hello " . $phpgw_info["user"]["fullname"];
//If username first name is John and last name is Doe, prints: 'Hello John Doe'
?&gt;
&lt;?php
// To find out the location of the imap server
echo "IMAP Server is named: " . $phpgw_info["server"]["imap_server"];
//If imap is running on localhost, prints: 'IMAP Server is named: localhost'
?&gt;
</programlisting>
</para>
</simplesect>
<simplesect>
<title>User information</title>
<para>
<simplelist type=vert columns=1>
<member><classname>$phpgw_info["user"]["userid"] = </classname>The user ID</member>
<member><classname>$phpgw_info["user"]["sessionid"] = </classname>The session ID</member>
<member><classname>$phpgw_info["user"]["theme"] = </classname>Selected theme</member>
<member><classname>$phpgw_info["user"]["private_dir"] = </classname>Users private dir. Use phpGroupWare core functions for access to the files.</member>
<member><classname>$phpgw_info["user"]["firstname"] = </classname>Users first name</member>
<member><classname>$phpgw_info["user"]["lastname"] = </classname>Users last name </member>
<member><classname>$phpgw_info["user"]["fullname"] = </classname>Users Full Name </member>
<member><classname>$phpgw_info["user"]["groups"] = </classname>Groups the user is a member of </member>
<member><classname>$phpgw_info["user"]["app_perms"] = </classname>If the user has access to the current application </member>
<member><classname>$phpgw_info["user"]["lastlogin"] = </classname>Last time the user logged in. </member>
<member><classname>$phpgw_info["user"]["lastloginfrom"] = </classname>Where they logged in from the last time. </member>
<member><classname>$phpgw_info["user"]["lastpasswd_change"] = </classname>Last time they changed their password. </member>
<member><classname>$phpgw_info["user"]["passwd"] = </classname>Hashed password. </member>
<member><classname>$phpgw_info["user"]["status"] = </classname>If the user is enabled. </member>
<member><classname>$phpgw_info["user"]["logintime"] = </classname>Time they logged into their current session. </member>
<member><classname>$phpgw_info["user"]["session_dla"] = </classname>Last time they did anything in their current session </member>
<member><classname>$phpgw_info["user"]["session_ip"] = </classname>Current IP address </member>
</simplelist>
</para>
</simplesect>
<simplesect>
<title>Group information</title>
<para>
<classname>$phpgw_info["group"]["group_names"] = </classname>List of groups.
</para>
</simplesect>
<simplesect>
<title>Server information</title>
<para>
<simplelist type=vert columns=1>
<member><classname>$phpgw_info["server"]["server_root"] = </classname>Main installation directory </member>
<member><classname>$phpgw_info["server"]["include_root"] = </classname>Location of the '<classname>inc</classname>' directory. </member>
<member><classname>$phpgw_info["server"]["temp_dir"] = </classname>Directory that can be used for temporarily storing files </member>
<member><classname>$phpgw_info["server"]["files_dir"] = </classname>Directory er and group files are stored </member>
<member><classname>$phpgw_info["server"]["common_include_dir"] = </classname>Location of the core/shared include files. </member>
<member><classname>$phpgw_info["server"]["template_dir"] = </classname>Active template files directory. This is defaulted by the server, and changeable by the user. </member>
<member><classname>$phpgw_info["server"]["dir_separator"] = </classname>Allows compatibility with WindowsNT directory format, </member>
<member><classname>$phpgw_info["server"]["encrpytkey"] = </classname>Key used for encryption functions </member>
<member><classname>$phpgw_info["server"]["site_title"] = </classname>Site Title will show in the title bar of each webpage. </member>
<member><classname>$phpgw_info["server"]["webserver_url"] = </classname>URL to phpGroupWare installation. </member>
<member><classname>$phpgw_info["server"]["hostname"] = </classname>Name of the server phpGroupWare is installed upon. </member>
<member><classname>$phpgw_info["server"]["charset"] = </classname>default charset, default:<classname>iso-8859-1</classname> </member>
<member><classname>$phpgw_info["server"]["version"] = </classname>phpGroupWare version. </member>
</simplelist>
</para>
</simplesect>
<simplesect>
<title>Database information</title>
<para>
It is unlikely you will need these, because <classname>$phpgw_info_db</classname> will already be loaded as a database for you to use.
<simplelist type=vert columns=1>
<member><classname>$phpgw_info["server"]["db_host"] = </classname>Address of the database server. Usually this is set to localhost. </member>
<member><classname>$phpgw_info["server"]["db_name"] = </classname>Database name. </member>
<member><classname>$phpgw_info["server"]["db_user"] = </classname>User name. </member>
<member><classname>$phpgw_info["server"]["db_pass"] = </classname>Password </member>
<member><classname>$phpgw_info["server"]["db_type"] = </classname>Type of database. Currently MySQL and PostgreSQL are supported. </member>
</simplelist>
</para>
</simplesect>
<simplesect>
<title>Mail information</title>
<para>
It is unlikely you will need these, because most email needs are services thru core phpGroupWare functions.
<simplelist type=vert columns=1>
<member><classname>$phpgw_info["server"]["mail_server"] = </classname>Address of the IMAP server. Usually this is set to localhost. </member>
<member><classname>$phpgw_info["server"]["mail_server_type"] = </classname>IMAP or POP3 </member>
<member><classname>$phpgw_info["server"]["imap_server_type"] = </classname>Cyrus or Uwash </member>
<member><classname>$phpgw_info["server"]["imap_port"] = </classname>This is usually 143, and should only be changed if there is a good reason. </member>
<member><classname>$phpgw_info["server"]["mail_suffix] = </classname>This is the domain name, used to add to email address </member>
<member><classname>$phpgw_info["server"]["mail_login_type"] = </classname>This adds support for VMailMgr. Generally this should be set to '<classname>standard</classname>'. </member>
<member><classname>$phpgw_info["server"]["smtp_server"] = </classname>Address of the SMTP server. Usually this is set to localhost. </member>
<member><classname>$phpgw_info["server"]["smtp_port"] = </classname>This is usually 25, and should only be changed if there is a good reason. </member>
</simplelist>
</para>
</simplesect>
<simplesect>
<title>NNTP information</title>
<para>
<simplelist type=vert columns=1>
<member><classname>$phpgw_info["server"]["nntp_server"] = </classname>Address of the NNTP server. </member>
<member><classname>$phpgw_info["server"]["nntp_port"] = </classname>This is usually XX, and should only be changed if there is a good reason. </member>
<member><classname>$phpgw_info["server"]["nntp_sender"] = </classname>Unknown </member>
<member><classname>$phpgw_info["server"]["nntp_organization"] = </classname>Unknown </member>
<member><classname>$phpgw_info["server"]["nntp_admin"] = </classname>Unknown </member>
</simplelist>
</para>
</simplesect>
<simplesect>
<title>Application information</title>
<para>
Each application has the following information available.
<simplelist type=vert columns=1>
<member><classname>$phpgw_info["apps"]["appname"]["title"] = </classname>The title of the application. </member>
<member><classname>$phpgw_info["apps"]["appname"]["enabled"] = </classname>If the application is enabled. True or False. </member>
<member><classname>$phpgw_info["server"]["app_include_dir"] = </classname>Location of the current application include files. </member>
<member><classname>$phpgw_info["server"]["app_template_dir"] = </classname>Location of the current application tpl files. </member>
<member><classname>$phpgw_info["server"]["app_lang_dir"] = </classname>Location of the current lang directory. </member>
<member><classname>$phpgw_info["server"]["app_auth"] = </classname>If the server and current user have access to current application </member>
<member><classname>$phpgw_info["server"]["app_current"] = </classname>name of the current application. </member>
</simplelist>
</para>
</simplesect>
</chapter>

View File

@ -1,22 +0,0 @@
<part label="V">
<title>Developers Documentation</title>
<partintro>
<para>
Dan Kuykendall &lt;dan@kuykendall.org&gt;
</para>
<para>
This document explains phpGroupWare's infrastructure and API, along with
what is required to integrate applications into it.
</para>
</partintro>
&devintro;
&devguid;
&devinst;
&devinfra;
&devapi;
&devconfvar;
&devlangsup;
&devtemp;
&devabout;
</part>

View File

@ -1,63 +0,0 @@
<chapter id="devguid">
<title>Guidelines</title>
<simplesect>
<title>Requirements</title>
<para>
These guidelines must be followed for any application that wants
considered for inclusion into phpGroupWare deluxe.
</para>
<para>
<itemizedlist mark=bullet>
<listitem><para>It must run on PHP3 and PHP4. </para></listitem>
<listitem><para>SQL statements must be compatible with both MySQL
and PostgreSQL.</para></listitem>
<listitem><para>It must use our default header.inc.php include.</para></listitem>
<listitem><para>It must use our <classname>$phpgw_link($url)</classname> for all links
(this is for session support).</para></listitem>
<listitem><para>It must use "post" for forms.</para></listitem>
<listitem><para>It must respect phpGW group rights and phpGW user permissions.</para></listitem>
<listitem><para>It must use our directory structure, template support and lang
(multi-language) support.</para></listitem>
<listitem><para>Where possible it should run on both Unix and NT platforms.</para></listitem>
</itemizedlist>
</para>
<para>
For applications that do not meet these requirements, they can be
available to users via the phpGroupWare Apps project, or whatever
means the developers decide.If you need help converting your
application to templates and our lang support, we will try to
connect you with someone to help.
</para>
</simplesect>
<simplesect>
<title>Writing/porting your application</title>
<para><emphasis>Include files</emphasis></para>
<para>
Each PHP page you write will need to include the header.inc.php along
with a few variables.This is done by putting this at the top of each PHP page.
<programlisting>
&lt;?php
$phpgw_info["flags"]["currentapp"] = "appname";
include("../header.inc.php");
?&gt;
</programlisting>
Of course change application name to fit.
This include will provide the following things:
<itemizedlist mark=bullet>
<listitem><para>The phpgwAPI - The phpGroupWare API will be loaded.</para></listitem>
<listitem><para>The phpGW navbar will be loaded (by default, but can be disabled until a later point.</para></listitem>
<listitem><para>appname/inc/functions.inc.php - This file is loaded just after the phpgwAPI
and before any HTML code is generated. This file should include all your application
specific functions..You are welcome to include any additional files you need from within
this file. </para></listitem>
<listitem><para>appname/inc/header.inc.php - This file is loaded just after the system header/navbar,
and allows developers to use it for whatever they need to load.</para></listitem>
<listitem><para>appname/inc/footer.inc.php - This file is loaded just before the system footer,
allowing developers to close connections and whatever else they need.</para></listitem>
<listitem><para>The phpGW footer will be loaded, which closes several connections.</para></listitem>
</itemizedlist>
</para>
</simplesect>
</chapter>

View File

@ -1,117 +0,0 @@
<chapter id="devinfra">
<title>Infrastructure</title>
<simplesect>
<title>Overview</title>
<para>
phpGroupWare attempts to provide developers with a sound directory
structure to work from. The directory layout may seem complex at first,
but after some use, you will see that it is designed to accommodate a
large number of applications and functions.
</para>
</simplesect>
<simplesect>
<title>Directory tree</title>
<para>
<programlisting>
.-- addressbook
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- admin
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- calendar
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | `-- footer.inc.php
| `-- templates
| `-- default
|-- cron
|-- doc
|-- email
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | |-- preferences.inc.php
| | `-- admin.inc.php
| `-- templates
| `-- default
|-- filemanager
|-- files
| |-- groups
| `-- users
|-- inc
| |-- phpgwapi
| | |-- phpgw.inc.php
| | |-- phpgw_info.inc.php
| | |-- phpgw_common.inc.php
| | `-- etc...
| `-- templates
| |-- default
| | |-- addressbook
| | |-- admin
| | |-- calendar
| | |-- common
| | |-- email
| | |-- filemanager
| | |-- headlines
| | |-- preferences
| | |-- todo
| | `-- tts
| `-- icons
| |-- email
| |-- calendar
| `-- tts
|-- preferences
| `-- images
| | `-- navbar.gif
| `-- inc
| | |-- functions.inc.php
| | |-- header.inc.php
| | |-- footer.inc.php
| | `-- preferences.inc.php
| `-- templates
| `-- default
|-- themes
`-- todo
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| `-- footer.inc.php
`-- templates
`-- default
</programlisting>
</para>
</simplesect>
<simplesect>
<title>Translations</title>
<para>
The translations are now being done thru the database, and will be configurable
to use other mechanisms.We are completing a program called Transy, which will
provide developers/translators a nice GUI for building and updating translations.
In the mean time you will need to create a SQL script yourself and name it lang.sql.
You can copy the one in doc/lang.sql and use it as a template.
</para>
</simplesect>
</chapter>

View File

@ -1,115 +0,0 @@
<chapter id="devinstall">
<title>Installing your application</title>
<simplesect>
<title>Overview</title>
<para>It is fairly simple to add and delete applications to/from phpGroupWare.</para>
</simplesect>
<simplesect>
<title>Automatic features</title>
<para>
To make things easy for developers we go ahead and load the following files.
<itemizedlist>
<listitem><para> <filename>appname/inc/functions.inc.php</filename> - This file should include
all your application specific functions.</para></listitem>
<listitem><para> <filename>appname/inc/header.inc.php</filename> - This file is loaded by
<classname>$phpgw->common->header</classname> just after the system header/navbar,
and allows developers to use it for whatever they need to load.</para></listitem>
<listitem><para> <filename>appname/inc/footer.inc.php</filename> - This file is loaded by
<classname>$phpgw->common->footer</classname> just before the system footer,
allowing developers to close connections and whatever else they need.</para></listitem>
</itemizedlist>
</para>
</simplesect>
<simplesect>
<title>Adding files, directories and icons.</title>
<para>
You will need to create the following directories for your code
(replace 'appname' with your application name)
<programlisting>
`-- appname
`-- images
| `-- navbar.gif
`-- inc
| |-- functions.inc.php
| |-- header.inc.php
| |-- footer.inc.php
| |-- preferences.inc.php
| `-- admin.inc.php
`-- templates
`-- default
</programlisting>
</para>
</simplesect>
<simplesect>
<title>Making phpGroupWare aware of your application</title>
<para>
To make the application aware of your application, add your application details to the applications table. This can be done via the GUI administration screen, or via a SQL script.
<programlisting>
insert into applications (app_name, app_title, app_enabled) values ('appname', 'The App name', 1);
</programlisting>
</para>
</simplesect>
<simplesect>
<title>Hooking into Administration page</title>
<para>
When a user goes to the Administration page, it stats appname/inc/admin.inc.php
for each application that is enabled, in alphabetical order of application title.
If the file exists, it is include()d in the hopes it will display a selection of
links to configure that application.
Simple Example:
<programlisting>
&lt;?php
$img = "/" . $appname . "/images/navbar.gif";
section_start("My Application",$img);
echo "&lt;a HREF=\"" . $phpgw->link("myAdminPage.php") . "\"&gt;";
echo lang("Change myApp settings") . "&lt;/a&gt;";
section_end();
?&gt;
</programlisting>
Look at headlines/inc/admin.inc.php and admin/inc/admin.inc.php for more examples.
Things to note:
<itemizedlist mark=bullet>
<listitem><para>Links are relative to the <filename>admin/index.php</filename> file, not your
application's base directory. (so use <classname>$appname</classname> in your
<classname>link()</classname> calls)</para></listitem>
<listitem><para>The file is brought in with include() so be careful to not pollute the name-space
too much</para></listitem>
</itemizedlist>
The standard $phpgw and $phpgw_info variables are in-scope, as is $appname
which corresponds to the application name in the path.
There are 2 functions to coordinate the display of each application's links,
section_start() and section_end()
</para>
</simplesect>
<simplesect>
<title>section_start</title>
<para>
<classname>section_start($title,$icon_url)</classname>
starts the section for your application. <classname>$title</classname> is passed through
<classname>lang()</classname>
for you. <classname>$icon_url</classname> should be page-relative to admin/index.php or
an absolute URL.
</para>
</simplesect>
<simplesect>
<title>section_end</title>
<para>
<classname>section_end()</classname> closes the section that was started with section_start().
</para>
</simplesect>
<simplesect>
<title>Hooking into Preferences page</title>
<para>
The mechanism to hook into the preferences page is identical to the one used to
hook into the administration page, however it looks for
<filename>appname/inc/preferences.inc.php</filename> instead of
<filename>appname/inc/admin.inc.php</filename>. The same functions and variables are defined.
</para>
</simplesect>
</chapter>

View File

@ -1,29 +0,0 @@
<chapter id="devintro">
<title>Introduction</title>
<para>
phpGroupWare is a web based groupware application framework (API),
for writing applications. Integrated applications such as email,
calendar, todo list, address book, and file manager are included.
</para>
<simplesect>
<title>Overview of application writing</title>
<para>
We have attempted to make writing application for phpGroupWare as
painless as possible. We hope any pain and suffering is cause by making
your application work, but not dealing with phpGroupWare itself.
</para>
</simplesect>
<simplesect>
<title>What does the phpGroupWare API provide?</title>
<para>
The phpGroupWare API handles session management, user/group management,
has support for multiple databases, using the PHPLIB database abstraction
method, we support templates using the PHPLIB Templates class, a file
system interface, and even a network i/o interface. On top of these
standard functions, phpGroupWare provides several functions to give
you the information you need about the users environment, and to properly
plug into phpGroupWare.
</para>
</simplesect>
</chapter>

View File

@ -1,162 +0,0 @@
<chapter id="devlangsup">
<title>Using Language Support</title>
<simplesect>
<title>Overview</title>
<para>
phpGroupWare is built using a multi-language support scheme. This means the pages can be
translated to other languages very easily. Translations of text strings are
stored in the phpGroupWare database, and can be modified by the phpGroupWare
administrator.
</para>
</simplesect>
<simplesect>
<title>How to use lang support</title>
<para>
The <classname>lang()</classname> function is your application's interface to phpGroupWare's
internationalization support.
While developing your application, just wrap all your text output with calls to
lang(), as in the following code:
<programlisting>
$x = 42;
echo lang("The counter is %1",$x)."&lt;br&gt;";
</programlisting>
This will attempt to translate "The counter is %1", and return a translated version
based on the current application and language in use. Note how the position that
<classname>$x</classname> will end up is controlled by the format string, <emphasis>not</emphasis> by
building up the string in your code. This allows your application to be translated
to languages where the actual number is not placed at the end of the string.
When a translation is not found, the original text will be returned with a * after
the string. This makes it easy to develop your application, then go back and
add missing translations (identified by the *) later.
Without a specific translation in the lang table, the above code will print:
<classname>
The counter is 42*&lt;br&gt;
</classname>
If the current user speaks Italian, they string returned may instead be:
<classname>
il contatore è 42&lt;br&gt;
</classname>
</para>
</simplesect>
<simplesect>
<title>The lang function</title>
<para>
<classname>lang($key, $m1="", $m2="", $m3="", $m4="", $m5="",
$m6="", $m7="", $m8="", $m9="", $m10="")
</classname>
<variablelist>
<varlistentry>
<term>$key</term>
<listitem>
<para>is the string to translate and may contain replacement directives of the form <classname>%n</classname>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>$m1</term>
<listitem>
<para> is the first replacement value or may be an array of replacement values (in which case $m2 and above are ignored). </para>
</listitem>
</varlistentry>
<varlistentry>
<term>$m2</term>
<listitem>
<para>- $m10/ the 2nd through 10th replacement values if $m1 is not an array. </para>
</listitem>
</varlistentry>
</variablelist>
The database is searched for rows with a <classname>lang.message_id</classname> that matches <classname>$key</classname>.
If a translation is not found, the original <classname>$key</classname> is used. The translation engine then replaces
all tokens of the form <classname>%N</classname> with the Nth parameter (either <classname>$m1[N]</classname> or <classname>$mN</classname>).
</para>
</simplesect>
<simplesect>
<title>Adding translation data</title>
<para>
An application called <emphasis>Transy</emphasis> is being developed to make this easier, until then you can create
the translation data manually.
</para>
</simplesect>
<simplesect>
<title>The lang table</title>
<para>
The translation class uses the lang table for all translations.
We are concerned with 4 of the columns to create a translation:
<variablelist>
<varlistentry>
<term>message_id</term>
<listitem>
<para>
The key to identify the message (the <classname>$key</classname> passed
to the <classname>lang()</classname> function). This is written in English.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>app_name</term>
<listitem>
<para>
The application the translation applies to, or
<classname>common</classname> if it is common across multiple applications.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>lang</term>
<listitem>
<para>The code for the language the translation is in. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>content</term>
<listitem>
<para>The translated string. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</simplesect>
<simplesect>
<title>lang.sql</title>
<para>
Currently all applications, and the core phpGroupWare source tree
have a <classname>lang.sql</classname> file. This is the place to add translation
data. Just add lines of the form:
<programlisting>
REPLACE INTO lang (message_id, app_name, lang, content)
VALUES( 'account has been deleted','common','en','Account has been deleted');
</programlisting>
translating the <classname>content</classname> to reflect the <classname>message_id</classname> string in the <classname>lang</classname> language.
If the string is specific to your application, put your application name in for <classname>app_name</classname>
otherwise use the name <classname>common</classname>. The <classname>message_id</classname> should be in lower case for a small
increase in speed.
</para>
</simplesect>
<simplesect>
<title>Common return codes</title>
<para>
If you browse through the phpGroupWare sources, you may notice
a pattern to the return codes used in the higher-level functions.
The codes used are partially documented in the <classname>doc/developers/CODES</classname>
file.
Codes are used as a simple way to communicate common error and progress
conditions back to the user. They are mapped to a text string through the
<classname>check_code()</classname> function, which passes the strings through
<classname>lang()</classname> before returning.
For example, calling
<programlisting>
echo check_code(13);
</programlisting>
Would print
<classname>
Your message has been sent
</classname>
translated into the current language.
</para>
</simplesect>
</chapter>

View File

@ -1,19 +0,0 @@
<chapter id="devtemp">
<title>Using Templates</title>
<simplesect>
<title>Overview</title>
<para>
phpGroupWare is built using a templates based design. This means the display pages, stored in tpl files, can be translated to other languages, made to look completely different.
</para>
</simplesect>
<simplesect>
<title>How to use templates</title>
<para>
Some instructions on using templates.
</para>
<para>
For Further info read the PHPLIBs documentation for their template class.
</para>
</simplesect>
</chapter>

View File

@ -1,43 +0,0 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!ENTITY introduction SYSTEM "introduction.sgml">
<!ENTITY installation SYSTEM "installation.sgml">
<!ENTITY installing SYSTEM "install.sgml">
<!ENTITY using SYSTEM "using.sgml">
<!ENTITY admins SYSTEM "admins.sgml">
<!ENTITY about SYSTEM "about.sgml">
<!ENTITY troubleshoot SYSTEM "trouble.sgml">
]>
<book>
<title>phpGroupWare Docs V0.05</title>
<bookinfo>
<authorgroup>
<author>
<firstname>Joseph</firstname><surname>Engo</surname>
<authorblurb>
<para>jengo@phpgroupware.org</para>
</authorblurb>
<contrib><comment>the founder and active of phpgroupware</comment></contrib>
</author>
<author>
<firstname>Dan</firstname><surname>Kuykendall</surname>
<authorblurb>
<para>&lt;dan@kuykendall.org&gt</para>
</authorblurb>
<contrib><comment>the phpGroupWare project leader</comment></contrib>
</author>
</authorgroup>
</bookinfo>
<dedication>
<para>
Thanks to Joesph Engo for starting phpGroupWare (at the time called webdistro) and the core of this HOWTO.
Thanks to all the developers and users who contribute to making phpGroupWare such a success.
</para>
</dedication>
&introduction;
&installation;
&using;
&admins;
$troubleshoot;
&about;
</book>

View File

@ -1,169 +0,0 @@
<chapter id="installing">
<title>Installing on Tested Systems</title>
<para>
After you have met the system requirements, You can install
it from the TarBall or you can get it directly from CVS.
</para>
<sect1 id=tarballins>
<title>Installing from TarBall</title>
<para>Installing from a TarBall is very easy. The files should be
installed in the webserver directory. So all you need to
do is unpack the tar ball and copy the whole directory to
the webserver directory (eg. /home/httpd/html for default
apache configuration in many linux distros).You may
have to get required permissions to do this. Contact
your system administrator if you dont have the permission
to write to your webserver directory
</para>
</sect1>
<sect1 id=CVSins>
<title>Installing from CVS</title>
<para>Fill this Seek3r</para>
</sect1>
<sect1>
<title>Setup / Configure phpGroupWare</title>
<para>
Copy the <filename>header.inc.php.sample</filename> file to
<filename>header.inc.php</filename> and edit the file, following the
directions in the comments.
</para>
<para>
Then point your browser to phpgroupware/setup/ which will
create (or upgrade) the database tables.
You wil be asked to login, using the password set in
<filename>header.inc.php</filename>. Setup will attempt to determine what version
of the phpGroupWare database you have installed, and upgrade to the most recent
version.
</para>
<note><title>Note</title>
<para>
The developers are concentrating on getting the beta
working, and have not spent a great deal of time building upgrade scripts from the
alpha versions of phpGroupWare. You are advised to backup your existing alpha
database before running the setup script to avoid problems!
</para>
</note>
<para>
If you get no error messages, continue on to phpgroupware/setup/config.php
to configure phpGroupWare to your system.
</para>
<para>
If you are using the email system you will need to create a temporary directory
where file uploads will be stored. For security reasons, you should <constant>chown
nobody.nobody</constant> and <constant>chmod 700</constant> to that directory. Depending on your system configuration.
Default installs of Apache normally run as the user nobody. You may need your system
administrator to do this for you if you do not have root access.
</para>
<para>
If you do not have access to root, create this file and run it.
</para>
<programlisting>
&lt;?php
if (mkdir("/path/to/temp/directory",0700)) {
echo "Directory created successfully";
} else {
echo "Error creating directory";
}
?&gt;
</programlisting>
<para>
If you have access to cron, you may want to setup the files in the cron
directory.
</para>
<para>
stalesessions.pl - There are 2 reasons for this file.
<itemizedlist mark=bullet>
<listitem><para>Users always forget to logout. This way the session doesn't sit around forever, creating a possible security risk.</para></listitem>
<listitem><para>The email system requires plain text passwords which are stored in the sessions table.</para></listitem>
</itemizedlist>
This file is not required, you can simply disable cron_apps in the admin -> applications section
to clean out the sessions table during login and logout
</para>
<para>
stale_uploads.pl - This will delete file attachments for messages that where not
completed. If a users browser crashes, Internet connection dies, etc, their
files will sit there forever unless deleted. You could add a few lines to
logout.php that will look in the temp directory for any stale uploads and delete
them. But, once again, it becomes a performance issue.
</para>
</sect1>
<sect1>
<title>Testing the install</title>
<para>
If your config is setup properly you can now login. Point your browser to the
installed location and login with the username <classname>demo</classname> and the password is <classname>1234</classname>
At this point it would be a good idea to create a new user with administrative privileges and
delete the old one.
</para>
</sect1>
<sect1>
<title>Installing additional applications</title>
<para>
Once you have the core phpGroupWare install up and running,
you may want to download and install additional applications.
</para>
<para>
You should consult any <filename>README</filename> or <filename>INSTALL</filename>
files that come with the new application first, as most require you
to create additional tables in the database, and add additional
translation data to the lang table (typically a file called <filename>lang.sql</filename>)
</para>
<para>
You install the new application within the phpGroupWare install tree by
copying the application directory into the phpGroupWare install location,
and enabling the application through the Administration page.
</para>
<para>
For example, this is the process to install the
Headlines application (see <ulink url="http://sourceforge.net/phpgwapps/">
<citetitle>http://sourceforge.net/phpgwapps/</citetitle></ulink> for
more on this and other applications).
<itemizedlist mark=bullet>
<listitem><para>Download the .tar.gz file for the application, or check out the source
with cvs with
<programlisting>
export CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsroot/phpgwapps'
cvs login (just hit enter if prompted for a password)
cvs co headlines
</programlisting></para></listitem>
<listitem><para>Move the <classname>headlines</classname> directory into your phpGroupWare
install directory.</para></listitem>
<listitem><para>Log into phpGroupWare as an administrative user, and go to the Administration page.
</para></listitem>
<listitem><para>In the first section, choose the <classname>Applications</classname> link.
</para></listitem>
<listitem><para>Click on add, and fill in the form.</para>
<para>
<application>Application name</application>
should be identical to the name
of the directory you moved into the phpGroupWare install, in this case use <classname>headlines</classname>
</para>
<para>
<application>Application Title</application>
is shown in the navigation bar and other places to refer to the
new application. Enter <classname>Headlines</classname> for this example.
</para>
<para>
<application>Enabled</application>
can be used to disable an application for all users temporially. You
should normal check the box to enable the application.
</para>
</listitem>
<listitem><para>Back in the Administration page, you need to enable the application for specific users
or user groups by editing them, and checking the new <classname>Headlines</classname> box that appears
in the middle of the account editing page.</para></listitem>
<listitem><para>Once you have added the Headlines app to your account, you should see a Headlines
entry in the Administration and Preferences pages, and there should be an icon for
the Headlines application in the navigation bar.</para></listitem>
<listitem><para>Once you enable a few of the Headlines sites through the Administration page link, you
should see headlines grabbed from the sites you selected when you click on the Headlines
icon in the navigation bar.</para></listitem>
</itemizedlist>
</para>
</sect1>
</chapter>

View File

@ -1,68 +0,0 @@
<part label="II">
<title>Installation</title>
<partintro>
<para>
Installation and Configuration of phpGroupWare has never been easy. Just point and click , yeah
its very easy :-). Since this is still a beta version we do expect some bugs . By carefully reading
this document you can easly install phpGroupWare.
</para>
</partintro>
<chapter id="requirements">
<title>Requirements</title>
<para>
You will need PHP compiled and installed on your system. You will also need MySQL or PostgreSQL setup.
If you are planning on using the email system, you will need to have an IMAP server installed and IMAP support compiled into PHP.
You can have it installed as an Apache module or command line version, the Apache module is preferred.
We will assume that you are running on a Linux or other Unix system for these steps.
Windows is supported, but there is no documentation for it currently.
</para>
<simplesect>
<title>Tested Systems</title>
<para>
On Linux 2.2.x
<itemizedlist mark=bullet>
<listitem><para>PHP 3.0.15+ / PHP 4.0.x</para></listitem>
<listitem><para>Apache 1.3.x</para></listitem>
<listitem><para>MySQL 3.22.25 or PostgreSQL 7.0.x</para></listitem>
<listitem><para>Courier-IMAP 0.33+ and/or qmail 1.03 for POP3 access</para></listitem>
</itemizedlist>
We have reports of it working on Windows NT and OS/2, and using Oracle as the database.</para>
</simplesect>
</chapter>
<chapter id="obtaining">
<title>Obtaining phpGroupWare</title>
<para>
While we are still in the Beta phase of phpGroupWare, you may
want to track the CVS copy as closely as possible. The released
versions are more stable, but often contain bugs that have been fixed
in the CVS version.
</para>
<simplesect>
<title>Released Versions</title>
<para>
The downloads section on the <ulink url="http://www.phpgroupware.org/"><citetitle>site</citetitle></ulink>
contains links to the most recent releases, and several mirror sites
for the releases.
</para>
</simplesect>
<simplesect>
<title>Developer's version from CVS</title>
<para>
If you have never used CVS, you may want to read through the doucmentation
found at <ulink url="http://www.cvshome.org/"><citetitle>www.cvshome.org</citetitle>
</ulink>.
The CVS pages for the core and apps projects can be found at
<ulink url="http://sourceforge.net/cvs/?group_id=7305">
<citetitle>phpGroupWare Core CVS</citetitle></ulink>
, and <ulink url="http://sourceforge.net/cvs/?group_id=9787">
<citetitle>phpGroupWare Apps CVS</citetitle></ulink>.
Follow the directions for <emphasis>Anonymous CVS access</emphasis> and you should
have the most recent development copy of phpGroupWare in no time.
</para>
</simplesect>
</chapter>
&installing;
&trobshoot;
</part>

View File

@ -1,46 +0,0 @@
<part label="I">
<title>Introduction</title>
<partintro>
<para>
do yo have questions on using phpGroupWare , like What? Why? What for? What's in for me?
then you should seriously read this doc :-).
</para>
</partintro>
<chapter id="what">
<title>What is phpGroupWare</title>
<para>
phpGroupWare is a web based groupware application that includes integrated features such as
email, calendar, todo list, address book, file manager, headline news, and a trouble ticket system.
It should run on all systems where PHP is available and currently supports MySQL ,PostgreSQL and
also for oracle.
</para>
</chapter>
<chapter id="why">
<title>Why should u use it</title>
<para>
You should use it if you would like a powerful groupware system that can be access from anywhere on the Internet.
For companies with a distributed user base, it's an ideal solution. Oh, and did I mention that its FREE?
</para>
</chapter>
<chapter id="dochis">
<title>A short History</title>
<para>
This document was started by Joseph Engo and reworked by Dan Kuykendall and converted to do
DocBook By Powell Molleti.
</para>
<simplesect>
<title>Copyright</title>
<para>
Copyright (c) Dan Kuykendall.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation
A copy of the license is available at
<ulink url="http://www.gnu.org/copyleft/fdl.txt">
<citetitle>GNU Free Documentation License Making TeXWork</citetitle>
</ulink>
</para>
</simplesect>
</chapter>
</part>

View File

@ -1,85 +0,0 @@
<chapter id="troubleshoot">
<title>Trouble Shooting</title>
<warning>
<para>
phpGroupWare is still Beta software, expect some bugs
along the way. If you run into a problem not discussed here, contact us
through one of the methods listed on the website.
</para>
</warning>
<para>
The phpGroupWare developers can most often be seen hanging out in <emphasis>#phpGroupWare</emphasis>
on <emphasis>irc.openprojects.net</emphasis> if you require real-time help.
</para>
<para>
Also check the FAQ in this directory for additional common questions,
it is available as FAQ.sgml, FAQ.txt and FAQ.html
</para>
<sect1 id="trob1">
<title>I get "Unable to open mailbox" when using the email application</title>
<para>
At the time of this writing (2000-09-27) you must use the same
username and password in phpGroupWare that you use to log into
your mail server. If you change your password and it still isn't working,
try logging out of phpGroupWare (the rightmost icon in the navigation bar)
and then log back in.
</para>
<para>
An preference page to edit the email settings is being developed, and should
appear shortly after the first beta release.
</para>
</sect1>
<sect1 id="trob2">
<title>It seems to hang when I try to read my mail</title>
<para>
This is often a problem if you are using POP3 instead of IMAP, and you have
more than a few hundred messages in your mailbox.
</para>
<para>
By default, php is set up to time-out a request that takes over 30 seconds
to complete. phpGroupWare must do a lot of work the first time your POP3 mailbox
is opened, and every time you get new mail, which may take more than the 30
second timeout.
</para>
<para>
You can either clean up your mailbox with another mail program, or
add the line
<programlisting>
set_time_limit(0);
</programlisting>
to the top of the inc/phpgwapi/phpgw_msg_pop3.inc.php file, just before
the line <classname>class msg extends msg_common</classname>
</para>
<para>
If you choose to edit the file, be patient when loading a large POP3
mailbox - the author tested against a mailbox with 2500 messages in it,
but it took 15 minutes to load the page. We highly suggest you use IMAP
if you expect to have more than a few hundred messages in your mailbox.
</para>
</sect1>
<sect1 id="trob3">
<title>When I log in I see the directory listing instead of a web page</title>
<para>You are using Apache, this often means you need to add
<classname>.php</classname> to the <classname>DirectoryIndex</classname> line in your httpd.conf file.
For example:
<programlisting>
DirectoryIndex index.php index.php3 index.html index.htm index.cgi
</programlisting>
</para>
</sect1>
<sect1 id="trob4">
<title>I get garbage that looks like code when I go to the phpGroupWare URL</title>
<para>
This is often because you have php3 installed,
which does not map <classname>.php</classname> to the PHP engine.
For PHP3:
<programlisting>
AddType application/x-httpd-php3 .php3 .php
</programlisting>
For PHP4:
<programlisting>
AddType application/x-httpd-php .php3 .php
</programlisting>
</para>
</sect1>
</chapter>

View File

@ -1,56 +0,0 @@
<part label="III">
<title>Using phpGroupWare</title>
<partintro>
<para>
Using phpGroupWare is a cake walk , thats what people say :-). Reading this doc would
definitely give a head start. If u ever comea cross any problem please report to
</para>
</partintro>
<chapter id="logingin">
<title>Loging into phpgw</title>
<para>
After your setup you can point your browser to <filename>index.php</filename> in the
installation directory. If the set up was right you can login with user name <classname>demo
</classname> and the password is <classname>1234</classname>> Now it is recommended to
create a new user with administrative privileges and delete the old one.
</para>
</chapter>
<chapter id="checkmail">
<title>checking Email</title>
<para></para>
</chapter>
<chapter id="addressbook">
<title>Using Addressbook</title>
<para></para>
</chapter>
<chapter id="calender">
<title>Using Calender</title>
<para></para>
</chapter>
<chapter id="fileman">
<title>Managing Files with file manager</title>
<para></para>
</chapter>
<chapter id="headlines">
<title>Getting Headlines</title>
<para></para>
</chapter>
<chapter id="hr">
<title>Human Resources</title>
<para></para>
</chapter>
<chapter id="pref">
<title>Preferences</title>
<para></para>
</chapter>
<chapter id="todo">
<title>Using todo</title>
<para></para>
</chapter>
<chapter id="tobtick">
<title>Using Trouble ticket</title>
<para></para>
</chapter>
</part>