minor changes
This commit is contained in:
parent
b07d598ff3
commit
26c20e73f0
|
@ -1,8 +1,8 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=ISO-8859-15"
|
||||
http-equiv="content-type">
|
||||
<meta http-equiv="content-type"
|
||||
content="text/html; charset=ISO-8859-15">
|
||||
<title>Module specification</title>
|
||||
</head>
|
||||
<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
|
||||
allowed to call other static functions.<br>
|
||||
<br>
|
||||
<h3>2.1.1. Constructor</h3>
|
||||
<h3>2.1.1. get_alias</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 name> ($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">
|
||||
<table cellpadding="2" cellspacing="2" border="0"
|
||||
style="text-align: left; width: 300px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<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 account type ("user", "group", "host" at this time).<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>
|
||||
<table style="text-align: left; width: 300px; font-weight: bold;"
|
||||
border="0" cellspacing="2" cellpadding="2">
|
||||
|
@ -100,106 +134,10 @@ your module depends on one of these modules.<br>
|
|||
=> array("exim"));</span><br
|
||||
style="font-weight: bold; font-style: italic;">
|
||||
<br>
|
||||
<h3>2.1.5. get_profileOptions</h3>
|
||||
<br>
|
||||
<h3>2.1.4. 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>
|
||||
<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">
|
||||
<table cellpadding="2" cellspacing="2" border="0"
|
||||
style="text-align: left; width: 300px; height: 30px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
|
@ -221,6 +159,69 @@ The return value is an array that contains <span
|
|||
The type "fieldset" is not allowed here.<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 <module name> ($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>
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue