_rootFolderID; } else { $folderid = $_GET["folderid"]; } $folder = $dms->getFolder($folderid); if (!is_object($folder)) { UI::exitError(getMLText("search_results"),getMLText("invalid_folder_id")); } // Create the keyword search string. This search spans up to three columns // in the database: keywords, name and comment. if (isset($_GET["query"]) && is_string($_GET["query"])) { $query = $_GET["query"]; } else { $query = ""; } // category $categories = array(); if(isset($_GET['categoryids']) && $_GET['categoryids']) { foreach($_GET['categoryids'] as $catid) { if($catid > 0) { $category = $dms->getDocumentCategory($catid); $categories[] = $category->getName(); } } } // // Get the page number to display. If the result set contains more than // 25 entries, it is displayed across multiple pages. // // This requires that a page number variable be used to track which page the // user is interested in, and an extra clause on the select statement. // // Default page to display is always one. $pageNumber=1; if (isset($_GET["pg"])) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (integer)$_GET["pg"]; } else if (!strcasecmp($_GET["pg"], "all")) { $pageNumber = "all"; } } // --------------- Suche starten -------------------------------------------- $folderPathHTML = getFolderPathHTML($folder, true); UI::htmlStartPage(getMLText("search_results")); UI::globalNavigation($folder); UI::pageNavigation($folderPathHTML, "", $folder); UI::contentHeading(getMLText("search_results")); // Check to see if the search has been restricted to a particular // document owner. $owner = null; if (isset($_GET["ownerid"]) && is_numeric($_GET["ownerid"]) && $_GET["ownerid"]!=-1) { $owner = $dms->getUser($_GET["ownerid"]); if (!is_object($owner)) { UI::contentContainer(getMLText("unknown_owner")); UI::htmlEndPage(); exit; } } $pageNumber=1; if (isset($_GET["pg"])) { if (is_numeric($_GET["pg"]) && $_GET["pg"]>0) { $pageNumber = (integer)$_GET["pg"]; } else if (!strcasecmp($_GET["pg"], "all")) { $pageNumber = "all"; } } $startTime = getTime(); if($settings->_enableFullSearch) { if(!empty($settings->_luceneClassDir)) require_once($settings->_luceneClassDir.'/Lucene.php'); else require_once('LetoDMS/Lucene.php'); } Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); $index = Zend_Search_Lucene::open($settings->_luceneDir); $lucenesearch = new LetoDMS_Lucene_Search($index); $hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categories); $limit = 25; $resArr = array(); if($pageNumber != 'all' && count($hits) > $limit) { $resArr['totalPages'] = (int) (count($hits) / $limit); if ((count($hits)%$limit) > 0) $resArr['totalPages']++; $hits = array_slice($hits, ($pageNumber-1)*$limit, $limit); } else { $resArr['totalPages'] = 1; } $resArr['docs'] = array(); $resArr['totalDocs'] = 0; if($hits) { $resArr['totalDocs'] = 0; //count($hits); foreach($hits as $hit) { if($tmp = $dms->getDocument($hit['document_id'])) { $resArr['docs'][] = $tmp; $resArr['totalDocs']++; } } } $searchTime = getTime() - $startTime; $searchTime = round($searchTime, 2); UI::contentContainerStart(); ?>
$resArr['totalDocs'])); } ?> | $searchTime));?> |