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;
    }
   
}