diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkBL.php b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkBL.php
new file mode 100644
index 0000000..c8f55c6
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkBL.php
@@ -0,0 +1,29 @@
+fileSystemRoot/lib/visualpatterns/PatternCreate.inc");
+ require_once("addLinkUI.inc");
+ require_once("$default->fileSystemRoot/lib/links/link.inc");
+ require_once("$default->fileSystemRoot/lib/security/permission.inc");
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+ require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+ require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+ require_once("$default->fileSystemRoot/presentation/Html.inc");
+
+ $oPatternCustom = & new PatternCustom();
+ $oPatternCustom->setHtml(getPage());
+ $main->setCentralPayload($oPatternCustom);
+ $main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=addLinkSuccess&fLinkID="));
+ $main->render();
+}
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkSuccess.php b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkSuccess.php
new file mode 100644
index 0000000..93c010d
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkSuccess.php
@@ -0,0 +1,62 @@
+fileSystemRoot/presentation/webpageTemplate.inc");
+
+$Center = " \n" ;
+$Center .= "
\n";
+$Center .= "\n";
+if($fLinkID != -1){
+ $Center .= "New QuickLink Added SuccessFully! \n";
+}
+Else
+{
+ $Center .= "Addition Unsuccessful ... \n";
+ $Center .= " \n";
+ $Center .= " \n";
+ $Center .= " \n";
+ $Center .= "\n";
+ $Center .= "Please Check Name and Rank for duplicates! \n";
+ $Center .= " \n";
+ $Center .= "\n";
+ $Center .="Only a maximum of 5 Quicklinks are allowed \n";
+
+}
+
+
+$Center .= " \n";
+$Center .= " \n";
+$Center .= " \n";
+$Center .= " \n";
+$Center .= "\n";
+$Center .= "rootUrl/control.php?action=addLink\"> graphicsUrl/widgets/back.gif\" border = \"0\" /> \n";
+$Center .= " \n";
+$Center .= "
\n";
+
+
+$oPatternCustom = & new PatternCustom();
+$oPatternCustom->setHtml($Center);
+$main->setCentralPayload($oPatternCustom);
+$main->render();
+
+
+
+
+}
+
+?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkUI.inc
new file mode 100644
index 0000000..84b279f
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/addLinkUI.inc
@@ -0,0 +1,76 @@
+setUniqueName("link");
+
+
+ $sToRender .= " \n";
+ $sToRender .= "Add a New QuickLink: \n";
+ $sToRender .= "\n";
+
+ return $sToRender;
+
+}
+
+ // TODO .. do a check if rank already taken...as well as do a check if name already exists when inserting
+
+
+
+ // if edition is successful print otu success page
+function getAddPageFail() {
+ global $default;
+
+ $sToRender .= " \n";
+ $sToRender .= "Addition Unsuccessful \n";
+ $sToRender .= "\n";
+
+
+ return $sToRender;
+}
+
+
+
+
+?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/editLinkBL.php b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/editLinkBL.php
new file mode 100644
index 0000000..cae320e
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/editLinkBL.php
@@ -0,0 +1,57 @@
+fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
+ require_once("editLinkUI.inc");
+ require_once("$default->fileSystemRoot/lib/security/permission.inc");
+ require_once("$default->fileSystemRoot/lib/links/link.inc");
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+ require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+ require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+ require_once("$default->fileSystemRoot/presentation/Html.inc");
+
+
+ $oPatternCustom = & new PatternCustom();
+
+ if (isset($fForStore)){
+ $oLink = Link::get($fLinkID);
+ $oLink->setName($fLinkName);
+ $oLink->setUrl($fUrl);
+ $oLink->setRank($fRank);
+
+ if ($oLink->update()) {
+ // if successfull print out success message
+ $oPatternCustom->setHtml(getEditPageSuccess());
+
+ } else {
+ // if fail print out fail message
+ $oPatternCustom->setHtml(getEditPageFail());
+ }
+ } else if (isset($fLinkID)){
+ // post back on Link select from manual edit page
+ $oPatternCustom->setHtml(getEditPage($fLinkID));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fForStore=1");
+
+
+ } else {
+ // if nothing happens...just reload edit page
+ $oPatternCustom->setHtml(getEditPage(null));
+ $main->setFormAction($_SERVER["PHP_SELF"]);
+
+ }
+ //render the page
+ $main->setCentralPayload($oPatternCustom);
+ $main->render();
+}
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/editLinkUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/editLinkUI.inc
new file mode 100644
index 0000000..4236f1f
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/editLinkUI.inc
@@ -0,0 +1,155 @@
+\n";
+ $sToRender .= "Edit Link Properties: \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "Link Name: " . getLinkDisplay($oLink) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+
+ // if a Link selected...show checkboxes
+ if (isset($iLinkID)) {
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "URL: " . getURL($oLink) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "Rank: " . getRank($oLink) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ }
+
+
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= " " . getUpdateButton($oLink);
+ $sToRender .= getCancelButton($oLink);
+ $sToRender .= "
\n";
+
+
+ return $sToRender;
+}
+
+// if edition is successful print otu success page
+function getEditPageSuccess() {
+ global $default;
+
+ $sToRender .= " \n";
+ $sToRender .= "Success! \n";
+ $sToRender .= "\n";
+
+
+ return $sToRender;
+}
+
+
+// gets the page if edition fails
+function getEditPageFail() {
+ global $default;
+
+ $sToRender .= " \n";
+ $sToRender .= "Success! \n";
+ $sToRender .= "\n";
+
+
+ return $sToRender;
+}
+
+// show the list box when no Link selected
+// then shows a text box with the Link's name
+function getLinkDisplay($oLink) {
+ global $default;
+ if (!isset($oLink)) {
+ $oPatternListBox = & new PatternListBox($default->owl_links_table, "name", "id", "fLinkID");
+ //$oPatternListBox->setIncludeDefaultValue(true);
+ $oPatternListBox->setPostBackOnChange(true);
+ return $oPatternListBox->render();
+ } else {
+ return " iId . "\">\n" .
+ " getName() . "\">";
+ }
+
+}
+
+
+// returns the checkbox ticked or unticked
+function getURL($oLink) {
+ if (!isset($oLink)) {
+ return "";
+ } else {
+ return " getUrl() . "\">";
+ }
+}
+
+// returns the checkbox ticked or unticked
+function getRank($oLink) {
+ if (!isset($oLink)) {
+ return "";
+ } else {
+ return " getRank() . "\">";
+ }
+
+}
+
+// gets the updatebutton when a Link is selected
+function getUpdateButton($oLink) {
+ global $default;
+ if (!isset($oLink)) {
+ return "Please select a Link: ";
+ } else {
+ return " graphicsUrl/widgets/update.gif\" value=\"submit\" /> \n";
+ }
+}
+
+// gets the cancel button when a Link is selected
+function getCancelButton($oLink) {
+ global $default;
+ if (!isset($oLink)) {
+ //return "rootUrl/control.php?action=LinkManagement\"> graphicsUrl/widgets/cancel.gif\" value=\"cancel\" /> \n";
+ } else {
+ return "rootUrl/control.php?action=editLink\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
+ }
+}
+?>
\ No newline at end of file
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/removeLinkBL.php b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/removeLinkBL.php
new file mode 100644
index 0000000..811856a
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/removeLinkBL.php
@@ -0,0 +1,54 @@
+fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
+ require_once("removeLinkUI.inc");
+ require_once("$default->fileSystemRoot/lib/security/permission.inc");
+ require_once("$default->fileSystemRoot/lib/links/link.inc");
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+ require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+ require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+ require_once("$default->fileSystemRoot/presentation/Html.inc");
+
+ $oPatternCustom = & new PatternCustom();
+
+ // get main page
+ if (isset($fLinkID)) {
+
+ $oPatternCustom->setHtml(getDeletePage($fLinkID));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fForDelete=1");
+
+ // get delete page
+ } else {
+ $oPatternCustom->setHtml(getDeletePage(null));
+ $main->setFormAction($_SERVER["PHP_SELF"]);
+ }
+
+ // if delete entry
+ if (isset($fForDelete)) {
+ $oLink = Link::get($fLinkID);
+ $oLink->setName($fLinkName);
+
+ if ($oLink->delete()) {
+ $oPatternCustom->setHtml(getDeleteSuccessPage());
+
+ } else {
+ $oPatternCustom->setHtml(getDeleteFailPage());
+ }
+ }
+
+ $main->setCentralPayload($oPatternCustom);
+ $main->render();
+}
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/removeLinkUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/removeLinkUI.inc
new file mode 100644
index 0000000..e50c76c
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/removeLinkUI.inc
@@ -0,0 +1,138 @@
+\n";
+ $sToRender .= "Are you sure you wish to Remove this Link?: \n";
+ }
+ else{
+ $sToRender .= " \n";
+ $sToRender .= "Remove Link From System: \n";
+ }
+
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "Link Name: " . getLinkDisplay($oLink) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "" . getUrl($oLink) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= "" . getRank($oLink) . " \n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "\n";
+ $sToRender .= " \n";
+ $sToRender .= "" . getDeleteButton($oLink) . " \n";
+ $sToRender .= "
\n";
+
+
+ return $sToRender;
+}
+
+// get successfully deletion page
+function getDeleteSuccessPage() {
+
+global $default;
+
+$sToRender = " \n" ;
+$sToRender .= "\n";
+
+return $sToRender;
+}
+
+// get deletion failed page
+function getDeleteFailPage() {
+
+global $default;
+
+$sToRender = " \n" ;
+$sToRender .= "\n";
+
+return $sToRender;
+}
+
+// show listbox...or the text name
+function getLinkDisplay($oLink) {
+ global $default;
+ if (!isset($oLink)) {
+ $oPatternListBox = & new PatternListBox($default->owl_links_table, "name", "id", "fLinkID");
+ $oPatternListBox->setIncludeDefaultValue(true);
+ $oPatternListBox->setPostBackOnChange(true);
+ return $oPatternListBox->render();
+ } else {
+ return " iId . "\">\n" .
+ "" . $oLink->getName() . " ";
+ }
+
+}
+
+// show check box
+function getUrl($oLink) {
+ if (!isset($oLink)) {
+ return "";
+ } else {
+ return "URL: " . $oLink->getUrl();
+ }
+}
+
+// show text box
+function getRank($oLink) {
+ if (!isset($oLink)) {
+ return "";
+ } else {
+ return "Rank: " .$oLink->getRank();
+ }
+
+}
+
+// show delete button
+function getDeleteButton($oLink) {
+ global $default;
+ if (!isset($oLink)) {
+ return "Please select a Link: ";
+ } else {
+ return " graphicsUrl/widgets/delete.gif\" value=\"submit\" /> \n".
+ "rootUrl/control.php?action=removeLink\"> graphicsUrl/widgets/cancel.gif\" border = \"0\" /> \n";
+ }
+}
+?>