From ef7a2afb03828ed6e12e006406bc866ae7621daf Mon Sep 17 00:00:00 2001 From: rob Date: Fri, 25 Apr 2003 12:56:48 +0000 Subject: [PATCH] Updated to search functionality to make use of new permissions table --- presentation/lookAndFeel/knowledgeTree/search/standardSearchBL.php | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- presentation/lookAndFeel/knowledgeTree/search/standardSearchUI.inc | 25 ++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 16 deletions(-) diff --git a/presentation/lookAndFeel/knowledgeTree/search/standardSearchBL.php b/presentation/lookAndFeel/knowledgeTree/search/standardSearchBL.php index f5c52c7..9356e04 100644 --- a/presentation/lookAndFeel/knowledgeTree/search/standardSearchBL.php +++ b/presentation/lookAndFeel/knowledgeTree/search/standardSearchBL.php @@ -33,17 +33,19 @@ if (checkSession()) { if (!$fFolderID) { //start at the root folder $fFolderID = 0; - $sFolderString = getApprovedFolderString($fFolderID); + $sFolderString = getFolderString($fFolderID); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->render(); } else { - $sFolderString = getApprovedFolderString($fFolderID); + $sFolderString = getFolderString($fFolderID); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->render(); } @@ -53,17 +55,19 @@ if (checkSession()) { if (!$fCategoryName) { //no category name specified, so just start at the root folder $fFolderID = 0; - $sFolderString = getApprovedFolderString($fFolderID); + $sFolderString = getFolderString($fFolderID); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->render(); } else { - $sFolderString = getApprovedFolderStringFromCategory($fCategoryName); + $sFolderString = getFolderStringFromCategory($fCategoryName); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->render(); } @@ -77,14 +81,16 @@ if (checkSession()) { $sFolderString = getApprovedFolderString($fFolderID); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->render(); } else { $sDocumentString = getApprovedDocsDocType($fDocTypeID); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sDocumentString, $fStartIndex, getSQLSearchString($fStandardSearchString), true)); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sDocumentString, $fStartIndex, getSQLSearchString($fStandardSearchString), true)); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sDocumentString, $fStartIndex, $fStandardSearchString, true)); $main->setCentralPayload($oPatternCustom); $main->render(); } @@ -104,7 +110,8 @@ if (checkSession()) { $sFolderString = getApprovedFolderString($oDocument->getFolderID()); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); $main->setHasRequiredFields(true); @@ -112,10 +119,12 @@ if (checkSession()) { } else { //search from the root folder down i.e. all documents $fFolderID = 0; - $sFolderString = getApprovedFolderString($fFolderID); + //$sFolderString = getApprovedFolderString($fFolderID); + $sFolderString = getFolderString($fFolderID); require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + //$oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, getSQLSearchString($fStandardSearchString))); + $oPatternCustom->setHtml(getPage($fStandardSearchString, $fBrowseType, $fFolderID, $fDocumentID, $fCategoryName, $fDocType, $sFolderString, $fStartIndex, $fStandardSearchString)); $main->setCentralPayload($oPatternCustom); $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); $main->setHasRequiredFields(true); @@ -123,6 +132,14 @@ if (checkSession()) { } } +function getFolderString($iFolderID) { + $aChildren = Folder::getChildren($iFolderID); + //add the folder we started on + $aChildren[count($aChildren)] = $iFolderID; + return implode(",", $aChildren); +} + +/* function getApprovedFolderString($iFolderID) { $aChildren = Folder::getChildren($iFolderID); $aApprovedChildren = array(); @@ -159,7 +176,33 @@ function getApprovedFolderString($iFolderID) { return implode(",", $aApprovedChildren); } -function getApprovedFolderStringFromCategory($sCategory) { + +*/ + +function getFolderStringFromCategory($sCategory) { + global $default; + $sQuery = "SELECT DISTINCT D.folder_id " . + "FROM $default->owl_documents_table AS D inner join $default->owl_document_fields_table AS DFL ON D.id = DFL.document_id " . + "INNER JOIN $default->owl_fields_table AS DF ON DF.id = DFL.document_field_id " . + "WHERE DF.name LIKE 'Category' " . + "AND DFL.value LIKE '$sCategory'"; + + $sql = $default->db; + $sql->query($sQuery); + + if ($sql->next_record()) { + //get all the folders in the category + $aFolders = array($sql->f("folder_id")); + while ($sql->next_record()) { + $aFolders[count($aFolders)] = $sql->f("folder_id"); + } + return implode(",", $aFolders); + } + return "0"; + +} + +/*function getApprovedFolderStringFromCategory($sCategory) { global $default; $sQuery = "SELECT DISTINCT D.folder_id " . "FROM $default->owl_documents_table AS D inner join $default->owl_document_fields_table AS DFL ON D.id = DFL.document_id " . @@ -210,7 +253,7 @@ function getApprovedFolderStringFromCategory($sCategory) { return implode(",", $aApprovedChildren); } return "0"; -} +}*/ function getSQLSearchString($sSearchString) { $aWords = explode(" ", $sSearchString); diff --git a/presentation/lookAndFeel/knowledgeTree/search/standardSearchUI.inc b/presentation/lookAndFeel/knowledgeTree/search/standardSearchUI.inc index 4286664..ce6df48 100644 --- a/presentation/lookAndFeel/knowledgeTree/search/standardSearchUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/search/standardSearchUI.inc @@ -23,7 +23,7 @@ function getPage($sSearchText, $sBrowseType, $iFolderID, $iDocumentID, $sCategor return "" . renderHeading() . "
" . getSearchResults($sFolderIDs, $sSQLSearchString, $iStartIndex, $bSearchByDocument) . $sRefreshMessage . getSearchVariablesHtml($sSearchText, $sBrowseType, $iFolderID, $iDocumentID, $sCategoryName, $iDocType); } -function getSearchResults($sIDs,$sSQLSearchString, $iStartIndex, $bSearchByDocument = false) { +/*function getSearchResults($sIDs,$sSQLSearchString, $iStartIndex, $bSearchByDocument = false) { global $default; $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id folder_id, D.id document_id, D.name AS document_name " . "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_folders_table AS F ON D.folder_id = F.id " . @@ -52,6 +52,29 @@ function getSearchResults($sIDs,$sSQLSearchString, $iStartIndex, $bSearchByDocum $oPatternBrowse = & new PatternBrowseableSearchResults($sQuery, 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames); $oPatternBrowse->setStartIndex($iStartIndex); return $oPatternBrowse->render(); +}*/ + +function getSearchResults($sFolderIDs, $sKeywords, $iStartIndex) { + global $default; + $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id AS folder_id, D.id AS document_id, D.name AS document_name, MATCH(DT.document_text) AGAINST ('" . $sKeywords . "') AS score " . + "FROM search_document_user_link AS SDUL INNER JOIN document_text AS DT ON SDUL.document_id = DT.document_id " . + "INNER JOIN documents AS D ON D.id = SDUL.document_id " . + "INNER JOIN folders AS F on F.ID = D.folder_id " . + "WHERE MATCH(DT.document_text) AGAINST ('" . $sKeywords . "') " . + "AND SDUL.user_id = " . $_SESSION["userID"] . " " . + "AND F.id IN ($sFolderIDs) " . + "ORDER BY score DESC"; + + $aColumns = array("folder_image_url", "document_name","score"); + $aColumnTypes = array(4,3,3); + $aColumnHeaders = array("Folder","Document","Score"); + $aLinkURLs = array("$default->rootUrl/control.php?action=browse","$default->rootUrl/control.php?action=viewDocument"); + $aDBQueryStringColumns = array("document_id","folder_id","score"); + $aQueryStringVariableNames = array("fDocumentID", "fFolderID"); + + $oPatternBrowse = & new PatternBrowseableSearchResults($sQuery, 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames); + $oPatternBrowse->setStartIndex($iStartIndex); + return $oPatternBrowse->render(); } function getSearchVariablesHtml($sSearchText, $sBrowseType, $iFolderID, $iDocumentID, $sCategoryName, $iDocType) { -- libgit2 0.21.4