# Tools

LAM includes a "Tools" page which contains various tools like the profile editor or the file upload. The content of this page is dynamic. LAM includes all *.inc files in the directory lib/tools. Each found class which implements the LAMtool interface is a candidate for this page. The different tools are displayed and ordered based on their security level and ordering preferences.
Example:
The profile editor implements the LAMtool interface.

/**
* Profile editor
*
* @package tools
*/
class toolProfileEditor implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("Profile editor");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("Here you can manage your account profiles.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "profedit/profilemain.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return true;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return true;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'edit.png';
}
/**
* Returns the preferred position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int preferred position
*/
function getPosition() {
return 100;
}
}