standardSearchUI.inc
7.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/**
* $Id$
*
* Presentation functionality used to searchDocumentBL.php
*
* @author Rob Cherry, Jam Warehouse South Africa (Pty) Ltd
* @date 20 February 2003
* @package presentation.lookAndFeel.documentmanagement
*/
function getHeading() {
return renderHeading("Standard Search");
}
function getMessage() {
$sRefreshMessage = "<table><tr><td align=\"center\">If your browser displays a 'Warning: Page has Expired' message when you attempt to return to these search results, please click your browser's 'Refresh' button</td></tr></table>";
}
function getSearchResultsByCategory($iFolderID, $sKeywords, $iStartIndex, $sCategory) {
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, ROUND(MATCH(DT.document_text) AGAINST ('" . $sKeywords . "'),3) AS score " .
"FROM $default->owl_documents_table AS D INNER JOIN $default->owl_document_text_table AS DT ON D.id = DT.document_id " .
"INNER JOIN $default->owl_document_fields_table AS DFL ON DT.document_id=DFL.document_id " .
"INNER JOIN $default->owl_fields_table AS DF ON DF.id = DFL.document_field_id " .
"INNER JOIN $default->owl_status_table AS SL ON D.status_id = SL.id " .
"INNER JOIN $default->owl_folders_table AS F on F.ID = D.folder_id " .
"INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id " .
"WHERE MATCH(DT.document_text) AGAINST ('" . $sKeywords . "') " .
"AND SDUL.user_id = " . $_SESSION["userID"] . " " .
"AND SL.name='Live' ";
//only check in the parent_folder_ids if we're not searching from the
//root folder down
if (isset($iFolderID) && ($iFolderID != 1)) {
$sQuery .= "AND (F.parent_folder_ids LIKE '%,$iFolderID,%' OR F.id = $iFolderID) ";
}
$sQuery .= "AND DF.name LIKE 'Category' ";
if (isset($sCategory)) {
$sQuery .= "AND DFL.value LIKE '$sCategory' ";
}
$sQuery .= "ORDER BY score DESC";
$aColumns = array("folder_image_url", "document_name","score");
$aColumnTypes = array(4,3,1);
$aColumnHeaders = array("<font color=\"ffffff\">Folder</font>","<font color=\"ffffff\">Document</font>","<font color=\"ffffff\">Score</font>");
$aLinkURLs = array("$default->rootUrl/control.php?action=browse","$default->rootUrl/control.php?action=viewDocument");
$aDBQueryStringColumns = array("document_id","folder_id");
$aQueryStringVariableNames = array("fDocumentID", "fFolderID");
$oPatternBrowse = & new PatternBrowseableSearchResults($sQuery, 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
$oPatternBrowse->setStartIndex($iStartIndex);
return getHeading() . $oPatternBrowse->render() . getSearchVariablesHtml($sKeywords, "category", $iFolderID, "", $sCategory, "") . getMessage();
}
function getSearchResultsByDocumentType($iFolderID, $sKeywords, $iStartIndex, $iDocTypeID) {
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, ROUND(MATCH(DT.document_text) AGAINST ('" . $sKeywords . "'),3) AS score " .
"FROM $default->owl_documents_table AS D INNER JOIN $default->owl_document_text_table AS DT ON D.id = DT.document_id " .
"INNER JOIN $default->owl_status_table AS SL ON D.status_id = SL.id " .
"INNER JOIN $default->owl_folders_table AS F on F.ID = D.folder_id " .
"INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id " .
"WHERE MATCH(DT.document_text) AGAINST ('" . $sKeywords . "') " .
"AND SDUL.user_id = " . $_SESSION["userID"] . " ";
if (isset($iDocTypeID)) {
$sQuery .= "AND D.document_type_id = $iDocTypeID ";
}
$sQuery .= "AND SL.name='Live' ";
//only check in the parent_folder_ids if we're not searching from the
//root folder down
if (isset($iFolderID) && ($iFolderID != 1)) {
$sQuery .= "AND (F.parent_folder_ids LIKE '%,$iFolderID,%' OR F.id = $iFolderID) ";
}
$sQuery .= "ORDER BY score DESC";
$aColumns = array("folder_image_url", "document_name","score");
$aColumnTypes = array(4,3,1);
$aColumnHeaders = array("<font color=\"ffffff\">Folder</font>","<font color=\"ffffff\">Document</font>","<font color=\"ffffff\">Score</font>");
$aLinkURLs = array("$default->rootUrl/control.php?action=browse","$default->rootUrl/control.php?action=viewDocument");
$aDBQueryStringColumns = array("document_id","folder_id");
$aQueryStringVariableNames = array("fDocumentID", "fFolderID");
$oPatternBrowse = & new PatternBrowseableSearchResults($sQuery, 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
$oPatternBrowse->setStartIndex($iStartIndex);
return getHeading() . $oPatternBrowse->render() . getSearchVariablesHtml($sKeywords, "documentType", $iFolderID, "", "", $iDocTypeID) . getMessage();
}
function getSeachResultsByFolder($iFolderID, $iStartIndex, $sKeywords) {
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, ROUND(MATCH(DT.document_text) AGAINST ('" . $sKeywords . "'),3) AS score " .
"FROM $default->owl_documents_table AS D INNER JOIN $default->owl_document_text_table AS DT ON D.id = DT.document_id " .
"INNER JOIN $default->owl_status_table AS SL ON D.status_id = SL.id " .
"INNER JOIN $default->owl_folders_table AS F on F.ID = D.folder_id " .
"INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id " .
"WHERE MATCH(DT.document_text) AGAINST ('" . $sKeywords . "') " .
"AND SDUL.user_id = " . $_SESSION["userID"] . " " .
"AND SL.name='Live' ";
//only check in the parent_folder_ids if we're not searching from the
//root folder down
if (isset($iFolderID) && ($iFolderID != 1)) {
$sQuery .= "AND (F.parent_folder_ids LIKE '%,$iFolderID,%' OR F.id = $iFolderID) ";
}
$sQuery .= "ORDER BY score DESC";
$aColumns = array("folder_image_url", "document_name","score");
$aColumnTypes = array(4,3,1);
$aColumnHeaders = array("<font color=\"ffffff\">Folder</font>","<font color=\"ffffff\">Document</font>","<font color=\"ffffff\">Score</font>");
$aLinkURLs = array("$default->rootUrl/control.php?action=browse","$default->rootUrl/control.php?action=viewDocument");
$aDBQueryStringColumns = array("document_id","folder_id");
$aQueryStringVariableNames = array("fDocumentID", "fFolderID");
$oPatternBrowse = & new PatternBrowseableSearchResults($sQuery, 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
$oPatternBrowse->setStartIndex($iStartIndex);
return getHeading() . $oPatternBrowse->render() . getSearchVariablesHtml($sKeywords, "", $iFolderID, "", "", "") . getMessage();
}
function getSearchVariablesHtml($sSearchText, $sBrowseType, $iFolderID, $iDocumentID, $sCategoryName, $iDocType) {
$sToRender = "<input type=\"hidden\" name=\"fSearchText\" value=\"$sSearchText\" />\n";
$sToRender .= "<input type=\"hidden\" name=\"fBrowseType\" value=\"$sBrowseType\" />\n";
$sToRender .= "<input type=\"hidden\" name=\"fFolderID\" value=\"$iFolderID\" />\n";
$sToRender .= "<input type=\"hidden\" name=\"fDocumentID\" value=\"$iDocumentID\" />\n";
$sToRender .= "<input type=\"hidden\" name=\"fCategoryName\" value=\"$sCategoryName\" />\n";
$sToRender .= "<input type=\"hidden\" name=\"fDocType\" value=\"$iDocType\" />\n";
return $sToRender;
}
?>