/** * Renders the search results. * * @return string */ function do_searchResults() { if (array_key_exists('format', $_GET)) { switch ($_GET['format']) { case 'searchengine': $_SESSION['search2resultFormat'] = 'searchengine'; break; case 'browseview': $_SESSION['search2resultFormat'] = 'browseview'; break; } } else { if (!array_key_exists('search2resultFormat', $_SESSION)) { global $default; $_SESSION['search2resultFormat'] = $default->resultsDisplayFormat; } } if ($_SESSION['search2resultFormat'] == 'browseview') { $this->redirectTo('oldSearchResults'); } $this->oPage->setBreadcrumbDetails(_kt("Search Results")); $this->oPage->title = _kt("Search Results"); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/search2/search_results"); KTEntityUtil::_proxyCreate('KTDocumentContentVersion', 'KTDocumentContentVersionProxy'); KTEntityUtil::_proxyCreate('KTDocumentCore', 'KTDocumentCoreProxy'); KTEntityUtil::_proxyCreate('KTDocumentMetadataVersion', 'KTDocumentMetadataVersionProxy'); $results = unserialize($_SESSION['search2_results']); // NOTE: sorting results (when it is implemented) might have to be done per section, as it is done with the browse view // Get the order of display - folders first / documents first // Get the display order of the results - documents / folders first $_SESSION['display_order'] = isset($_POST['display_order']) ? $_POST['display_order'] : $_SESSION['display_order']; $display_order = $_SESSION['display_order']; $selected_order = array('f' => '', 'd' => '', 's' => ''); switch ($display_order) { case 's': $selected_order['s'] = 'selected'; $resultArray = $results['shortfolders']; foreach ($results['shortdocs'] as $f) { $resultArray[] = $f; } foreach ($results['folders'] as $d) { $resultArray[] = $d; } foreach ($results['docs'] as $f) { $resultArray[] = $f; } break; case 'd': $selected_order['d'] = 'selected'; $resultArray = $results['docs']; foreach ($results['folders'] as $f) { $resultArray[] = $f; } foreach ($results['shortdocs'] as $d) { $resultArray[] = $d; } foreach ($results['shortfolders'] as $f) { $resultArray[] = $f; } break; case 'f': default: $selected_order['f'] = 'selected'; $resultArray = $results['folders']; foreach ($results['docs'] as $f) { $resultArray[] = $f; } foreach ($results['shortfolders'] as $d) { $resultArray[] = $d; } foreach ($results['shortdocs'] as $f) { $resultArray[] = $f; } } $results = $resultArray; if (!is_array($results) || count($results) == 0) { $results = array(); } $numRecs = count($results); $showall = $_GET['showAll']; if (is_numeric($showall)) { $showall = $showall + 0 > 0; } else { $showall = $showall == 'true'; } $config = KTConfig::getSingleton(); $resultsPerPage = $showall ? $numRecs : $config->get('search/resultsPerPage', SearchDispatcher::RESULTS_PER_PAGE); $maxPageMove = SearchDispatcher::MAX_PAGE_MOVEMENT; $pageOffset = 1; if (isset($_GET['pageOffset'])) { $pageOffset = $_GET['pageOffset']; } $maxPages = ceil($numRecs / $resultsPerPage); if ($pageOffset <= 0 || $pageOffset > $maxPages) { $pageOffset = 1; } $firstRec = ($pageOffset - 1) * $resultsPerPage; $lastRec = $firstRec + $resultsPerPage; if ($lastRec > $numRecs) { $lastRec = $numRecs; } $display = array_slice($results, $firstRec, $resultsPerPage); $startOffset = $pageOffset - $maxPageMove; if ($startOffset < 1) { $startOffset = 1; } $endOffset = $pageOffset + $maxPageMove; if ($endOffset > $maxPages) { $endOffset = $maxPages; } $pageMovement = array(); for ($i = $startOffset; $i <= $endOffset; $i++) { $pageMovement[] = $i; } $aBulkActions = KTBulkActionUtil::getAllBulkActions(); $aTemplateData = array("context" => $this, 'selected_order' => $selected_order, 'bulkactions' => $aBulkActions, 'firstRec' => $firstRec, 'lastRec' => $lastRec, 'showAll' => $showall, 'numResults' => count($results), 'pageOffset' => $pageOffset, 'resultsPerPage' => $resultsPerPage, 'maxPages' => $maxPages, 'results' => $display, 'pageMovement' => $pageMovement, 'startMovement' => $startOffset, 'endMovement' => $endOffset, 'txtQuery' => $_SESSION['search2_query'], 'iSavedID' => $_SESSION['search2_savedid'], 'txtSavedName' => $_SESSION['search2_savedname']); return $oTemplate->render($aTemplateData); }
/** * Reads the plugin cache file. This must still be unserialised. * @deprecated * @return mixed Returns false on failure, or the serialised cache. */ static function readPluginCache() { $config = KTConfig::getSingleton(); $cachePlugins = $config->get('cache/cachePlugins', false); if (!$cachePlugins) { return false; } $cacheDir = $config->get('cache/cacheDirectory'); $cacheFile = $cacheDir . '/' . KTPluginUtil::CACHE_FILENAME; if (!is_file($cacheFile)) { return false; } $cache = file_get_contents($cacheFile); // we check for an empty cache in case there was a problem. We rather try and reload everything otherwise. if (strlen($cache) == 0) { return false; } if (!class_exists('KTPluginEntityProxy')) { KTEntityUtil::_proxyCreate('KTPluginEntity', 'KTPluginEntityProxy'); } return unserialize($cache); }