diff --git a/lam/lib/tools.inc b/lam/lib/tools.inc new file mode 100644 index 00000000..207ae2ae --- /dev/null +++ b/lam/lib/tools.inc @@ -0,0 +1,123 @@ +read(); + // include all files in the tools directory + while ($entry) { + if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($toolsDirName . '/'.$entry)) { + include_once($toolsDirName . '/'.$entry); + } + $entry = $toolsDir->read(); + } + // find tools classes + $classList = get_declared_classes(); + $return = array(); + for ($i = 0; $i < sizeof($classList); $i++) { + if (in_array('LAMTool', class_implements($classList[$i]))) { + $return[] = $classList[$i]; + } + } + return $return; +} + +/** + * Represents a tool. + * LAM will scan lib/tools/*.inc for classes which implement this interface. There will be an + * entry on the tools page inside LAM for each found class (if it matches the security level). + * A LAMTool only specifies name, description and location of a tool. The tool functionality + * is provided by the target page. + * + * @author Roland Gruber + * @package tools + */ +interface LAMTool { + + /** + * Returns the name of the tool. + * + * @return string name + */ + function getName(); + + /** + * returns a description text for the tool. + * + * @return string description + */ + function getDescription(); + + /** + * Returns a link to the tool page (relative to templates/). + * + * @return string link + */ + function getLink(); + + /** + * Returns if the tool requires write access to LDAP. + * + * @return boolean true if write access is needed + */ + function getRequiresWriteAccess(); + + /** + * Returns if the tool requires password change rights. + * + * @return boolean true if password change rights are needed + */ + function getRequiresPasswordChangeRights(); + + /** + * Returns the link to the tool image (relative to graphics/) + * + * @return string image URL + */ + function getImageLink(); + + /** + * 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(); + +} + +?> \ No newline at end of file diff --git a/lam/lib/tools/fileUpload.inc b/lam/lib/tools/fileUpload.inc new file mode 100644 index 00000000..c63cec91 --- /dev/null +++ b/lam/lib/tools/fileUpload.inc @@ -0,0 +1,104 @@ + \ No newline at end of file diff --git a/lam/lib/tools/ouEditor.inc b/lam/lib/tools/ouEditor.inc new file mode 100644 index 00000000..d159c32f --- /dev/null +++ b/lam/lib/tools/ouEditor.inc @@ -0,0 +1,104 @@ + \ No newline at end of file diff --git a/lam/lib/tools/pdfEdit.inc b/lam/lib/tools/pdfEdit.inc new file mode 100644 index 00000000..2cacac4b --- /dev/null +++ b/lam/lib/tools/pdfEdit.inc @@ -0,0 +1,104 @@ + \ No newline at end of file diff --git a/lam/lib/tools/profileEditor.inc b/lam/lib/tools/profileEditor.inc new file mode 100644 index 00000000..beed9171 --- /dev/null +++ b/lam/lib/tools/profileEditor.inc @@ -0,0 +1,104 @@ + \ No newline at end of file diff --git a/lam/lib/tools/schemaBrowser.inc b/lam/lib/tools/schemaBrowser.inc new file mode 100644 index 00000000..adb6502f --- /dev/null +++ b/lam/lib/tools/schemaBrowser.inc @@ -0,0 +1,104 @@ + \ No newline at end of file diff --git a/lam/lib/tools/tests.inc b/lam/lib/tools/tests.inc new file mode 100644 index 00000000..7c032ad9 --- /dev/null +++ b/lam/lib/tools/tests.inc @@ -0,0 +1,104 @@ + \ No newline at end of file