[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] phpgwapi/doc/index.html, 1.2.10.2
From: |
nomail |
Subject: |
[Phpgroupware-cvs] phpgwapi/doc/index.html, 1.2.10.2 |
Date: |
Sun, 5 Sep 2004 03:13:04 +0200 |
Update of /phpgwapi/doc
Modified Files:
Branch:
index.html
date: 2004/09/05 01:13:04; author: skwashd; state: Exp; lines: +832 -865
Log Message:
cleanup, updates etc
=====================================================================
Index: phpgwapi/doc/index.html
diff -u phpgwapi/doc/index.html:1.2.10.1 phpgwapi/doc/index.html:1.2.10.2
--- phpgwapi/doc/index.html:1.2.10.1 Thu Jan 8 21:39:59 2004
+++ phpgwapi/doc/index.html Sun Sep 5 01:13:04 2004
@@ -1,1030 +1,997 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
-<title> phpGroupWare Application Development</title>
-<style>
-<!--
-h1 {
- text-shadow: 3px 3px 5px;
-}
-h1:before {
- content: counter(chapter) ". ";
- counter-increment: chapter; /* Add 1 to chapter */
- counter-reset: section; /* Set section to 0 */
-}
-h2:before {
- content: counter(chapter) "." counter(section) " ";
- counter-increment: section;
-}
-ol { counter-reset: item }
-lo { display: block }
-li:before { content: counters(item, "."); counter-increment: item }
-body, p, td {font-family: Verdana, Arial, Helvetica, sans-serif;}
-blockquote {text-align: center; font-style: italic;}
-//-->
-</style>
+ <link rel="stylesheet" type="text/css" href="./styles/screen.css"
media="screen" />
+ <link rel="stylesheet" type="text/css" href="./styles/print.css"
media="print" />
+ <link rel="stylesheet" type="text/css" href="./styles/dev-guide.css"
media="all" />
+
+ <title>phpGroupWare - Developers Guide</title>
</head>
+
<body>
-<h1> phpGroupWare Application Development </h1>
-<h3>phpGroupWare Documentation Team - phpgroupware-docteam at gnu.org </h3>
-<h4>v0.9.16 1 December 2003</h3>
-<blockquote>This document explains phpGroupWare's infrastructure and API,
-along with what is required to integrate applications into it.
-</blockquote>
-
-<h1>Contents </h1>
-<ol>
-<li><a href="#tth_sEc1">Introduction</a></li>
-<ol>
-<li><a href="#tth_sEc1.1">Overview of application writing</a></li>
-<li><a href="#tth_sEc1.2">What does the phpGroupWare API provide?</a></li>
-</ol>
-<li><a href="#tth_sEc2">Guidelines</a></li>
-<ol>
-<li><a href="#tth_sEc2.1">Requirements</a></li>
-<li><a href="#tth_sEc2.2">Writing/porting your application</a></li>
-</ol>
-<li><a href="#tth_sEc3">Installing your application</a></li>
-<ol>
-<li><a href="#tth_sEc3.1">Overview</a></li>
-<li><a href="#tth_sEc3.2">Automatic features</a></li>
-<li><a href="#tth_sEc3.3">Adding files, directories and icons.</a></li>
-<li><a href="#tth_sEc3.4">Making phpGroupWare aware of your
application</a></li>
-<li><a href="#tth_sEc3.5">Hooking into Administration page</a></li>
-<li><a href="#tth_sEc3.6">Hooking into Preferences page</a></li>
-</ol>
-<li><a href="#tth_sEc4">Infrastructure</a></li>
-<ol>
-<li><a href="#tth_sEc4.1">Overview</a></li>
-<li><a href="#tth_sEc4.2">Directory tree</a></li>
-<li><a href="#tth_sEc4.3">Translations</a></li>
-</ol>
-<li><a href="#tth_sEc5">The API</a></li>
-<ol>
-<li><a href="#tth_sEc5.1">Introduction</a></li>
-<li><a href="#tth_sEc5.2">Basic functions</a></li>
-<li><a href="#tth_sEc5.3">Application Functions</a></li>
-<li><a href="#tth_sEc5.4">File functions</a></li>
-<li><a href="#tth_sEc5.5">Email/NNTP Functions</a></li>
-</ol>
-<li><a href="#tth_sEc6">Configuration Variables</a></li>
-<ol>
-<li><a href="#tth_sEc6.1">Introduction</a></li>
-<li><a href="#tth_sEc6.2">User information</a></li>
-<li><a href="#tth_sEc6.3">Group information</a></li>
-<li><a href="#tth_sEc6.4">Server information</a></li>
-<li><a href="#tth_sEc6.5">Database information</a></li>
-<li><a href="#tth_sEc6.6">Mail information</a></li>
-<li><a href="#tth_sEc6.7">NNTP information</a></li>
-<li><a href="#tth_sEc6.8">Application information</a></li>
-</ol>
-<li><a href="#tth_sEc7">Using Language Support</a></li>
-<ol>
-<li><a href="#tth_sEc7.1">Overview</a></li>
-<li><a href="#tth_sEc7.2">How to use lang support</a></li>
-<li><a href="#tth_sEc7.3">Common return codes</a></li>
-</ol>
-<li><a href="#tth_sEc8">Using Templates</a></li>
-<ol>
-<li><a href="#tth_sEc8.1">Overview</a></li>
-<li><a href="#tth_sEc8.2">How to use PHPLIB templates</a></li>
-<li><a href="#tth_sEc8.3">How to use XSLT templates</a></li>
-</ol>
-<li><a href="#tth_sEc9">About this document</a></li>
-<ol>
-<li><a href="#tth_sEc9.1">New versions </a></li>
-<li><a href="#tth_sEc9.2">Comments </a></li>
-<li><a href="#tth_sEc9.3">History </a></li>
-<li><a href="#tth_sEc9.4">Copyrights and Trademarks </a></li>
-<li><a href="#tth_sEc9.5">Acknowledgments and Thanks </a></li>
-</ol>
-</ol>
-
-<p>
-<h2><a name="tth_sEc1">1</a> Introduction</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.
-
-<p>
-<h3><a name="tth_sEc1.1">
-1.1</a> Overview of application writing</h3>
-
-<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>
-<h3><a name="tth_sEc1.2">
-1.2</a> What does the phpGroupWare API provide?</h3>
-
-<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.
-
-<p>
-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>
-<h2><a name="tth_sEc2">
-2</a> Guidelines</h2>
-
-<p>
-<h3><a name="tth_sEc2.1">
-2.1</a> Requirements</h3>
-
-<p>
-These guidelines must be followed for any application that wants considered
-for inclusion into phpGroupWare deluxe:
-
-<p>
-
-<ul><p>
-<li> It must run on PHP4.1.0</li>
-<p>
-<li> SQL statements must be compatible with both MySQL, PostgreSQL, M$ SQL
Server and SAP-DB</li>
-<p>
-<li> It must use our default header.inc.php include.</li>
-<p>
-<li> It must use our $GLOBALS['phpgw']->link($url) for all links (this is for
session
-support).</li>
-<p>
-<li> It must use "POST" for form submit methods.</li>
-<p>
-<li> It must respect phpGW group rights and phpGW user permissions.</li>
-<p>
-<li> It must use our directory structure, template support and lang
(multi-language)
-support.</li>
-<p>
-<li> Where possible it should run on both Unix and NT platforms.</li>
-<p>
-<li> For applications that do not meet these requirements, they can be
-available to users via the phpGroupWare "3rd Party Apps" listing on our
-website. If you need help converting your application to templates and
-our lang support, we will try to connect you with someone to help.</li>
-</ul>
-
-<p>
-<h3><a name="tth_sEc2.2">2.2</a> Writing/porting your
application</h3>
-
-<p>
-
-<h4>Include files</h4>
-
-<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.
-<pre>
+ <div>
+ <div id="printheader">
+ <img src="./pics/logo.png" alt="phpGW logo" />Developers Guide
+ </div>
+
+ <div id="top">
+ <img src="./pics/logo.png" alt="phpGroupWare" />
+
+ <div id="sitename">
+ <a href="./">Contributor Documentation</a>
+ </div>
+ </div>
+
+ <div id="content">
+ <h1>phpGroupWare Application Development</h1>
+
+ <h3>phpGroupWare Documentation Team - phpgroupware-docteam at
+ gnu.org</h3>
+
+ <h4>v0.9.16.001 5 September 2004</h4>
+
+ <blockquote>
+ This document explains phpGroupWare's infrastructure and API, along
+ with what is required to integrate applications into it.
+ </blockquote>
+
+ <h1>Contents</h1>
+
+ <ol>
+ <li>
+ <a href="#tth_sEc1">Introduction</a>
+
+ <ol>
+ <li><a href="#tth_sEc1.1">Overview of application writing</a></li>
+
+ <li><a href="#tth_sEc1.2">What does the phpGroupWare API
+ provide?</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc2">Guidelines</a>
+
+ <ol>
+ <li><a href="#tth_sEc2.1">Requirements</a></li>
+
+ <li><a href="#tth_sEc2.2">Writing/porting your application</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc3">Installing your application</a>
+
+ <ol>
+ <li><a href="#tth_sEc3.1">Overview</a></li>
+
+ <li><a href="#tth_sEc3.2">Automatic features</a></li>
+
+ <li><a href="#tth_sEc3.3">Adding files, directories and
+ icons.</a></li>
+
+ <li><a href="#tth_sEc3.4">Making phpGroupWare aware of your
+ application</a></li>
+
+ <li><a href="#tth_sEc3.5">Hooking into Administration page</a></li>
+
+ <li><a href="#tth_sEc3.6">Hooking into Preferences page</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc4">Infrastructure</a>
+
+ <ol>
+ <li><a href="#tth_sEc4.1">Overview</a></li>
+
+ <li><a href="#tth_sEc4.2">Directory tree</a></li>
+
+ <li><a href="#tth_sEc4.3">Translations</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc5">The API</a>
+
+ <ol>
+ <li><a href="#tth_sEc5.1">Introduction</a></li>
+
+ <li><a href="#tth_sEc5.2">Basic functions</a></li>
+
+ <li><a href="#tth_sEc5.3">Application Functions</a></li>
+
+ <li><a href="#tth_sEc5.4">File functions</a></li>
+
+ <li><a href="#tth_sEc5.5">Email/NNTP Functions</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc6">Configuration Variables</a>
+
+ <ol>
+ <li><a href="#tth_sEc6.1">Introduction</a></li>
+
+ <li><a href="#tth_sEc6.2">User information</a></li>
+
+ <li><a href="#tth_sEc6.3">Group information</a></li>
+
+ <li><a href="#tth_sEc6.4">Server information</a></li>
+
+ <li><a href="#tth_sEc6.5">Database information</a></li>
+
+ <li><a href="#tth_sEc6.6">Mail information</a></li>
+
+ <li><a href="#tth_sEc6.7">NNTP information</a></li>
+
+ <li><a href="#tth_sEc6.8">Application information</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc7">Using Language Support</a>
+
+ <ol>
+ <li><a href="#tth_sEc7.1">Overview</a></li>
+
+ <li><a href="#tth_sEc7.2">How to use lang support</a></li>
+
+ <li><a href="#tth_sEc7.3">Common return codes</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc8">Using Templates</a>
+
+ <ol>
+ <li><a href="#tth_sEc8.1">Overview</a></li>
+
+ <li><a href="#tth_sEc8.2">How to use PHPLIB templates</a></li>
+
+ <li><a href="#tth_sEc8.3">How to use XSLT templates</a></li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#tth_sEc9">About this document</a>
+
+ <ol>
+ <li><a href="#tth_sEc9.1">New versions</a></li>
+
+ <li><a href="#tth_sEc9.2">Comments</a></li>
+
+ <li><a href="#tth_sEc9.3">History</a></li>
+
+ <li><a href="#tth_sEc9.4">Copyrights and Trademarks</a></li>
+
+ <li><a href="#tth_sEc9.5">Acknowledgments and Thanks</a></li>
+ </ol>
+ </li>
+ </ol>
+
+ <h2><a name="tth_sEc1" id="tth_sEc1" class="heading">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.</p>
+
+ <h3><a name="tth_sEc1.1" id="tth_sEc1.1">1.1</a> Overview of application
+ writing</h3>
+
+ <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>
+
+ <h3><a name="tth_sEc1.2" id="tth_sEc1.2">1.2</a> What does the
+ phpGroupWare API provide?</h3>
+
+ <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.</p>
+
+ <p>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>
+
+ <h2><a name="tth_sEc2" id="tth_sEc2" class="heading">2
Guidelines</a></h2>
+
+ <h3><a name="tth_sEc2.1" id="tth_sEc2.1">2.1</a> Requirements</h3>
+
+ <p>These guidelines must be followed for any application that wants
+ considered for inclusion into the phpGroupWare distribution:</p>
+ <ul>
+ <li>It must run on PHP 4.1.0</li>
+
+ <li>SQL statements must be compatible with both MySQL, PostgreSQL, M$
+ SQL Server and SAP-DB</li>
+
+ <li>It must use our default header.inc.php include.</li>
+
+ <li>It must use our $GLOBALS['phpgw']-<link($url) for all links
+ (this is for session support).</li>
+
+ <li>It must use "POST" for form submit methods.</li>
+
+ <li>It must respect phpGW group rights and phpGW user permissions.</li>
+
+ <li>It must use our directory structure, template support and lang
+ (multi-language) support.</li>
+
+ <li>Where possible it should run on both Unix and NT platforms.</li>
+
+ <li>For applications that do not meet these requirements, they can be
+ available to users via the phpGroupWare "3rd Party Apps" listing on our
+ website. If you need help converting your application to templates and
+ our lang support, we will try to connect you with someone to help.</li>
+ </ul>
+
+ <h3><a name="tth_sEc2.2" id="tth_sEc2.2">2.2</a> Writing/porting your
application</h3>
+
+ <h4>Include files</h4>
+
+ <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.</p>
+<pre>
<?php
$GLOBALS['phpgw_info']['flags']['currentapp'] = 'appname';
include('../header.inc.php');
?>
+</pre>
+ <p>Of course change application name to fit.<br />
+ This include will provide the following things:</p>
-</pre>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>
-<p>
+ <li>The phpGW navbar will be loaded (by default, but can be disabled
+ until a later point.</li>
-<ul><p>
-<li> The phpgwAPI - The phpGroupWare API will be loaded.</li>
-<p>
-<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.<br>
-<b>Note:</b> Depricated and not used for OOP
(/index.php?menuaction=app.obj.method) calls.</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.<br>
-<b>Note:</b> Depricated and not used for OOP
(/index.php?menuaction=app.obj.method) calls.</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.<br>
-<b>Note:</b> Depricated and not used for OOP
(/index.php?menuaction=app.obj.method) calls.</li>
-</li>
-
-<li> The phpGW footer will be loaded, which closes several connections.</li>
-</ul>
-
-<p>
-<h2><a name="tth_sEc3">3</a> Installing your application</h2>
-
-<p>
-<h3><a name="tth_sEc3.1">3.1</a> Overview</h3>
-
-<p>
-It is fairly simple to add and delete applications to/from phpGroupWare.
-
-<p>
-<h3><a name="tth_sEc3.2">3.2</a> Automatic features</h3>
-
-<p>
-To make things easy for developers we go ahead and load the following
-files.
-</p>
-
-<ul>
-<li> appname/inc/functions.inc.php - This file should include all your
-application specific functions.<br>
-<b>Note:</b> Depricated and not used for OOP
(/index.php?menuaction=app.obj.method) calls.</li>
-
-<li> appname/inc/header.inc.php - This file is loaded by
$phpgw->common->header
-just after the system header/navbar, and allows developers to use
-it for whatever they need to load.<br>
-<b>Note:</b> Depricated and not used for OOP
(/index.php?menuaction=app.obj.method) calls.</li>
-
-
-<li> appname/inc/footer.inc.php - This file is loaded by
$phpgw->common->footer
-just before the system footer, allowing developers to close connections
-and whatever else they need.<br>
-<b>Note:</b> Depricated and not used for OOP
(/index.php?menuaction=app.obj.method) calls.</li>
-</ul>
-
-<p>
-<h3><a name="tth_sEc3.3">3.3</a> Adding files, directories and
icons.</h3>
-
-<p>
-You will need to create the following directories for your code <br />
-(replace 'appname' with your application name)<br />
+ <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.<br />
+ <b>Note:</b> Depricated and not used for OOP
+ (/index.php?menuaction=app.obj.method) calls.</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.<br />
+ <b>Note:</b> Depricated and not used for OOP
+ (/index.php?menuaction=app.obj.method) calls.</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.<br />
+ <b>Note:</b> Depricated and not used for OOP
+ (/index.php?menuaction=app.obj.method) calls.</li>
+
+ <li>The phpGW footer will be loaded, which closes several
+ connections.</li>
+ </ul>
+
+ <h2><a name="tth_sEc3" id="tth_sEc3" class="heading">3 Installing your
application</a></h2>
+
+ <h3><a name="tth_sEc3.1" id="tth_sEc3.1">3.1</a> Overview</h3>
+
+ <p>It is fairly simple to add and delete applications to/from
+ phpGroupWare.</p>
+
+ <h3><a name="tth_sEc3.2" id="tth_sEc3.2">3.2</a> Automatic features</h3>
+
+ <p>To make things easy for developers we go ahead and load the following
+ files.</p>
+
+ <ul>
+ <li>appname/inc/functions.inc.php - This file should include all your
+ application specific functions.<br />
+ <b>Note:</b> Depricated and not used for OOP
+ (/index.php?menuaction=app.obj.method) calls.</li>
+
+ <li>appname/inc/header.inc.php - This file is loaded by
+ $phpgw->common->header just after the system header/navbar, and
+ allows developers to use it for whatever they need to load.<br />
+ <b>Note:</b> Depricated and not used for OOP
+ (/index.php?menuaction=app.obj.method) calls.</li>
+
+ <li>appname/inc/footer.inc.php - This file is loaded by
+ $phpgw->common->footer just before the system footer, allowing
+ developers to close connections and whatever else they need.<br />
+ <b>Note:</b> Depricated and not used for OOP
+ (/index.php?menuaction=app.obj.method) calls.</li>
+ </ul>
+ <h3><a name="tth_sEc3.3" id="tth_sEc3.3">3.3</a> Adding files,
directories and icons.</h3>
+
+ <p>You will need to create the following directories for your code<br />
+ (replace 'appname' with your application name)<br /></p>
<pre>
--appname
- +--inc
+ +--inc
- | |--functions.inc.php
+ | |--functions.inc.php
- | |--header.inc.php
+ | |--header.inc.php
- | |--hook_preferences.inc.php
+ | |--hook_preferences.inc.php
- | |--hook_admin.inc.php
+ | |--hook_admin.inc.php
- | +--footer.inc.php
+ | +--footer.inc.php
- +--js
+ +--js
- | |--base
+ | |--base
- | +--js_package_name
+ | +--js_package_name
- +--setup
+ +--setup
- | |--default_records.inc.php
+ | |--default_records.inc.php
- | |--setup.inc.php
+ | |--setup.inc.php
- | +--tables_current.inc.php
+ | +--tables_current.inc.php
- +--templates
+ +--templates
- +--default
+ +--default
</pre>
-<h3><a name="tth_sEc3.4">3.4</a> Making phpGroupWare aware of your
application</h3>
+ <h3><a name="tth_sEc3.4" id="tth_sEc3.4">3.4</a> Making phpGroupWare
aware of your application</h3>
-<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. The script below should only be used during
initial
-development. You should use the phpGroupWare setup system for install and
updating
-the final version 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. The script below should
+ only be used during initial development. You should use the phpGroupWare
+ setup system for install and updating the final version of your
+ application.</p>
<pre>
INSERT INTO phpgw_applications (app_name, app_title, app_enabled)
- VALUES('appname', 'The App name', 1);
+ VALUES('appname', 'The App name', 1);
</pre>
-<p>
-<h3><a name="tth_sEc3.5">3.5</a> Hooking into Administration
page</h3>
+ <h3><a name="tth_sEc3.5" id="tth_sEc3.5">3.5</a> Hooking into
+ Administration page</h3>
-<p>
-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.
+ <p>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.</p>
+
+ <p>Simple Example:</p>
+<pre><?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);
+?>;</pre>
+
+ <p>Look at headlines/inc/hook_admin.inc.php and
+ admin/inc/hook_admin.inc.php for more examples.</p>
+
+ <p>Things to note:</p>
+
+ <ul>
+ <li>Links are relative to the admin/index.php file, not your
+ application's base directory. (so use "appname" in your link()
+ 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 $GLOBALS['phpgw'] and $GLOBALS['phpgw_info'] variables
+ are in-scope, as is $appname which corresponds to the application name in
+ the path.
+
+ <h3><a name="tth_sEc3.6" id="tth_sEc3.6">3.6</a> Hooking into Preferences
+ page</h3>
+
+ <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
+ appname/inc/hook_preferences.inc.php instead of
+ appname/inc/hook_admin.inc.php. The same functions and variables are
+ defined.</p>
+
+ <h2><a name="tth_sEc4" id="tth_sEc4" class="heading">4<
Infrastructure</a></h2>
+
+ <h3><a name="tth_sEc4.1" id="tth_sEc4.1">4.1</a> Overview</h3>
+
+ <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.</p>
-<p>
-Simple Example:
+ <h3><a name="tth_sEc4.2" id="tth_sEc4.2">4.2</a> Directory tree</h3>
<pre>
-<?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;
-</pre>
-Look at headlines/inc/hook_admin.inc.php and admin/inc/hook_admin.inc.php for
more
-examples.
-
-Things to note:
-<ul>
-<li> Links are relative to the admin/index.php file, not your application's
-base directory. (so use "appname" in your link() 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 $GLOBALS['phpgw'] and $GLOBALS['phpgw_info'] variables are
in-scope, as
-is $appname which corresponds to the application name in the path.
-
-<p>
-<h3><a name="tth_sEc3.6">3.6</a> Hooking into Preferences page</h3>
-
-<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
-appname/inc/hook_preferences.inc.php instead of appname/inc/hook_admin.inc.php.
-The same functions and variables are defined.
-
-<p>
-<h2><a name="tth_sEc4">4</a> Infrastructure</h2>
-
-<p>
-<h3><a name="tth_sEc4.1">4.1</a> Overview</h3>
-
-<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.
+--phpgroupware
+ |
+ +--admin
+ |
+ +--docs (installation docs)
+ |
+ +--files (<b>Note:</b> must be out of webserver document root!)
+ | |
+ | +--groups
+ | |
+ | +--homes
+ | |
+ | +--users
+ |
+ +--phpgwapi
+ | |
+ | +--cron (phpgroupware'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
+</pre>
+
+ <h3><a name="tth_sEc4.3" id="tth_sEc4.3">4.3</a> Translations</h3>
+ <p>See <a href="#tth_sEc7">section 7</a>, where this is explained in
detail.</p>
+
+
+ <h2><a name="tth_sEc5" id="tth_sEc5" class="heading">5 The API</a></h2>
+
+ <h3><a name="tth_sEc5.1" id="tth_sEc5.1">5.1</a> Introduction</h3>
+
+ <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
+ $GLOBALS['phpgw']->.</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 inc/core directory and are named to match the
+ sub-class.</p>
+
+ <p>Example: $phpgw->send->msg() is in the
+ inc/phpgwapi/class.send.inc.php file.</p>
+
+ <h3><a name="tth_sEc5.2" id="tth_sEc5.2">5.2</a> Basic functions</h3>
+
+ <h4>$GLOBALS['phpgw']->link</h4>
+
+ <p>$GLOBALS['phpgw']->link($url, $args)<br />
+ Add support for session management. ALL links must use this, that
+ includes href's form actions and header location's.</p>
-<p>
-<h3><a name="tth_sEc4.2">4.2</a> Directory tree</h3>
+ <p>If you are just doing a form action back to the same page, you can use
+ it without any parameters.</p>
+ <p>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:</p>
<pre>
---phpgroupware
- |
- +--admin
- |
- +--docs (installation docs)
- |
- +--files (<b>Note:</b> must be out of webserver document root!)
- | |
- | +--groups
- | |
- | +--homes
- | |
- | +--users
- |
- +--phpgwapi
- | |
- | +--cron (phpgroupware'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
+<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"> */
</pre>
-<h3><a name="tth_sEc4.3">4.3</a> Translations</h3>
-<p>
-The translations are now being done thru the database, and may be
-configurable to use other mechanisms in future releases.
-
-<p>
-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 <tt>phpgw_<langcode>.lang</tt>. The files are stored
-in the <tt>app/setup</tt> directory. The format of the files is as follows:
+ <h3><a name="tth_sEc5.3" id="tth_sEc5.3">5.3</a> Application
+ Functions</h3>
+
+ <h4>$GLOBALS['phpgw']->common->phpgw_header</h4>
+
+ <p>$GLOBALS['phpgw']->phpgw_header()<br />
+ Print out the start of the HTML page, including the navigation bar and
+ includes appname/inc/header.php, if using deprecated linear scripts
+ style.</p>
+
+ <h4>$GLOBALS['phpgw']->common->phpgw_footer</h4>
+
+ <p>$GLOBALS['phpgw']->phpgw_footer()<br />
+ Prints the system footer, and includes appname/inc/footer.php</p>
+
+ <h4>$GLOBALS['phpgw']->common->appsession</h4>
+
+ <p>$GLOBALS['phpgw']->common->appsession($data)<br />
+ Store important information session information that your application
+ needs.<br />
+ $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.<br />
+ You can also store a comma delimited string and use explode() to turn it
+ back into an array when you receive the value back.</p>
+
+ <p>Example:</p>
<pre>
-english phrase in lower case appname ** Translated phrase in desired
case.
+$GLOBALS['phpgw']->common->appsession("/path/to/something");
+echo "Dir: " . $GLOBALS['phpgw']->common->appsession();
</pre>
-<b>Notes:</b>
-<ul>
- <li>replace ** with the desired language code, as used in the
filename</li>
- <li>tabs are used to deliniate "columns"</li>
-</ul>
-
-<h2><a name="tth_sEc5">5</a> The API</h2>
-<p>
-<h3><a name="tth_sEc5.1">5.1</a> Introduction</h3>
+ <h3><a name="tth_sEc5.4" id="tth_sEc5.4">5.4</a> File functions</h3>
-<p>
-phpGroupWare attempts to provide developers with a useful API to handle
-common tasks.
+ <p>See <a href="vfs/vfs.html">Virtual File System (VFS) Developers
+ Guide</a> for more info.</p>
-<p>
-To do this we have created a multi-dimensional class $GLOBALS['phpgw']->.
+ <h3><a name="tth_sEc5.5" id="tth_sEc5.5">5.5</a> Email/NNTP
+ Functions</h3>
-<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 inc/core directory and are named to
-match the sub-class.
+ <h4>$phpgw->send->msg</h4>
+
+ <p>$phpgw->msg->send($service, $to, $subject, $body, $msgtype, $cc,
+ $bcc)<br />
+ Send a message via email or NNTP and returns any error codes.<br />
+ Example:</p>
+ <pre> $to = 'address@hidden';
+ $subject = 'Hello buddy';
+ $body = "Give me a call\n Been wondering what your up to.";
+ $errors = $GLOBALS['phpgw']->msg->send('email', $to, $subject,
$body);</pre>
+
+ <h2><a name="tth_sEc6" id="tth_sEc6" class="heading">6 Configuration
Variables</a></h2>
+
+ <h3><a name="tth_sEc6.1" id="tth_sEc6.1">6.1</a> Introduction</h3>
+
+ <p>phpGroupWare attempts to provide developers with as much information
+ about the user, group, server, and application configuration as
+ possible.</p>
+
+ <p>To do this we provide a multi-dimensional array called
+ "$GLOBALS['phpgw_info']", which includes all the information about your
+ environment.</p>
+
+ <p>Due to the multi-dimensional array approach. getting these values is
+ easy.</p>
+
+ <p>Here are some examples:</p>
+<pre><?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'
+?></pre>
+
+<pre><?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'
+?></pre>
-<p>
-Example: $phpgw->send->msg() is in the inc/phpgwapi/class.send.inc.php
-file.
+ <h3><a name="tth_sEc6.2" id="tth_sEc6.2">6.2</a> User information</h3>
+<pre>$GLOBALS['phpgw_info']['user']['userid'] = The user ID.
-<p>
-<h3><a name="tth_sEc5.2">5.2</a> Basic functions</h3>
+$GLOBALS['phpgw_info']['user']['sessionid'] = The session ID
-<p>
+$GLOBALS['phpgw_info']['user']['theme'] = Selected theme
-<h4>$GLOBALS['phpgw']->link</h4>
+$GLOBALS['phpgw_info']['user']['private_dir'] = Users private dir.
+ Use phpGroupWare core functions for access to the files.
-<p>
-$GLOBALS['phpgw']->link($url, $args)<br />
-Add support for session management. ALL links must use this, that
-includes href's form actions and header location's.
+$GLOBALS['phpgw_info']['user']['firstname'] = Users first name
-<p>
-If you are just doing a form action back to the same page, you can
-use it without any parameters.
+$GLOBALS['phpgw_info']['user']['lastname'] = Users last name
-<p>
-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:
+$GLOBALS['phpgw_info']['user']['fullname'] = Users Full Name
-<pre>
-<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"> */
-</pre>
+$GLOBALS['phpgw_info']['user']['groups'] = Groups the user is a member of
-<p>
-<h3><a name="tth_sEc5.3">5.3</a> Application Functions</h3>
+$GLOBALS['phpgw_info']['user']['app_perms'] = If the user has access to the
current application
-<p>
+$GLOBALS['phpgw_info']['user']['lastlogin'] = Last time the user logged in.
-<h4>$GLOBALS['phpgw']->common->phpgw_header</h4>
+$GLOBALS['phpgw_info']['user']['lastloginfrom'] = Where they logged in from
the last time.
-<p>
-$GLOBALS['phpgw']->phpgw_header()<br />
-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_info']['user']['lastpasswd_change'] = Last time they changed
their password.
-<p>
+$GLOBALS['phpgw_info']['user']['passwd'] = Hashed password.
-<h4>$GLOBALS['phpgw']->common->phpgw_footer</h4>
+$GLOBALS['phpgw_info']['user']['status'] = If the user is enabled.
-<p>
-$GLOBALS['phpgw']->phpgw_footer()<br />
-Prints the system footer, and includes appname/inc/footer.php
+$GLOBALS['phpgw_info']['user']['logintime'] = Time they logged into their
current session.
-<p>
+$GLOBALS['phpgw_info']['user']['session_dla'] = Last time they did anything in
their current session
-<h4>$GLOBALS['phpgw']->common->appsession</h4>
+$GLOBALS['phpgw_info']['user']['session_ip'] = Current IP address
+</pre>
-<p>
-$GLOBALS['phpgw']->common->appsession($data)<br />
-Store important information session information that your application
-needs.<br />
-$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.<br />
-You can also store a comma delimited string and use explode() to
-turn it back into an array when you receive the value back.
+ <h3><a name="tth_sEc6.3" id="tth_sEc6.3">6.3</a> Group information</h3>
+ <pre>$GLOBALS['phpgw_info']['group']['group_names'] = List of
groups.</pre>
-<p>
-Example:
+ <h3><a name="tth_sEc6.4" id="tth_sEc6.4">6.4</a> Server information</h3>
<pre>
-$GLOBALS['phpgw']->common->appsession("/path/to/something");
-echo "Dir: " . $GLOBALS['phpgw']->common->appsession();
-</pre>
+$GLOBALS['phpgw_info']['server']['server_root'] = Main installation directory
-<p>
-<h3><a name="tth_sEc5.4">5.4</a> File functions</h3>
+$GLOBALS['phpgw_info']['server']['include_root'] = Location of the 'inc'
directory.
-<p>See <a href="vfs/vfs.html">Virtual File System (VFS) Developers Guide</a>
-for more info.</p>
+$GLOBALS['phpgw_info']['server']['temp_dir'] = Directory that can be used for
temporarily storing files
-<h3><a name="tth_sEc5.5">5.5</a> Email/NNTP Functions</h3>
+$GLOBALS['phpgw_info']['server']['files_dir'] = Directory user and group files
are stored
-<p>
+$GLOBALS['phpgw_info']['server'']['common_include_dir'] = Location of the
core/shared include files.
-<h4>$phpgw->send->msg</h4>
+$GLOBALS['phpgw_info']['server']['template_dir'] = Active template files
directory.
+ This is defaulted by the server, and changeable by the user.
-<p>
-$phpgw->msg->send($service, $to, $subject, $body, $msgtype,
-$cc, $bcc)<br />
-Send a message via email or NNTP and returns any error codes.<br />
-Example:
-<pre>
+$GLOBALS['phpgw_info']['server']['dir_separator'] = Allows compatibility with
WindowsNT directory format
+ - same as php constant SEP
-$to = 'address@hidden';
-$subject = 'Hello buddy';
-$body = "Give me a call\n Been wondering what your up to.";
-$errors = $GLOBALS['phpgw']->msg->send('email', $to, $subject, $body);
+$GLOBALS['phpgw_info']['server']['encrpytkey'] = Key used for encryption
functions
+$GLOBALS['phpgw_info']['server']['site_title'] = Site Title will show in the
title bar of each webpage.
-</pre>
+$GLOBALS['phpgw_info']['server']['webserver_url'] = URL to phpGroupWare
installation.
-<p>
-<h2><a name="tth_sEc6">6</a> Configuration Variables</h2>
+$GLOBALS['phpgw_info']['server']['hostname'] = Name of the server phpGroupWare
is installed upon.
-<p>
-<h3><a name="tth_sEc6.1">6.1</a> Introduction</h3>
+$GLOBALS['phpgw_info']['server']['charset'] = user's charset,
default:iso-8859-1
-<p>
-phpGroupWare attempts to provide developers with as much information
-about the user, group, server, and application configuration as possible.
-
-<p>
-To do this we provide a multi-dimensional array called
"$GLOBALS['phpgw_info']",
-which includes all the information about your environment.
-
-<p>
-Due to the multi-dimensional array approach. getting these values
-is easy.
+$GLOBALS['phpgw_info']['server']['version'] = phpGroupWare version.
+</pre>
+
+ <h3><a name="tth_sEc6.5" id="tth_sEc6.5">6.5</a> Database
+ information</h3>
-<p>
-Here are some examples:
+ <p>It is unlikely you will need these, because $GLOBALS['phpgw']->db
+ will already be loaded as a database for you to use.</p>
<pre>
+$GLOBALS['phpgw_info']['server']['db_host'] = Address of the database server.
+ Usually this is set to localhost - but don't assume.
-<?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'
-?>
+$GLOBALS['phpgw_info']['server']['db_name'] = Database name.
+$GLOBALS['phpgw_info']['server']['db_user'] = User name.
+$GLOBALS['phpgw_info']['server']['db_pass'] = Password
+$GLOBALS['phpgw_info']['server']['db_type'] = Type of database.
+ Currently M$ SQL Server, MySQL and PostgreSQL are supported.
</pre>
-<p>
-<h3><a name="tth_sEc6.2">6.2</a> User information</h3>
-<tt><font size="-1">
-$GLOBALS['phpgw_info']['user']['userid'] = The user ID. <br>
-$GLOBALS['phpgw_info']['user']['sessionid'] = The session ID <br>
-$GLOBALS['phpgw_info']['user']['theme'] = Selected theme <br>
-$GLOBALS['phpgw_info']['user']['private_dir'] = Users private dir.
-Use phpGroupWare core functions for access to the files. <br>
-$GLOBALS['phpgw_info']['user']['firstname'] = Users first name <br>
-$GLOBALS['phpgw_info']['user']['lastname'] = Users last name <br>
-$GLOBALS['phpgw_info']['user']['fullname'] = Users Full Name <br>
-$GLOBALS['phpgw_info']['user']['groups'] = Groups the user is a member of <br>
-$GLOBALS['phpgw_info']['user']['app_perms'] = If the user has access to the
current application<br>
-$GLOBALS['phpgw_info']['user']['lastlogin'] = Last time the user logged in.
<br>
-$GLOBALS['phpgw_info']['user']['lastloginfrom'] = Where they logged in from
the last time.<br>
-$GLOBALS['phpgw_info']['user']['lastpasswd_change'] = Last time they changed
their password.<br>
-$GLOBALS['phpgw_info']['user']['passwd'] = Hashed password.<br>
-$GLOBALS['phpgw_info']['user']['status'] = If the user is enabled.<br>
-$GLOBALS['phpgw_info']['user']['logintime'] = Time they logged into their
current session.<br>
-$GLOBALS['phpgw_info']['user']['session_dla'] = Last time they did anything in
their current session<br>
-$GLOBALS['phpgw_info']['user']['session_ip'] = Current IP address<br>
-</tt>
-
-<h3><a name="tth_sEc6.3">6.3</a> Group information</h3>
-<tt><font size="-1">$GLOBALS['phpgw_info']['group']['group_names'] = List of
groups.</font></tt>
-
-<h3><a name="tth_sEc6.4">6.4</a> Server information</h3>
-
-<tt><font size="-1">$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 phpGroupWare installation.
-$phpgw_info[``server''][``hostname''] = Name of the server phpGroupWare is
installed upon.
-$phpgw_info[``server''][``charset''] = default charset, default:iso-8859-1
-$phpgw_info[``server''][``version''] = phpGroupWare version.
-
-<h3><a name="tth_sEc6.5">6.5</a> Database information</h3>
-
-<p>
-It is unlikely you will need these, because $GLOBALS['phpgw']->db will
-already be loaded as a database for you to use.
-</p>
-
-<tt><font size="-1">
-$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.
-</font></tt>
-
-<h3><a name="tth_sEc6.6">6.6</a> Mail information</h3>
-
-<p>
-It is unlikely you will need these, because most email needs are services
-thru core phpGroupWare functions.
-
-<p>
-<tt><font size="-1">$phpgw_info[``server''][``mail_server'']
-= Address of the IMAP server. Usually this is set to localhost.
</font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``mail_server_type'']
-= IMAP or POP3 </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``imap_server_type'']
-= Cyrus or Uwash </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``imap_port'']
-= This is usually 143, and should only be changed if there is a good
-reason. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``mail_suffix]
-= This is the domain name, used to add to email address </font></tt><font
size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``mail_login_type'']
-= This adds support for VMailMgr. Generally this should be set to
-'standard'. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``smtp_server'']
-= Address of the SMTP server. Usually this is set to localhost.
</font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``smtp_port'']
-= This is usually 25, and should only be changed if there is a good
-reason</font></tt><font size="-1">
-<p>
-</font> <h3><a name="tth_sEc6.7">
-6.7</a> NNTP information</h3>
-
-<p>
-<tt><font size="-1">$phpgw_info[``server''][``nntp_server'']
-= Address of the NNTP server. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``nntp_port'']
-= This is usually XX, and should only be changed if there is a good
-reason. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``nntp_sender'']
-= Unknown </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``nntp_organization'']
-= Unknown </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``nntp_admin'']
-= Unknown</font></tt><font size="-1">
-<p>
-</font> <h3><a name="tth_sEc6.8">
-6.8</a> Application information</h3>
-
-<p>
-Each application has the following information available.
-
-<p>
-<tt><font size="-1">$phpgw_info[``apps''][``appname''][``title'']
-= The title of the application. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``apps''][``appname''][``enabled'']
-= If the application is enabled. True or False. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``app_include_dir'']
-= Location of the current application include files. </font></tt><font
size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``app_template_dir'']
-= Location of the current application tpl files. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``app_lang_dir'']
-= Location of the current lang directory. </font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``app_auth'']
-= If the server and current user have access to current application
</font></tt><font size="-1">
-<p>
-</font><tt><font size="-1">$phpgw_info[``server''][``app_current'']
-= name of the current application.</font></tt><font size="-1">
-<p>
-</font> <h2><a name="tth_sEc7">
-7</a> Using Language Support</h2>
-
-<p>
-<h3><a name="tth_sEc7.1">
-7.1</a> Overview</h3>
-
-<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>
-<h3><a name="tth_sEc7.2">
-7.2</a> How to use lang support</h3>
-
-<p>
-The lang() 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:
+ <h3><a name="tth_sEc6.6" id="tth_sEc6.6">6.6</a> Mail information</h3>
+ <p>It is unlikely you will need these, because most email needs are
+ services thru core phpGroupWare functions.</p>
<pre>
-$x = 42;
-echo lang("The counter is %1",$x)."<br>";
+$GLOBALS['phpgw_info']['server']['mail_server'] = Address of the IMAP server.
+ Usually this is set to localhost.
+
+$GLOBALS['phpgw_info']['server']['mail_server_type'] = IMAP or POP3
+
+$GLOBALS['phpgw_info']['server']['imap_server_type'] = Courier/Cyrus, Uwash or
UW-Maildir
+
+$GLOBALS['phpgw_info']['server']['imap_port'] = This is usually 143.
+ Should only be changed if there is a good reason.
+
+$GLOBALS['phpgw_info']['server']['mail_suffix'] = This is the domain name,
used to add to email address
+
+$GLOBALS['phpgw_info']['server']['mail_login_type'] = This adds support for
VMailMgr.
+ Generally this should be set to 'standard'.
+
+$GLOBALS['phpgw_info']['server']['smtp_server'] = Address of the SMTP server.
+ Usually this is set to localhost.
+
+$GLOBALS['phpgw_info']['server']['smtp_port'] = This is usually 25.
+ Should only be changed if there is a good reason
</pre>
-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, <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:
+ <h3><a name="tth_sEc6.7" id="tth_sEc6.7">6.7</a> NNTP information</h3>
<pre>
-The counter is 42*<br>
-</pre>
+$GLOBALS['phpgw_info']['server']['nntp_server'] = Address of the NNTP server.
-If the current user speaks Italian, they string returned
-may instead be:
+$GLOBALS['phpgw_info']['server']['nntp_port'] = This is usually 119.
+ Should only be changed if there is a good reason.
-<pre>
-il contatore รจ 42<br&#gt;
-</pre>
+$GLOBALS['phpgw_info']['server']['nntp_sender'] = Unknown
-<p>
+$GLOBALS['phpgw_info']['server']['nntp_organization'] = Unknown
-<h4>The lang function</h4>
+$GLOBALS['phpgw_info']['server']['nntp_admin'] = Unknown
+</pre>
+
+ <h3><a name="tth_sEc6.8" id="tth_sEc6.8">6.8</a> Application
+ information</h3>
+ <p>Each application has the following information available.</p>
<pre>
+$GLOBALS['phpgw_info']['apps'][$appname]['title'] = The title of the
application.
-lang($key, $m1="", $m2="", $m3="", $m4="", $m5="",
- $m6="", $m7="", $m8="", $m9="", $m10="")
+$GLOBALS['phpgw_info']['apps'][$appname]['enabled'] = If the application is
enabled. True or False.
-</pre>
+$GLOBALS['phpgw_info']['server']['app_include_dir'] = Location of the current
application include files.
+
+$GLOBALS['phpgw_info']['server']['app_template_dir'] = Location of the current
application tpl files.
-<p>
+$GLOBALS['phpgw_info']['server']['app_lang_dir'] = Location of the current
lang directory.
-<dl compact="compact">
-<dd> [$key ]
+$GLOBALS['phpgw_info']['server']['app_auth'] = <b>DEPRECATED?</b>
+ If the server and current user have access to current application
-<p>
-is the string to translate and may contain replacement directives
-of the form %n.<br /></dd>
+$GLOBALS['phpgw_info']['server']['app_current'] = name of the current
application.
+</pre>
- <dd> [$m1 ]
+ <h2><a name="tth_sEc7" id="tth_sEc7" class="heading">7 Using Language
Support</a></h2>
-<p>
-is the first replacement value or may be an array of replacement values
-(in which case $m2 and above are ignored).</dd>
+ <h3><a name="tth_sEc7.1" id="tth_sEc7.1">7.1</a> Overview</h3>
- <dd> [$m2 - $m10 ]
+ <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>
-<p>
-the 2nd through 10th replacement values if $m1 is not an array.</dd>
-</dl>
-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).
+ <h3><a name="tth_sEc7.2" id="tth_sEc7.2">7.2</a> How to use lang
+ support</h3>
-<p>
+ <p>The lang() function is your application's interface to phpGroupWare's
+ internationalization support.</p>
-<h4>Adding translation data</h4>
+ <p>While developing your application, just wrap all your text output with
+ calls to lang(), as in the following code:</p>
+
+<pre>$x = 42;
+echo lang('The counter is %1', $x).'<br />';</pre>
-<p>
-An application called <b>Transy</b> is being developed to make this
-easier, until then you can create the translation data manually.
+ <p>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, <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>
-<p>
+ <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>
-<h4>The lang table</h4>
+ <p>Without a specific translation in the lang table, the above code will
+ print:</p>
+<pre>The counter is 42*<br /></pre>
+ <p>If the current user speaks Italian, the string returned will be:</p>
+<pre>il contatore è 42<br /></pre>
-<p>
-The translation class uses the lang table for all translations. We
-are concerned with 4 of the columns to create a translation:
+ <h4>The lang function</h4>
+<pre>lang($key, $m1="", $m2="", $m3="", $m4="", $m5="", $m6="", $m7="",
$m8="", $m9="", $m10="")</pre>
-<p>
+ <dl compact="compact">
+ <dd>
+ [$key]
+ <p>is the string to translate and may contain replacement directives
+ of the form %n. This string should be lower case.</p>
+ </dd>
-<dl compact="compact">
- <dd> [message_id ]
+ <dd>
+ [$m1]
+ <p>is the first replacement value or may be an array of replacement
+ values (in which case $m2 and above are ignored).</p>
+ </dd>
-<p>
-The key to identify the message (the $key passed to the lang() function).
-This is written in English.</dd>
+ <dd>
+ [$m2 - $m10]
+ <p>the 2nd through 10th replacement values if $m1 is not an
array.</p>
+ </dd>
+ </dl>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).
- <dd> [app_name ]
+ <h4>Adding translation data</h4>
-<p>
-The application the translation applies to, or common if it is common
-across multiple applications.</dd>
+ <p>An application called <b>Translation Tools</b> has been developed to
make this
+ easier. Please use this application or edit the lang files manually.
The table
+ information is here as a reference, but direct database insertions
should not
+ be used.</p>
- <dd> [lang ]
+ <h4>The lang table</h4>
-<p>
-The code for the language the translation is in.</dd>
+ <p>The translation class uses the lang table for all translations. We are
+ concerned with 4 of the columns to create a translation:</p>
- <dd> [content ]
+ <dl compact="compact">
+ <dd>
+ [message_id]
+ <p>The key to identify the message (the $key passed to the lang()
+ function). This is written in English.</p>
+ </dd>
-<p>
-The translated string.</dd>
-</dl>
+ <dd>
+ [app_name]
+ <p>The application the translation applies to, or common if it is
+ common across multiple applications.</p>
+ </dd>
-<p>
+ <dd>
+ [lang]
+ <p>The code for the language the translation is in.</p>
+ </dd>
-<h4>lang.sql</h4>
+ <dd>
+ [content]
+ <p>The translated string.</p>
+ </dd>
+ </dl>
-<p>
-Currently all applications, and the core phpGroupWare source tree
-have a lang.sql file. This is the place to add translation data. Just
-add lines of the form:
-<pre>
+ <h4>phpgw_??.lang</h4>
+ <p>The translations are now being done thru the database, and may be
+ configurable to use other mechanisms in future releases.</p>
-REPLACE INTO lang (message_id, app_name, lang, content)
-VALUES( 'account has been deleted','common','en','Account has been deleted');
+ <p>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 <tt>phpgw_<langcode>.lang</tt>. The files are
+ stored in the <tt>app/setup</tt> directory. The format of the files is as
+ follows:</p>
+ <pre>
+english phrase in lower case appname ** Translated phrase in
desired case.
+</pre><b>Notes:</b>
+ <ul>
+ <li>replace ** with the desired language code, as used in the
+ filename</li>
-</pre>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.
-
-<p>
-<h3><a name="tth_sEc7.3">
-7.3</a> Common return codes</h3>
-
-<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 doc/developers/CODES 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 check_code() function, which passes the strings through lang()
-before returning.
+ <li>tabs are used to deliniate "columns"</li>
+ </ul>
-<p>
-For example, calling
-<pre>
+ <p>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.</p>
-echo check_code(13);
+ <h3><a name="tth_sEc7.3" id="tth_sEc7.3">7.3</a> Common return codes</h3>
+ <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 doc/developers/CODES file.</p>
-</pre>Would print
-<pre>
+ <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 check_code() function, which passes the strings through
+ lang() before returning.</p>
-Your message has been sent
+ <p>For example, calling</p>
+<pre>echo check_code(13);</pre>
+ <p>Would print</p>
+<pre>Your message has been sent</pre>
+ <p>translated into the current language.</p>
+ <h2><a name="tth_sEc8" id="tth_sEc8" class="heading">8 Using
Templates</a></h2>
-</pre> translated into the current language.
+ <h3><a name="tth_sEc8.1" id="tth_sEc8.1">8.1</a> Overview</h3>
-<h2><a name="tth_sEc8">8</a> Using Templates</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.</p>
-<h3><a name="tth_sEc8.1">8.1</a> Overview</h3>
+ <p>phpGroupWare is changing template engines for the 0.9.18 release. All
+ versions of phpGroupWare upto 0.9.16 use the PHPLIB template engine. As
+ of the 0.9.18 release phpGroupWare will use a "home grown" XSLT based
+ template engine.</p>
-<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>
+ <h3><a name="tth_sEc8.2" id="tth_sEc8.2">8.2</a> How to use PHPLIB
+ templates</h3>
-<p>phpGroupWare is changing template engines for the 0.9.18 release. All
-versions of phpGroupWare upto 0.9.16 use the PHPLIB template engine. As of
-the 0.9.18 release phpGroupWare will use a "home grown" XSLT based template
-engine.</p>
+ <p>For Further info read the PHPLIBs documentation for their template
+ class. <a href=
+ "http://phplib.sanisoft.com"><tt>http://phplib.sanisoft.com</tt></a></p>
-<h3><a name="tth_sEc8.2">8.2</a> How to use PHPLIB templates</h3>
+ <h3><a name="tth_sEc8.3" id="tth_sEc8.3">8.3</a> How to use XSLT
+ templates</h3>
-<p>
-For Further info read the PHPLIBs documentation for their template
-class. <a
href="http://phplib.sanisoft.com"><tt>http://phplib.sanisoft.com</tt></a>
-</p>
+ <p>Whoops, there is no documentation available on this - hassle the
+ docteam to produce something.</p>
-<h3><a name="tth_sEc8.3">8.3</a> How to use XSLT templates</h3>
+ <h2><a name="tth_sEc9" id="tth_sEc9" class="heading">9 About this
document</a></h2>
-<p>
-Whoops, there is no documentation available on this - hassle the docteam to
-produce something.
-</p>
+ <h3><a name="tth_sEc9.1" id="tth_sEc9.1">9.1</a> New versions</h3>
+ <p>The newest version of this document can be found on our website
+ <a href=
+ "http://docs.phpgroupware.org/contrib">http://docs.phpgroupware.org</a>
+ as HTML and plain text.</p>
-<p>
-<h2><a name="tth_sEc9">
-9</a> About this document</h2>
+ <h3><a name="tth_sEc9.2" id="tth_sEc9.2">9.2</a> Comments</h3>
-<p>
-<h3><a name="tth_sEc9.1">
-9.1</a> New versions </h3>
+ <p>Comments on this HOWTO should be directed to the phpGroupWare
+ developers mailing list phpgroupware-docteam at gnu.org</p>
-<p>
-The newest version of this document can be found on our website <a
href="http://docs.phpgroupware.org"><tt>http://docs.phpgroupware.org</tt></a>
-as HTML and plain text.
+ <p>To subscribe, go to <a href=
+
"http://support.phpgroupware.org/lists">http://support.phpgroupware.org/lists</a></p>
-<p>
-<h3><a name="tth_sEc9.2">
-9.2</a> Comments </h3>
+ <h3><a name="tth_sEc9.3" id="tth_sEc9.3">9.3</a> History</h3>
-<p>
-Comments on this HOWTO should be directed to the phpGroupWare developers
-mailing list phpgroupware-docteam at gnu.org
+ <ul>
+ <li>This document was written by Dan Kuykendall.</li>
-<p> FIXME
-To subscribe, go to <a
href="http://sourceforge.net/mail/?group"><tt>http://sourceforge.net/mail/?group</tt></a>_id=7305
+ <li><em>2000-09-25</em><br />
+ documentation on lang(), codes, administration and preferences
+ extension added by Steve Brown.</li>
-<p>
-<h3><a name="tth_sEc9.3">
-9.3</a> History </h3>
+ <li><em>2001-01-08</em><br />
+ fixed directory structure, minor layout changes, imported to lyx source
+ - Darryl VanDorp</li>
-<p>
-This document was written by Dan Kuykendall.
+ <li><em>2003-12-01</em><br />
+ Started clean up - skwashd</li>
-<p>
-2000-09-25 documentation on lang(), codes, administration and preferences
-extension added by Steve Brown.
+ <li><em>2004-08-04</em><br />
+ More cleaning up - skwashd</li>
+ </ul>
-<p>
-2001-01-08 fixed directory structure, minor layout changes, imported
-to lyx source - Darryl VanDorp
+ <h3><a name="tth_sEc9.4" id="tth_sEc9.4">9.4</a> Copyrights and
Trademarks</h3>
-<p>
-<h3><a name="tth_sEc9.4">
-9.4</a> Copyrights and Trademarks </h3>
+ <p>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.</p>
-<p>
-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.
+ <p>A copy of the license is available at <a href=
+
"http://www.gnu.org/copyleft/fdl.html">http://www.gnu.org/copyleft/fdl.html</a></p>
-<p>
-A copy of the license is available at <a
href="http://www.gnu.org/copyleft/gpl.html"><tt>http://www.gnu.org/copyleft/gpl.html</tt></a>
+ <h3><a name="tth_sEc9.5" id="tth_sEc9.5">9.5</a> Acknowledgments and
+ Thanks</h3>
-<p>
-<h3><a name="tth_sEc9.5">
-9.5</a> Acknowledgments and Thanks </h3>
+ <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>
+ </div>
-<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.
+ <div id="footer">
+ The most recent version of this document can be found at <a href=
+
"http://docs.phpgroupware.org/html/install/">docs.phpgroupware.org</a><br />
-<br><br><hr>
-<p>$Id$</p>
+ Copyright © 2000-2004 <a href="http://www.fsf.org" target=
+ "_blank">Free Software Foundation Inc</a>, distributed under the terms of
+ the <a href="http://www.gnu.org/copyleft/fdl.html" target="_blank">GNU
+ Free Documentation License</a><br />
+ <b>Source:</b> $Source$<br />
+ <b>Version:</b> $Revision$<br />
+ <b>Last Modified:</b> $Date$ by $Author$
+ </div>
+ </div>
+</body>
</html>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] phpgwapi/doc/index.html, 1.2.10.2,
nomail <=