advancedSearchUI.inc
5.15 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
<?php
/**
* $Id$
*
* Presentation logic used by advancedSearchBL.php
*
* @author Rob Cherry, Jam Warehouse South Africa (Pty) Ltd
* @date 26 February 2003
* @package presentation.lookAndFeel.knowledgeTree.search
*/
function getMetaData($aMetaTagIDs) {
global $default;
$sQuery = "SELECT name, id FROM $default->owl_fields_table ORDER BY name ASC";
$sql = $default->db;
$sql->query($sQuery);
$sToRender = "<table border=\"0\">\n";
$sToRender .= "<input type=\"hidden\" name=\"adv_search_start\" value=\"\" />\n";
$iRecordCount = 0;
while ($sql->next_record()) {
$sMetaDataCheckBox = "<input type=\"checkbox\" " . wasSelected($sql->f("id"), $aMetaTagIDs) . " name=\"f_adv_" . $sql->f("name") . "\" value=\"" . $sql->f("id") . "\"></td><td>" . $sql->f("name");
$iRecordCount++;
if (($iRecordCount % 3) == 1) {
$sToRender .= "<tr><td>$sMetaDataCheckBox</td>\n";
} else if (($iRecordCount % 3) == 0) {
$sToRender .= "<td>$sMetaDataCheckBox</td></tr>\n";
} else {
$sToRender .= "<td>$sMetaDataCheckBox</td>\n";
}
}
$sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n";
$sToRender .= "</table>\n";
return $sToRender;
}
function getSearchPage($sSearchString = "", $aMetaTagIDs = array(), $sHeading = "Advanced Search", $bSearchArchive = false) {
global $default;
$sToRender = renderHeading($sHeading);
$sToRender .= "<table width=\"600\">\n";
$sToRender .= "<tr>\n";
$sToRender .= "<td>Search text: <input type=\"text\" size=\"60\" name=\"fSearchString\" value=\"$sSearchString\" />\n";
$sToRender .= "<input type=\"button\" value=\"search\" onClick=\"validateAdvancedSearch()\"/></td>\n";
$sToRender .= ($bSearchArchive ? "<input type=\"hidden\" name=\"fSearchArchive\" value=\"1\"" : "");
$sToRender .= "</tr>\n";
$sToRender .= "<tr>\n";
$sToRender .= "<td> </td>\n";
$sToRender .= "</tr>\n";
$sToRender .= "<tr>\n";
$sToRender .= "<td>" . getMetaData($aMetaTagIDs) . "</td>\n";
$sToRender .= "</tr>\n";
$sToRender .= "<tr>\n";
$sToRender .= "<td> </td>\n";
$sToRender .= "</tr>\n";
$sToRender .= "</table>\n";
return $sToRender . getSearchValidationJavaScript();;
}
function getSearchResults($sMetaTagIDs, $sSQLSearchString, $iStartIndex) {
global $default;
$sQuery = "SELECT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id folder_id, D.id document_id, D.name AS document_name, COUNT(D.id) AS doc_count " .
"FROM $default->owl_documents_table AS D INNER JOIN $default->owl_folders_table AS F ON D.folder_id = F.id " .
"INNER JOIN document_fields_link AS DFL ON DFL.document_id = D.id " .
"INNER JOIN document_fields AS DF ON DF.id = DFL.document_field_id " .
"INNER JOIN search_document_user_link AS SDUL ON SDUL.document_id = D.ID " .
"WHERE DF.ID IN ($sMetaTagIDs) " .
"AND " . $sSQLSearchString . " " .
"AND SDUL.user_id = " . $_SESSION["userID"] . " " .
"GROUP BY D.id ";
"ORDER BY doc_count DESC ";
$aColumns = array("folder_image_url", "document_name", "doc_count");
$aColumnTypes = array(4,3,3);
$aColumnHeaders = array("<font color=\"ffffff\">Folder</font>","<font color=\"ffffff\">Document</font>", "<font color=\"ffffff\">Matches</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);
$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>";
return renderHeading("Advanced Search") . $oPatternBrowse->render() . $sRefreshMessage . getSearchVariablesHtml($sSearchText, $sMetaTagIDs);
}
function getSearchValidationJavaScript() {
$sToRender = "\n\n<SCRIPT LANGUAGE=\"javascript\">\n ";
$sToRender .= "<!--\n";
$sToRender .= "function validateAdvancedSearch() {\n";
$sToRender .= "\tif (!(validRequired(document.MainForm.fSearchString, 'Search text'))) {\n";
$sToRender .= "\t\treturn;\n\t}\n";
$sToRender .= "\tdocument.MainForm.submit();\n}\n";
$sToRender .= "-->\n";
$sToRender .= "</SCRIPT>\n\n";
return $sToRender;
}
function wasSelected($iID, $aMetaTagIDs) {
if (in_array($iID, $aMetaTagIDs)) {
return "CHECKED";
}
return "";
}
function getSearchVariablesHtml($sSearchText, $sMetaTagIDs) {
$aMetaTagIDs = explode(",", $sMetaTagIDs);
$sToRender = "\n\n<input type=\"hidden\" name=\"fSearchString\" value=\"$sSearchText\" />\n";
$sToRender .= "<input type=\"hidden\" name=\"adv_search_start\" value=\"\" />\n";
for ($i = 0; $i < count($aMetaTagIDs); $i++) {
$sToRender .= "<input type=\"hidden\" name=\"fMetaTag_$i\" value=\"" . $aMetaTagIDs[$i] . "\" />\n";
}
$sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n";
return $sToRender;
}
?>