diff --git a/inc/inc.Utils.php b/inc/inc.Utils.php index fbf1b6098..8e0caf189 100644 --- a/inc/inc.Utils.php +++ b/inc/inc.Utils.php @@ -1772,6 +1772,7 @@ class SeedDMS_Search { /* {{{ */ if ($statusstartdate && !checkdate($statusstartdate['month'], $statusstartdate['day'], $statusstartdate['year'])) { UI::exitError(getMLText("search"),getMLText("invalid_status_date_start")); } + $this->searchparams['statusstartdate'] = $statusstartdate; if(!empty($get["statusdateend"])) { $statusendts = makeTsFromDate($get["statusdateend"]); @@ -1793,6 +1794,7 @@ class SeedDMS_Search { /* {{{ */ UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_start")); } } + $this->searchparams['expstartdate'] = $expstartdate; if(!empty($get["expirationend"])) { $expendts = makeTsFromDate($get["expirationend"]); $expenddate = array('year'=>(int)date('Y', $expendts), 'month'=>(int)date('m', $expendts), 'day'=>(int)date('d', $expendts), 'hour'=>23, 'minute'=>59, 'second'=>59); @@ -1800,6 +1802,7 @@ class SeedDMS_Search { /* {{{ */ UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_end")); } } + $this->searchparams['expenddate'] = $expenddate; /* }}} */ /* Do not search for folders if result shall be filtered by status. @@ -1932,29 +1935,29 @@ class SeedDMS_Search { /* {{{ */ // ---------------- Start searching ----------------------------------------- $startTime = $this->getTime(); $resArr = $this->dms->search(array( - 'query'=>$query, + 'query'=>$this->searchparams['query'], 'limit'=>0, 'offset'=>0, - 'logicalmode'=>$mode, - 'searchin'=>$searchin, - 'startFolder'=>$startFolder, - 'owner'=>$ownerobjs, - 'status'=>$status, - 'mimetype'=>$mimetype, - 'creationstartdate'=>$created['from'], - 'creationenddate'=>$created['to'], - 'modificationstartdate'=>$modified['from'], - 'modificationenddate'=>$modified['to'], - 'filesizestart'=>$filesize['from'], - 'filesizeend'=>$filesize['to'], - 'categories'=>$categories, - 'attributes'=>$attributes, - 'mode'=>$resultmode, - 'expirationstartdate'=>$expstartdate ? $expstartdate : array(), - 'expirationenddate'=>$expenddate ? $expenddate : array(), - 'statusstartdate'=>$statusstartdate ? $statusstartdate : array(), - 'statusenddate'=>$statusenddate ? $statusenddate : array(), - 'orderby'=>$orderby + 'logicalmode'=>$this->searchparams['mode'], + 'searchin'=>$this->searchparams['searchin'], + 'startFolder'=>$this->searchparams['startFolder'], + 'owner'=>$this->searchparams['ownerobjs'], + 'status'=>$this->searchparams['status'], + 'mimetype'=>$this->searchparams['mimetype'], + 'creationstartdate'=>$this->searchparams['created']['from'], + 'creationenddate'=>$this->searchparams['created']['to'], + 'modificationstartdate'=>$this->searchparams['modified']['from'], + 'modificationenddate'=>$this->searchparams['modified']['to'], + 'filesizestart'=>$this->searchparams['filesize']['from'], + 'filesizeend'=>$this->searchparams['filesize']['to'], + 'categories'=>$this->searchparams['categories'], + 'attributes'=>$this->searchparams['attributes'], + 'mode'=>$this->searchparams['resultmode'], + 'expirationstartdate'=>$this->searchparams['expstartdate'], + 'expirationenddate'=>$this->searchparams['expenddate'], + 'statusstartdate'=>$this->searchparams['statusstartdate'], + 'statusenddate'=>$this->searchparams['statusenddate'], + 'orderby'=>$this->searchparams['orderby'] )); $this->total = $resArr['totalDocs'] + $resArr['totalFolders']; $searchTime = $this->getTime() - $startTime; @@ -1964,7 +1967,7 @@ class SeedDMS_Search { /* {{{ */ $fcount = 0; if($resArr['folders']) { foreach ($resArr['folders'] as $entry) { - if ($entry->getAccessMode($user) >= M_READ) { + if ($entry->getAccessMode($this->user) >= M_READ) { $entries[] = $entry; $fcount++; } @@ -1974,7 +1977,7 @@ class SeedDMS_Search { /* {{{ */ $dcount = 0; if($resArr['docs']) { foreach ($resArr['docs'] as $entry) { - if ($entry->getAccessMode($user) >= M_READ) { + if ($entry->getAccessMode($this->user) >= M_READ) { if($entry->getLatestContent()) { $entry->verifyLastestContentExpriry(); $entries[] = $entry; @@ -1983,12 +1986,16 @@ class SeedDMS_Search { /* {{{ */ } } } + $limit = $this->searchparams['limit']; $this->dcount = $dcount; - $totalPages = (int) (count($entries)/$limit); - if(count($entries)%$limit) - $totalPages++; - if($pageNumber != 'all') - $this->entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); + $totalPages = 0; + if($limit > 0) { + $totalPages = (int) (count($entries)/$limit); + if(count($entries)%$limit) + $totalPages++; + } + if($this->searchparams['pageNumber'] != 'all') + $this->entries = array_slice($entries, ($this->searchparams['pageNumber']-1)*$limit, $limit); $this->totalPages = $totalPages; $this->facets = array(); $this->stats = array();