2012-06-08 18:48:09 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html > < head >
< meta content = "text/html; charset=ISO-8859-15" http-equiv = "content-type" >
< title > Tools HowTo< / title >
< link rel = "stylesheet" type = "text/css" href = "style/layout.css" >
< link rel = "shortcut icon" type = "image/x-icon" href = "images/favicon.ico" >
< / head > < body >
< h1 style = "text-align: center;" > Tools HowTo< br >
< / h1 >
< div style = "text-align: center;" > < br >
< / div >
< div style = "text-align: center;" > < br >
< div style = "text-align: left;" > You can add your own tools easily.
Please follow the following steps to create a custom tool. Tools are
displayed in the tools menu in the upper right corner of LAM.< br >
< br >
< h2 > Create tool definition class< / h2 >
All tools contain a definition class and a separate PHP page that displays the content itself.< br >
First, you need to create a new tool definition class in < span style = "font-weight: bold;" > lib/tools< / span > . The file name does not need to follow any patterns but there must be a class included that implements the < span style = "font-weight: bold;" > LAMTool< / span > interface.< br >
< br >
Example:< br >
< br >
< pre > /**< / pre >
< pre > * Server information< / pre >
< pre > * < / pre >
< pre > * @package tools< / pre >
< pre > */ < / pre >
< pre > class toolServerInformation implements LAMTool {< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns the name of the tool.< / pre >
< pre > * < / pre >
< pre > * @return string name< / pre >
< pre > */< / pre >
< pre > function getName() {< / pre >
< pre > return _("Server information");< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * returns a description text for the tool.< / pre >
< pre > * < / pre >
< pre > * @return string description< / pre >
< pre > */< / pre >
< pre > function getDescription() {< / pre >
< pre > return _("Information about the LDAP server.");< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns a link to the tool page (relative to templates/).< / pre >
< pre > * < / pre >
< pre > * @return string link< / pre >
< pre > */< / pre >
< pre > function getLink() {< / pre >
< pre > return "serverInfo.php";< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /** < / pre >
< pre > * Returns if the tool requires write access to LDAP.< / pre >
< pre > * < / pre >
< pre > * @return boolean true if write access is needed< / pre >
< pre > */< / pre >
< pre > function getRequiresWriteAccess() {< / pre >
< pre > return false;< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns if the tool requires password change rights.< / pre >
< pre > * < / pre >
< pre > * @return boolean true if password change rights are needed< / pre >
< pre > */< / pre >
< pre > function getRequiresPasswordChangeRights() {< / pre >
< pre > return true;< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns the link to the tool image (relative to graphics/)< / pre >
< pre > *< / pre >
< pre > * @return string image URL< / pre >
< pre > */< / pre >
< pre > function getImageLink() {< / pre >
< pre > return 'tree_info.png';< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
2020-03-02 15:44:15 +00:00
< pre > * Returns the preferred position of this tool on the tools page.< / pre >
2012-06-08 18:48:09 +00:00
< pre > * The position may be between 0 and 1000. 0 is the top position.< / pre >
< pre > *< / pre >
2020-03-02 15:44:15 +00:00
< pre > * @return int preferred position< / pre >
2012-06-08 18:48:09 +00:00
< pre > */< / pre >
< pre > function getPosition() {< / pre >
< pre > return 600;< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns a list of sub tools or an empty array.< / pre >
< pre > * < / pre >
< pre > * @return array list of subtools (LAMTool)< / pre >
< pre > */< / pre >
< pre > function getSubTools() {< / pre >
< pre > return array();< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns if the tool is visible in the menu.< / pre >
< pre > *< / pre >
< pre > * @return boolean visible< / pre >
< pre > */< / pre >
< pre > function isVisible() {< / pre >
< pre > return true;< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > /**< / pre >
< pre > * Returns if a tool may be hidden by configuration in the LAM server profile.< / pre >
< pre > * < / pre >
< pre > * @return boolean hideable< / pre >
< pre > */< / pre >
< pre > function isHideable() {< / pre >
< pre > return true;< / pre >
< pre > }< / pre >
< pre > < / pre >
< pre > }< / pre >
The functions are quite self-descriptive.< br >
LAM Pro provides multiple access levels. The functions < span style = "font-weight: bold;" > getRequiresWriteAccess()/getRequiresPasswordChangeRights()< / span > can restrict the visibility of the tool.< br >
< br >
You will also need a logo for your tool. This can be any image in the folder < span style = "font-weight: bold;" > graphics< / span > .< br >
< br >
Sometimes you may want to create a submenu to group multiple tools. This is possible by using the function < span style = "font-weight: bold;" > getSubTools()< / span > . It returns a list of LAMSubTool objects.< br >
< br >
< h2 > Create the tool page< / h2 >
Each tool definition provides the path to its tool page with the function < span style = "font-weight: bold;" > getLink()< / span > . The tool page can be any PHP page inside the directory < span style = "font-weight: bold;" > templates< / span > .< br >
< br >
This is all that you need to create your own tool for LAM. :)< br >
< / div >
< / div >
< / body > < / html >