parameters for search() can be an array, add support for sorting the output

This commit is contained in:
Uwe Steinmann 2019-06-26 13:38:39 +02:00
parent e16a5dd46e
commit 3e4d90fe91

View File

@ -1307,6 +1307,13 @@ class SeedDMS_Core_DMS {
* @return array|bool
*/
function search($query, $limit=0, $offset=0, $logicalmode='AND', $searchin=array(), $startFolder=null, $owner=null, $status = array(), $creationstartdate=array(), $creationenddate=array(), $modificationstartdate=array(), $modificationenddate=array(), $categories=array(), $attributes=array(), $mode=0x3, $expirationstartdate=array(), $expirationenddate=array()) { /* {{{ */
if(is_array($query)) {
foreach(array('limit', 'offset', 'logicalmode', 'searchin', 'startFolder', 'owner', 'status', 'creationstartdate', 'creationenddate', 'modificationstartdate', 'modificationenddate', 'categories', 'attributes', 'mode', 'expirationstartdate', 'expirationenddate') as $paramname)
${$paramname} = isset($query[$paramname]) ? $query[$paramname] : ${$paramname};
foreach(array('orderby') as $paramname)
${$paramname} = isset($query[$paramname]) ? $query[$paramname] : '';
$query = isset($query['query']) ? $query['query'] : '';
}
// Split the search string into constituent keywords.
$tkeys=array();
if (strlen($query)>0) {
@ -1436,7 +1443,22 @@ class SeedDMS_Core_DMS {
if($limit) {
$searchQuery .= " LIMIT ".$limit." OFFSET ".$offset;
}
switch($orderby) {
case 'dd':
$searchQuery .= " ORDER BY `tblFolders`.`date` DESC";
break;
case 'da':
case 'd':
$searchQuery .= " ORDER BY `tblFolders`.`date`";
break;
case 'nd':
$searchQuery .= " ORDER BY `tblFolders`.`name` DESC";
break;
case 'na':
default:
$searchQuery .= " ORDER BY `tblFolders`.`name`";
break;
}
// Send the complete search query to the database.
$resArr = $this->db->getResultArray($searchQuery);