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