Beispiel #1
0
 /**
  * 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);
 }