# 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 prefered position of this tool on the tools page. * The position may be between 0 and 1000. 0 is the top position. * * @return int prefered position */ function getPosition() { return 100; } }