" . _("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") . "
";
}
function getSearchResultsByCategory($iFolderID, $sKeywords, $iStartIndex, $sCategory) {
global $default;
// XXX: Icky MySQL-specific stuff.
$sVersion = DBUtil::getOneResultKey("SHOW VARIABLES LIKE 'version'", "Value");
if ((int)substr($sVersion, 0, 1) >= 4) {
$boolean_mode = "IN BOOLEAN MODE";
} else {
$boolean_mode = "";
}
/*ok*/ $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 (? $boolean_mode) OR 1, 3) AS score " .
"FROM $default->documents_table AS D INNER JOIN $default->document_text_table AS DT ON D.id = DT.document_id " .
"INNER JOIN $default->document_fields_link_table AS DFL ON DT.document_id=DFL.document_id " .
"INNER JOIN $default->document_fields_table AS DF ON DF.id = DFL.document_field_id " .
"INNER JOIN $default->status_table AS SL ON D.status_id = SL.id " .
"INNER JOIN $default->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 (? $boolean_mode) " .
"AND (F.is_public OR SDUL.user_id = ?) " .
"AND SL.name='Live' ";
$aParams = array($sKeywords, $sKeywords, $_SESSION["userID"]);
//only check in the parent_folder_ids if we're not searching from the
//root folder down
if (isset($iFolderID) && ($iFolderID != 1)) {
$iFolderID = (int)$iFolderID;
$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 ? ";
$aParams[] = $sCategory;
}
$sQuery .= "ORDER BY score DESC";
$aColumns = array("folder_image_url", "document_name","score");
$aColumnTypes = array(4,3,1);
$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");
$aQueryStringVariableNames = array("fDocumentID", "fFolderID");
$oPatternBrowse = & new PatternBrowseableSearchResults(array($sQuery, $aParams), 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
$oPatternBrowse->setStartIndex($iStartIndex);
$oPatternBrowse->setSearchText($sKeywords);
return getHeading() . $oPatternBrowse->render() . getSearchVariablesHtml($sKeywords, "category", $iFolderID, "", $sCategory, "") . getMessage();
}
function getSearchResultsByDocumentType($iFolderID, $sKeywords, $iStartIndex, $iDocTypeID) {
global $default;
// XXX: Icky MySQL-specific stuff.
$sVersion = DBUtil::getOneResultKey("SHOW VARIABLES LIKE 'version'", "Value");
if ((int)substr($sVersion, 0, 1) >= 4) {
$boolean_mode = "IN BOOLEAN MODE";
} else {
$boolean_mode = "";
}
/*ok*/ $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 (? $boolean_mode),3) AS score " .
"FROM $default->documents_table AS D INNER JOIN $default->document_text_table AS DT ON D.id = DT.document_id " .
"INNER JOIN $default->status_table AS SL ON D.status_id = SL.id " .
"INNER JOIN $default->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 (? $boolean_mode) " .
"AND (F.is_public OR SDUL.user_id = ?) ";
$aParams = array($sKeywords, $sKeywords, $_SESSION["userID"]);
if (isset($iDocTypeID)) {
$sQuery .= "AND D.document_type_id = ? ";
$aParams[] = $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)) {
$iFolderID = (int)$iFolderID;
$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("" . _("Folder") . "","" . _("Document") . "","" . _("Score") . "");
$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(array($sQuery, $aParams), 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
$oPatternBrowse->setStartIndex($iStartIndex);
$oPatternBrowse->setSearchText($sKeywords);
return getHeading() . $oPatternBrowse->render() . getSearchVariablesHtml($sKeywords, "documentType", $iFolderID, "", "", $iDocTypeID) . getMessage();
}
function getSeachResultsByFolder($iFolderID, $iStartIndex, $sKeywords) {
global $default;
// XXX: Icky MySQL-specific stuff.
$sVersion = DBUtil::getOneResultKey("SHOW VARIABLES LIKE 'version'", "Value");
if ((int)substr($sVersion, 0, 1) >= 4) {
$boolean_mode = "IN BOOLEAN MODE";
} else {
$boolean_mode = "";
}
/*ok*/ $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 (? $boolean_mode),3) AS score " .
"FROM $default->documents_table AS D INNER JOIN $default->document_text_table AS DT ON D.id = DT.document_id " .
"INNER JOIN $default->status_table AS SL ON D.status_id = SL.id " .
"INNER JOIN $default->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 (? $boolean_mode) " .
"AND (F.is_public OR SDUL.user_id = ?) " .
"AND SL.name='Live' ";
$aParams = array($sKeywords, $sKeywords, $_SESSION["userID"]);
//only check in the parent_folder_ids if we're not searching from the
//root folder down
if (isset($iFolderID) && ($iFolderID != 1)) {
$iFolderID = (int)$iFolderID;
$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("" . _("Folder") . "", "" . _("Document") . "", "" . _("Score") . "");
$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(array($sQuery, $aParams), 10, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
$oPatternBrowse->setStartIndex($iStartIndex);
$oPatternBrowse->setSearchText($sKeywords);
return getHeading() . $oPatternBrowse->render() . getSearchVariablesHtml($sKeywords, "", $iFolderID, "", "", "") . getMessage();
}
function getSearchVariablesHtml($sSearchText, $sBrowseType, $iFolderID, $iDocumentID, $sCategoryName, $iDocType) {
$sToRender = "\n";
$sToRender .= "\n";
$sToRender .= "\n";
$sToRender .= "\n";
$sToRender .= "\n";
$sToRender .= "\n";
return $sToRender;
}
?>