From 11582200b65550a74cec0ae14978f069907e9055 Mon Sep 17 00:00:00 2001 From: zhangweiwu Date: Fri, 4 Mar 2005 07:36:04 +0000 Subject: [PATCH] Store my wiki draft of modification/correction here temperarelly to the developer's doc before I regain my wiki midification right^_^ --- phpgwapi/doc/DevelopersGuide_wikidraft | 131 +++ phpgwapi/doc/index.html | 1134 ++---------------------- 2 files changed, 183 insertions(+), 1082 deletions(-) create mode 100644 phpgwapi/doc/DevelopersGuide_wikidraft diff --git a/phpgwapi/doc/DevelopersGuide_wikidraft b/phpgwapi/doc/DevelopersGuide_wikidraft new file mode 100644 index 0000000000..fcad3f28e2 --- /dev/null +++ b/phpgwapi/doc/DevelopersGuide_wikidraft @@ -0,0 +1,131 @@ + This document explains eGroupWare's infrastructure and API, + along with what is required to integrate applications into + it. + += Contents = + +
  • Introduction
  • + +
  • Overview of application + writing
  • + +
  • What does the eGroupWare API + provide?
  • + +
  • Guidelines
  • + +
  • Requirements
  • + +
  • Writing/porting your + application
  • + +
  • Installing your application
  • + +
  • Overview
  • + +
  • Automatic features
  • + +
  • Adding files, directories and + icons.
  • + +
  • Making eGroupWare aware of your + application
  • + +
  • Hooking into Administration + page
  • + +
  • Hooking into Preferences + page
  • + +
  • Infrastructure
  • + +
  • Overview
  • + +
  • Directory tree
  • + +
  • Translations
  • + +
  • The API
  • + +
  • +
      +
    1. Introduction
    2. + +
    3. Basic functions
    4. + +
    5. Application Functions
    6. + +
    7. File functions
    8. + +
    9. Email/NNTP Functions
    10. +
    +
  • + +
  • Configuration Variables
  • + +
  • +
      +
    1. Introduction
    2. + +
    3. User information
    4. + +
    5. Group information
    6. + +
    7. Server information
    8. + +
    9. Database information
    10. + +
    11. Mail information
    12. + +
    13. NNTP information
    14. + +
    15. Application + information
    16. +
    +
  • + +
  • Using Language Support
  • + +
  • +
      +
    1. Overview
    2. + +
    3. How to use lang + support
    4. + +
    5. Common return codes
    6. +
    +
  • + +
  • Using Templates
  • + +
  • +
      +
    1. Overview
    2. + +
    3. How to use PHPLIB + templates
    4. + +
    5. How to use eTemplate + templates
    6. +
    +
  • + +
  • About this document
  • + +
  • +
      +
    1. New versions
    2. + +
    3. Comments
    4. + +
    5. History
    6. + +
    7. Copyrights and + Trademarks
    8. + +
    9. Acknowledgments and + Thanks
    10. +
    +
  • + diff --git a/phpgwapi/doc/index.html b/phpgwapi/doc/index.html index 48a86cbadf..bdde9a902b 100644 --- a/phpgwapi/doc/index.html +++ b/phpgwapi/doc/index.html @@ -1,1082 +1,52 @@ - - - - - eGroupWare Application Development - - - - - -

    eGroupWare Application Development

    - -
    - This document explains eGroupWare's infrastructure and API, - along with what is required to integrate applications into - it. -
    - -

    Contents

    - -
      -
    1. Introduction
    2. - -
    3. -
        -
      1. Overview of application - writing
      2. - -
      3. What does the eGroupWare API - provide?
      4. -
      -
    4. - -
    5. Guidelines
    6. - -
    7. -
        -
      1. Requirements
      2. - -
      3. Writing/porting your - application
      4. -
      -
    8. - -
    9. Installing your application
    10. - -
    11. -
        -
      1. Overview
      2. - -
      3. Automatic features
      4. - -
      5. Adding files, directories and - icons.
      6. - -
      7. Making eGroupWare aware of your - application
      8. - -
      9. Hooking into Administration - page
      10. - -
      11. Hooking into Preferences - page
      12. -
      -
    12. - -
    13. Infrastructure
    14. - -
    15. -
        -
      1. Overview
      2. - -
      3. Directory tree
      4. - -
      5. Translations
      6. -
      -
    16. - -
    17. The API
    18. - -
    19. -
        -
      1. Introduction
      2. - -
      3. Basic functions
      4. - -
      5. Application Functions
      6. - -
      7. File functions
      8. - -
      9. Email/NNTP Functions
      10. -
      -
    20. - -
    21. Configuration Variables
    22. - -
    23. -
        -
      1. Introduction
      2. - -
      3. User information
      4. - -
      5. Group information
      6. - -
      7. Server information
      8. - -
      9. Database information
      10. - -
      11. Mail information
      12. - -
      13. NNTP information
      14. - -
      15. Application - information
      16. -
      -
    24. - -
    25. Using Language Support
    26. - -
    27. -
        -
      1. Overview
      2. - -
      3. How to use lang - support
      4. - -
      5. Common return codes
      6. -
      -
    28. - -
    29. Using Templates
    30. - -
    31. -
        -
      1. Overview
      2. - -
      3. How to use PHPLIB - templates
      4. - -
      5. How to use eTemplate - templates
      6. -
      -
    32. - -
    33. About this document
    34. - -
    35. -
        -
      1. New versions
      2. - -
      3. Comments
      4. - -
      5. History
      6. - -
      7. Copyrights and - Trademarks
      8. - -
      9. Acknowledgments and - Thanks
      10. -
      -
    36. -
    - -

    1  Introduction

    - -

    eGroupWare 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.

    - -

    1.1  Overview of - application writing

    - -

    We have attempted to make writing application for eGroupWare - as painless as possible. We hope any pain and suffering is - cause by making your application work, but not dealing with - eGroupWare itself.

    - -

    1.2  What does the - eGroupWare API provide?

    - -

    The eGroupWare 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, eGroupWare provides - several functions to give you the information you need about - the users environment, and to properly plug into - eGroupWare.

    - -

    2  Guidelines

    - -

    2.1  Requirements

    - -

    These guidelines must be followed for any application that - wants considered for inclusion into eGroupWare deluxe:

    - - - -

    2.2  Writing/porting - your application

    - -

    Include files

    - -

    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.

    -
    -<?php
    -$GLOBALS['phpgw_info']['flags']['currentapp'] = 'appname';
    -include('../header.inc.php');
    -?>
    -
    -
    -
    - Of course change application name to fit.
    - This include will provide the following things: - - - -

    3  Installing your - application

    - -

    3.1  Overview

    - -

    It is fairly simple to add and delete applications to/from - eGroupWare.

    - -

    3.2  Automatic - features

    - -

    To make things easy for developers we go ahead and load the - following files.

    - - - -

    3.3  Adding files, - directories and icons.

    - -

    You will need to create the following directories for your - code
    - (replace 'appname' with your application name)
    -

    -
    ---appname
    -
    -  +--inc
    -
    -  |   |--functions.inc.php
    -
    -  |   |--header.inc.php
    -
    -  |   |--hook_preferences.inc.php
    -
    -  |   |--hook_admin.inc.php
    -
    -  |   +--footer.inc.php
    -
    -  +--js
    -
    -  |   |--base
    -
    -  |   +--js_package_name
    -
    -  +--setup
    -
    -  |   |--default_records.inc.php
    -
    -  |   |--setup.inc.php
    -
    -  |   +--tables_current.inc.php
    -
    -  +--templates
    -
    -      +--default
    -
    - -

    3.4  Making eGroupWare - aware of your application

    - -

    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. The - script below should only be used during initial development. - You should use the eGroupWare setup system for install and - updating the final version of your application.

    -
    -INSERT INTO phpgw_applications (app_name, app_title, app_enabled)
    -        VALUES('appname', 'The App name', 1);
    -
    - -

    3.5  Hooking into - Administration page

    - -

    When a user goes to the Administration page, it starts - appname/inc/hook_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:

    -
    -<?php
    -// Old linear script style
    -$file['Site Configuration'] = $GLOBALS['phpgw']->link('myapp/myAdminPage.php');
    -// OR - OOP Style
    -$file['Site Configuration'] = $GLOBALS['phpgw']->link('/index.php',
    -                                        array(menuaction => 'myapp.uiobj.admin_method');
    -display_section('myapp',$file);
    -?&#gt;
    -
    - Look at headlines/inc/hook_admin.inc.php and - admin/inc/hook_admin.inc.php for more examples. Things to note: - - - - The standard $GLOBALS['phpgw'] and $GLOBALS['phpgw_info'] - variables are in-scope, as is $appname which corresponds to the - application name in the path. - -

    3.6  Hooking into - Preferences page

    - -

    The mechanism to hook into the preferences page is identical - to the one used to hook into the administration page, however - it looks for appname/inc/hook_preferences.inc.php instead of - appname/inc/hook_admin.inc.php. The same functions and - variables are defined.

    - -

    4  Infrastructure

    - -

    4.1  Overview

    - -

    eGroupWare 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.

    - -

    4.2  Directory tree

    -
    ---eGroupWare
    -  |
    -  +--admin
    -  |
    -  +--docs (installation docs)
    -  |
    -  +--files (Note: must be out of webserver document root!)
    -  |   |
    -  |   +--groups
    -  |   |
    -  |   +--homes
    -  |   |
    -  |   +--users
    -  |
    -  +--phpgwapi
    -  |   |
    -  |   +--cron (eGroupWare's optional daemons)
    -  |   |
    -  |   +--doc (developers docs)
    -  |   |
    -  |   +--inc
    -  |   |   |
    -  |   |   +--class.phpgw.inc.php
    -  |   |   |
    -  |   |   +--phpgw_info.inc.php
    -  |   |   |
    -  |   |   +--class.common.inc.php
    -  |   |   |
    -  |   |   +--etc..
    -  |   |
    -  |   +--js (javascript)
    -  |   |   |
    -  |   |   +--base
    -  |   |   |
    -  |   |   +--js_package_name
    -  |   |
    -  |   +--manual
    -  |   |
    -  |   +--setup
    -  |   |   |
    -  |   |   +--baseline.inc.php
    -  |   |   |
    -  |   |   +--default_records.inc.php
    -  |   |   |
    -  |   |   +--tables_current.inc.php
    -  |   |   |
    -  |   |   +--tables_update.inc.php
    -  |   |
    -  |   +--templates
    -  |   |   |
    -  |   |   +--default
    -  |   |   |   |
    -  |   |   |   +--images
    -  |   |   |
    -  |   |   +--verilak
    -  |   |       |
    -  |   |       +--images
    -  |   |
    -  |   +--themes
    -  |       |
    -  |       +--default.theme
    -  |
    -  +--preferences
    -  |
    -  +--setup
    -
    - -

    4.3  Translations

    - -

    The translations are now being done thru the database, and - may be configurable to use other mechanisms in future - releases.

    - -

    You can use the developer_tools translations application for - creating the "lang files", which will be installed through the - setup application. Alternatively you can edit the files - manually. The file naming convention for the lang files is - phpgw_<langcode>.lang. The files are stored in - the app/setup directory. The format of the files is as - follows:

    -
    -english phrase in lower case    appname **      Translated phrase in desired case.
    -
    - Notes: - - - -

    5  The API

    - -

    5.1  Introduction

    - -

    eGroupWare attempts to provide developers with a useful API - to handle common tasks.

    - -

    To do this we have created a multi-dimensional class - $GLOBALS['phpgw']->.

    - -

    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.

    - -

    Example: $phpgw->send->msg() is in the - inc/phpgwapi/class.send.inc.php file.

    - -

    5.2  Basic - functions

    - -

    $GLOBALS['phpgw']->link

    - -

    $GLOBALS['phpgw']->link($url, $args)
    - 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:

    -
    -<form name=copy method=post action="<?php echo $GLOBALS['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"> */
    -
    - -

    5.3  Application - Functions

    - -

    $GLOBALS['phpgw']->common->phpgw_header

    - -

    $GLOBALS['phpgw']->phpgw_header()
    - Print out the start of the HTML page, including the navigation - bar and includes appname/inc/header.php, if using deprecated - linear scripts style.

    - -

    $GLOBALS['phpgw']->common->phpgw_footer

    - -

    $GLOBALS['phpgw']->phpgw_footer()
    - Prints the system footer, and includes - appname/inc/footer.php

    - -

    $GLOBALS['phpgw']->common->appsession

    - -

    $GLOBALS['phpgw']->common->appsession($data)
    - Store important information session information that your - application needs.
    - $GLOBALS['phpgw']->appsession will return the value of your - session data is you leave the parameter empty [i.e. - $GLOBALS['phpgw']->appsession()], otherwise it will store - whatever data you send to it.
    - You can also store a comma delimited string and use explode() - to turn it back into an array when you receive the value - back.

    - -

    Example:

    -
    -$GLOBALS['phpgw']->common->appsession("/path/to/something");
    -echo "Dir: " . $GLOBALS['phpgw']->common->appsession();
    -
    - -

    5.4  File functions

    - -

    See Virtual File System (VFS) - Developers Guide for more info.

    - -

    5.5  Email/NNTP - Functions

    - -

    $phpgw->send->msg

    - -

    $phpgw->msg->send($service, $to, $subject, $body, - $msgtype, $cc, $bcc)
    - Send a message via email or NNTP and returns any error - codes.
    - Example:

    -
    -$to = 'someuser@domain.com';
    -$subject = 'Hello buddy';
    -$body = "Give me a call\n Been wondering what your up to.";
    -$errors = $GLOBALS['phpgw']->msg->send('email', $to, $subject, $body);
    -
    -
    -
    - -

    6  Configuration - Variables

    - -

    6.1  Introduction

    - -

    eGroupWare attempts 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 - "$GLOBALS['phpgw_info']", which includes all the information - about your environment.

    - -

    Due to the multi-dimensional array approach. getting these - values is easy.

    - -

    Here are some examples:

    -
    -<?php
    -// To do a hello username
    -echo "Hello " . $GLOBALS['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: ' . $GLOBALS['phpgw_info']['server']['imap_server']; 
    -//If imap is running on localhost, prints: 'IMAP Server is named: localhost'
    -?>
    -
    -
    -
    -
    - -

    6.2  User - information

    - $GLOBALS['phpgw_info']['user']['userid'] = - The user ID.
    - $GLOBALS['phpgw_info']['user']['sessionid'] = The session - ID
    - $GLOBALS['phpgw_info']['user']['theme'] = Selected theme
    - $GLOBALS['phpgw_info']['user']['private_dir'] = Users private - dir. Use eGroupWare core functions for access to the files.
    - $GLOBALS['phpgw_info']['user']['firstname'] = Users first - name
    - $GLOBALS['phpgw_info']['user']['lastname'] = Users last - name
    - $GLOBALS['phpgw_info']['user']['fullname'] = Users Full - Name
    - $GLOBALS['phpgw_info']['user']['groups'] = Groups the user is - a member of
    - $GLOBALS['phpgw_info']['user']['app_perms'] = If the user has - access to the current application
    - $GLOBALS['phpgw_info']['user']['lastlogin'] = Last time the - user logged in.
    - $GLOBALS['phpgw_info']['user']['lastloginfrom'] = Where they - logged in from the last time.
    - $GLOBALS['phpgw_info']['user']['lastpasswd_change'] = Last time - they changed their password.
    - $GLOBALS['phpgw_info']['user']['passwd'] = Hashed password.
    - $GLOBALS['phpgw_info']['user']['status'] = If the user is - enabled.
    - $GLOBALS['phpgw_info']['user']['logintime'] = Time they logged - into their current session.
    - $GLOBALS['phpgw_info']['user']['session_dla'] = Last time they - did anything in their current session
    - $GLOBALS['phpgw_info']['user']['session_ip'] = Current IP - address
    -
    - -

    6.3  Group - information

    - $GLOBALS['phpgw_info']['group']['group_names'] = List of - groups. - -

    6.4  Server - information

    - $phpgw_info[``server''][``server_root''] = - Main installation directory - $phpgw_info[``server''][``include_root''] = Location of the - 'inc' directory. $phpgw_info[``server''][``temp_dir''] = - Directory that can be used for temporarily storing files - $phpgw_info[``server''][``files_dir''] = Directory er and group - files are stored - $phpgw_info[``server''][``common_include_dir''] = Location of - the core/shared include files. - $phpgw_info[``server''][``template_dir''] = Active template - files directory. This is defaulted by the server, and - changeable by the user. - $phpgw_info[``server''][``dir_separator''] = Allows - compatibility with WindowsNT directory format - $phpgw_info[``server''][``encrpytkey''] = Key used for - encryption functions $phpgw_info[``server''][``site_title''] = - Site Title will show in the title bar of each webpage. - $phpgw_info[``server''][``webserver_url''] = URL to eGroupWare - installation. $phpgw_info[``server''][``hostname''] = Name of - the server eGroupWare is installed upon. - $phpgw_info[``server''][``charset''] = default charset, - default:iso-8859-1 $phpgw_info[``server''][``version''] = - eGroupWare version. - -

    6.5  Database - information

    - -

    It is unlikely you will need these, because - $GLOBALS['phpgw']->db will already be loaded as a database - for you to use.

    - $phpgw_info[``server''][``db_host''] = - Address of the database server. Usually this is set to - localhost. $phpgw_info[``server''][``db_name''] = Database - name. $phpgw_info[``server''][``db_user''] = User name. - $phpgw_info[``server''][``db_pass''] = Password - $phpgw_info[``server''][``db_type''] = Type of database. - Currently MySQL and PostgreSQL are supported. - -

    6.6  Mail - information

    - -

    It is unlikely you will need these, because most email needs - are services thru core eGroupWare functions.

    - -

    $phpgw_info[``server''][``mail_server''] - = Address of the IMAP server. Usually this is set to - localhost.

    - -

    $phpgw_info[``server''][``mail_server_type''] = IMAP or - POP3

    - -

    $phpgw_info[``server''][``imap_server_type''] = Cyrus or - Uwash

    - -

    $phpgw_info[``server''][``imap_port''] = - This is usually 143, and should only be changed if there is a - good reason.

    - -

    $phpgw_info[``server''][``mail_suffix] = - This is the domain name, used to add to email - address

    - -

    $phpgw_info[``server''][``mail_login_type''] = This adds - support for VMailMgr. Generally this should be set to - 'standard'.

    - -

    $phpgw_info[``server''][``smtp_server''] - = Address of the SMTP server. Usually this is set to - localhost.

    - -

    $phpgw_info[``server''][``smtp_port''] = - This is usually 25, and should only be changed if there is a - good reason

    - -

    6.7  NNTP - information

    - -

    $phpgw_info[``server''][``nntp_server''] - = Address of the NNTP server.

    - -

    $phpgw_info[``server''][``nntp_port''] = - This is usually XX, and should only be changed if there is a - good reason.

    - -

    $phpgw_info[``server''][``nntp_sender''] - = Unknown

    - -

    $phpgw_info[``server''][``nntp_organization''] = - Unknown

    - -

    $phpgw_info[``server''][``nntp_admin''] - = Unknown

    - -

    6.8  Application - information

    - -

    Each application has the following information - available.

    - -

    $phpgw_info[``apps''][``appname''][``title''] = The title - of the application.

    - -

    $phpgw_info[``apps''][``appname''][``enabled''] = If the - application is enabled. True or False.

    - -

    $phpgw_info[``server''][``app_include_dir''] = Location of - the current application include files.

    - -

    $phpgw_info[``server''][``app_template_dir''] = Location - of the current application tpl files.

    - -

    $phpgw_info[``server''][``app_lang_dir''] = Location of - the current lang directory.

    - -

    $phpgw_info[``server''][``app_auth''] = - If the server and current user have access to current - application

    - -

    $phpgw_info[``server''][``app_current''] - = name of the current application.

    - -

    7  Using Language - Support

    - -

    7.1  Overview

    - -

    eGroupWare 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 - eGroupWare database, and can be modified by the eGroupWare - administrator.

    - -

    7.2  How to use lang - support

    - -

    The lang() function is your application's interface to - eGroupWare's internationalization support.

    - -

    While developing your application, just wrap all your text - output with calls to lang(), as in the following code:

    -
    -$x = 42;
    -echo lang("The counter is %1",$x)."<br>";
    -
    - 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 $x will end up - is controlled by the format string, not 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:

    -
    -The counter is 42*<br> 
    -
    - If the current user speaks Italian, they string returned may - instead be: -
    -il contatore è 42<br&#gt;
    -
    - -

    The lang function

    -
    -lang($key, $m1="", $m2="", $m3="", $m4="", $m5="", 
    -        $m6="", $m7="", $m8="", $m9="", $m10="")
    -
    -
    - -
    -
    - [$key ]  - -

    is the string to translate and may contain replacement - directives of the form %n.
    -

    -
    - -
    - [$m1 ]  - -

    is the first replacement value or may be an array of - replacement values (in which case $m2 and above are - ignored).

    -
    - -
    - [$m2 - $m10 ]  - -

    the 2nd through 10th replacement values if $m1 is not an - array.

    -
    -
    - The database is searched for rows with a lang.message_id that - matches $key. If a translation is not found, the original $key - is used. The translation engine then replaces all tokens of the - form %N with the Nth parameter (either $m1[N] or $mN). - -

    Adding translation data

    - -

    The TranslationTools (former developer_tools) allow easily create new translations of eGW applications.
    - A developer also can use them to create the english lang-file by searching for new phrases in his sources.

    - -

    The lang table

    - -

    The translation class uses the lang table for all - translations. We are concerned with 4 of the columns to create - a translation:

    - -
    -
    - [message_id ]  - -

    The key to identify the message (the $key passed to the - lang() function). This is written in English.

    -
    - -
    - [app_name ]  - -

    The application the translation applies to, or common if - it is common across multiple applications.

    -
    - -
    - [lang ]  - -

    The code for the language the translation is in.

    -
    - -
    - [content ]  - -

    The translated string.

    -
    -
    - - translating the content to reflect the message_id string in the - lang language. If the string is specific to your application, - put your application name in for app_name otherwise use the - name common. The message_id should be in lower case for a small - increase in speed. - -

    7.3  Common return - codes

    - -

    If you browse through the eGroupWare sources, you may notice - a pattern to the return codes used in the higher-level - functions. The codes used are partially documented in the - doc/developers/CODES 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 check_code() function, which passes the - strings through lang() before returning.

    - -

    For example, calling

    -
    -echo check_code(13);
    -
    -
    -
    - Would print -
    -Your message has been sent
    -
    -
    -
    - translated into the current language. - -

    8  Using Templates

    - -

    8.1  Overview

    - -

    eGroupWare 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.

    - -

    8.2  How to use PHPLIB - templates

    - -

    For Further info read the PHPLIBs documentation for their - template class. http://phplib.sanisoft.com

    - -

    8.3  How to use - eTemplate templates

    - -

    eTemplate is a new widget-based template system, - which is used eg. for the InfoLog application.
    - There's a Tutorial - and a Referenz - documentation availible.

    - -

    9  About this - document

    - -

    9.1  New versions

    - -

    The newest version of this document can be found on our - website http://www.eGroupWare.org.

    - -

    9.2  Comments

    - -

    Comments on this HOWTO should be directed to the eGroupWare - developers mailing list (subscription at www.sourceforge.net/egroupware/).

    - -

    9.3  History

    - -

    This document was written by Dan Kuykendall.

    - -

    2000-09-25 documentation on lang(), codes, administration - and preferences extension added by Steve Brown.

    - -

    2001-01-08 fixed directory structure, minor layout changes, - imported to lyx source - Darryl VanDorp

    - -

    2001-01-08 fixed directory structure, minor layout changes, - imported to lyx source - Darryl VanDorp

    - -

    2004-02-22 imported skwashd's changes and adapted for - eGroupWare - Ralf Becker

    - -

    9.4  Copyrights and - Trademarks

    - -

    Copyright © Free Software Foundarion. 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 http://www.gnu.org/copyleft/gpl.html

    - -

    9.5  Acknowledgments and - Thanks

    - -

    Thanks to Joesph Engo for starting eGroupWare (at the time - called webdistro). Thanks to all the developers and users who - contribute to making eGroupWare such a success.
    -
    -

    -
    - -

    $Id: index.html,v 1.5 2004/02/23 00:24:21 ralfbecker Exp - $

    - - - +#This document explains eGroupWare's infrastructure and API, +#along with what is required to integrate applications into +#it. + += Contents = +# ApplicationDevelopmentGuide/Introduction +## Overview of application writing +## What does the eGroupWare API provide? +# ApplicationDevelopmentGuide/Guidelines +## Requirements +## Writing/porting your application +## Installing your application +## Overview +## Automatic features +## Adding files, directories and icons. +## Making eGroupWare aware of your application +## Hooking into Administration page +## Hooking into Preferences page +# ApplicationDevelopmentGuide/Infrastructure +## Overview +## Directory tree +## Translations +# ApplicationDevelopmentGuide/The API +## Introduction +## Basic functions +## Application Functions +## File functions +## Email/NNTP Functions +# ApplicationDevelopmentGuide/Configuration Variables +## Introduction +## User information +## Group information +## Server information +## Database information +## Mail information +## NNTP information +## Application information +# ApplicationDevelopmentGuide/Using Language Support +## Overview +## How to use lang support +## Common return codes +# ApplicationDevelopmentGuide/Using Templates +#
  • +## Overview +## How to use PHPLIB templates +## How to use eTemplate templates +# ApplicationDevelopmentGuide/About this document +## New versions +## Comments +## History +## Copyrights and Trademarks +## Acknowledgments and Thanks