From 14cf90a5bb8c145cdfae60c9a0077ab390613d4c Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 17 Dec 2020 18:34:40 +0100 Subject: [PATCH] pass start and root folder to fulltext search --- out/out.Search.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/out/out.Search.php b/out/out.Search.php index 3b0e6ca11..f694589f0 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -166,6 +166,19 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext $status[] = S_EXPIRED; } + // Check to see if the search has been restricted to a particular sub-tree in + // the folder hierarchy. + $startFolder = null; + if (isset($_GET["targetid"]) && is_numeric($_GET["targetid"]) && $_GET["targetid"]>0) { + $targetid = $_GET["targetid"]; + $startFolder = $dms->getFolder($targetid); + if (!is_object($startFolder)) { + UI::exitError(getMLText("search"),getMLText("invalid_folder_id")); + } + } + + $rootFolder = $dms->getFolder($settings->_rootFolderID); + $startTime = getTime(); if($settings->_fullSearchEngine == 'lucene') { Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); @@ -183,7 +196,7 @@ if(((!isset($_GET["fullsearch"]) && $settings->_defaultSearchMethod == 'fulltext if($index) { $limit = 20; $lucenesearch = $fulltextservice->Search(); - $searchresult = $lucenesearch->search($query, array('owner'=>$owner, 'status'=>$status, 'category'=>$categorynames, 'user'=>$user->isAdmin() ? [] : [$user->getLogin()], 'mimetype'=>$mimetype), ($pageNumber == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($pageNumber-1)))); + $searchresult = $lucenesearch->search($query, array('owner'=>$owner, 'status'=>$status, 'category'=>$categorynames, 'user'=>$user->isAdmin() ? [] : [$user->getLogin()], 'mimetype'=>$mimetype, 'startFolder'=>$startFolder, 'rootFolder'=>$rootFolder), ($pageNumber == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($pageNumber-1)))); if($searchresult === false) { $session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm'))); $dcount = 0;