minor changes

This commit is contained in:
Roland Gruber 2004-02-21 19:27:12 +00:00
parent b07d598ff3
commit 26c20e73f0
1 changed files with 126 additions and 125 deletions

View File

@ -1,8 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<meta content="text/html; charset=ISO-8859-15" <meta http-equiv="content-type"
http-equiv="content-type"> content="text/html; charset=ISO-8859-15">
<title>Module specification</title> <title>Module specification</title>
</head> </head>
<body> <body>
@ -25,30 +25,10 @@ These functions are called without instanciating an object of the
module class. They must not depend on class variables and are only module class. They must not depend on class variables and are only
allowed to call other static functions.<br> allowed to call other static functions.<br>
<br> <br>
<h3>2.1.1. Constructor</h3> <h3>2.1.1. get_alias</h3>
<br> <br>
<table style="text-align: left; width: 300px; height: 30px;" border="0" <table cellpadding="2" cellspacing="2" border="0"
cellspacing="2" cellpadding="2"> style="text-align: left; width: 300px;">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function &lt;module name&gt; ($base)</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Every module needs a constructor that has an<span
style="font-style: italic;"> <span style="font-weight: bold;">account
container</span></span> as argument $base.<br>
With this account container you can interact with other modules and use
several helper functions.<br>
<br>
<h3>2.1.2. get_alias</h3>
<br>
<table style="text-align: left; width: 300px;" border="0"
cellspacing="2" cellpadding="2">
<tbody> <tbody>
<tr> <tr>
<td <td
@ -67,7 +47,61 @@ a-z, A-Z, 0-9, -, _ and spaces.<br>
The <span style="font-weight: bold;">$scope</span> parameter defines The <span style="font-weight: bold;">$scope</span> parameter defines
the account type ("user", "group", "host" at this time).<br> the account type ("user", "group", "host" at this time).<br>
<br> <br>
<h3>2.1.3. get_dependencies</h3> <h3>2.1.2. is_base_module</h3>
<br>
<table cellpadding="2" cellspacing="2" border="0"
style="text-align: left; width: 300px; height: 30px;">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function is_base_module($scope)</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Returns <span style="font-weight: bold;">true</span> if your module is
a base module and otherwise <span style="font-weight: bold;">false</span>.<br>
<span style="font-weight: bold;">$scope</span> is the account type
("user", "group", "host" at this time).<br>
<br>
Every account type needs at least one base module. A base module
defines a full qualified account.<br>
E.g. modules that use the object class posixAccount may be base modules
as it makes sense to manage these Unix accounts. On the other hand the
quota module is no base module as it needs posixAccount.<br>
<br>
<h3>2.1.3. get_ldap_filter</h3>
<br>
<table cellpadding="2" cellspacing="2" border="0"
style="text-align: left; width: 300px; height: 30px;">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function get_ldap_filter($scope)</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Returns a string that can be used as part of a LDAP filter. Usually
used to filter object classes.<br>
<span style="font-weight: bold;">$scope</span> is the account type
("user", "group", "host" at this time).<br>
<br>
All filter parts of the base modules are combined with OR and used to
find the accounts for the lists.<br>
<br>
<span style="font-weight: bold;">Example: <span
style="font-style: italic;">return "(objectClass=posixAccount)"</span></span><br>
<br>
<span style="font-weight: bold; color: rgb(255, 0, 0);">This function
is only used for base modules. Standard modules do not need to
implement it.</span><br>
<br>
<h3>2.1.4. get_dependencies</h3>
<br> <br>
<table style="text-align: left; width: 300px; font-weight: bold;" <table style="text-align: left; width: 300px; font-weight: bold;"
border="0" cellspacing="2" cellpadding="2"> border="0" cellspacing="2" cellpadding="2">
@ -100,106 +134,10 @@ your module depends on one of these modules.<br>
=&gt; array("exim"));</span><br =&gt; array("exim"));</span><br
style="font-weight: bold; font-style: italic;"> style="font-weight: bold; font-style: italic;">
<br> <br>
<h3>2.1.5. get_profileOptions</h3>
<br> <br>
<h3>2.1.4. module_ready</h3> <table cellpadding="2" cellspacing="2" border="0"
<br> style="text-align: left; width: 300px; height: 30px;">
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function module_ready()</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Your module might depend on input of other modules. This function
determines if the module button on the account page is active or not.<br>
The return value is <span style="font-weight: bold;">true</span> if
your module accepts input, otherwise <span style="font-weight: bold;">false</span>.<br>
<br>
<br>
<h3>2.1.5. module_complete</h3>
<br>
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function module_complete()</span><br>
</td>
</tr>
</tbody>
</table>
<br>
This function is called after your module has processed the POST input
data.<br>
If there was an input error and you want to display a page again then
return <span style="font-weight: bold;">false</span>. If <span
style="font-weight: bold;">true</span> is returned the next module
page will be displayed.<br>
<br>
<h3>2.1.6. is_base_module</h3>
<br>
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function is_base_module($scope)</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Returns <span style="font-weight: bold;">true</span> if your module is
a base module and otherwise <span style="font-weight: bold;">false</span>.<br>
<span style="font-weight: bold;">$scope</span> is the account type
("user", "group", "host" at this time).<br>
<br>
Every account type needs at least one base module. A base module
defines a full qualified account.<br>
E.g. modules that use the object class posixAccount may be base modules
as it makes sense to manage these Unix accounts. On the other hand the
quota module is no base module as it needs posixAccount.<br>
<br>
<h3>2.1.7. get_ldap_filter</h3>
<br>
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function get_ldap_filter($scope)</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Returns a string that can be used as part of a LDAP filter. Usually
used to filter object classes.<br>
<span style="font-weight: bold;">$scope</span> is the account type
("user", "group", "host" at this time).<br>
<br>
All filter parts of the base modules are combined with OR and used to
find the accounts for the lists.<br>
<br>
<span style="font-weight: bold;">Example: <span
style="font-style: italic;">return "(objectClass=posixAccount)"</span></span><br>
<br>
<span style="font-weight: bold; color: rgb(255, 0, 0);">This function
is only used for base modules.</span><br>
<br>
<br>
<h3>2.1.8. get_profileOptions</h3>
<br>
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody> <tbody>
<tr> <tr>
<td <td
@ -221,6 +159,69 @@ The return value is an array that contains <span
The type "fieldset" is not allowed here.<br> The type "fieldset" is not allowed here.<br>
<br> <br>
<br> <br>
<h3>2.2. Class functions</h3>
<h3>2.2.1. Constructor</h3>
<br>
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function &lt;module name&gt; ($base)</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Every module needs a constructor that has an<span
style="font-style: italic;"> <span style="font-weight: bold;">account
container</span></span> as argument $base.<br>
With this account container you can interact with other modules and use
several helper functions.<br>
<br>
<h3>2.2.2. module_ready</h3>
<br>
<table style="text-align: left; width: 300px; height: 30px;" border="0"
cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function module_ready()</span><br>
</td>
</tr>
</tbody>
</table>
<br>
Your module might depend on input of other modules. This function
determines if the module button on the account page is active or not.<br>
The return value is <span style="font-weight: bold;">true</span> if
your module accepts input, otherwise <span style="font-weight: bold;">false</span>.<br>
<br>
<h3>2.2.3. module_complete</h3>
<br>
<table cellpadding="2" cellspacing="2" border="0"
style="text-align: left; width: 300px; height: 30px;">
<tbody>
<tr>
<td
style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span
style="font-weight: bold;">function module_complete()</span><br>
</td>
</tr>
</tbody>
</table>
<br>
This function is called after your module has processed the POST input
data.<br>
If there was an input error and you want to display a page again then
return <span style="font-weight: bold;">false</span>. If <span
style="font-weight: bold;">true</span> is returned the next module
page will be displayed.<br>
<br>
<h3><br>
</h3>
<h2>3. Meta HTML code</h2> <h2>3. Meta HTML code</h2>
The modules are not allowed to display HTML code directly but return The modules are not allowed to display HTML code directly but return
meta HTML code. This allows to have a common design for all module meta HTML code. This allows to have a common design for all module