function document_perform_search in Document 6
Same name and namespace in other branches
- 7 document.inc \document_perform_search()
- 8.x document.inc \document_perform_search()
2 calls to document_perform_search()
File
- ./
document.inc, line 105
Code
function document_perform_search($searchFields, $searchText, $searchYear = NULL, $searchDocType = NULL) {
$sql = sprintf('SELECT * FROM {node} n INNER JOIN {document} d ON n.vid = d.vid WHERE n.status = %d', DOCUMENT_STATUS_PUBLISHED);
$where = '';
switch ($searchFields) {
case 0:
$where .= sprintf(" AND author LIKE '%%%1\$s%%' ", db_escape_string($searchText));
break;
case 1:
$where .= sprintf(" AND keywords LIKE '%%%1\$s%%' ", db_escape_string($searchText));
break;
case 2:
$where .= sprintf(" AND author LIKE '%%%1\$s%%' OR keywords LIKE '%%%1\$s%%' ", db_escape_string($searchText));
break;
case 3:
break;
default:
die('Invalid Input');
}
if (!empty($searchYear)) {
$where .= sprintf(" AND publish_year = %1\$s ", db_escape_string($searchYear));
}
if (!empty($searchDocType) > 0) {
$where .= sprintf(" AND d.type LIKE '%%%1\$s%%' ", db_escape_string($searchDocType));
}
$sql .= $where;
//db_query adds parameter substitution, so things like %d, %s are processed as arguments to the db_query call.
//A side effect is that the use of % in a query needs to be double so for example "%blah%" would become "%%blah%%"
$sql = str_replace('%', '%%', $sql);
return document_search_table($sql);
}