Beispiel #1
0
 public static function searchRun($params)
 {
     global $REX, $I18N;
     $searchers = $params['searchers'];
     // registrierte Page Params speichern
     //watson::saveRegisteredPageParams($searchers);
     //watson::setPageRequest();
     // Phase 2
     // User Eingabe parsen in $input
     $userInput = rex_request('watson_search', 'string');
     //\Package\Package::console($userInput);
     if ($userInput != '') {
         $searchCommand = new SearchCommand($userInput);
         // Eingabe auf Keywords überprüfen
         $saveSearchers = array();
         foreach ($searchers as $searcher) {
             if (in_array($searchCommand->getCommand(), $searcher->commands())) {
                 $saveSearchers[] = $searcher;
             }
         }
         // registriertes Command gefunden
         if (count($saveSearchers) > 0) {
             $searchers = $saveSearchers;
             $searchCommand->deleteCommandFromCommandParts();
         }
         // Eingabe an vorher registrierte Search übergeben und Ergebnisse einsammeln
         /** @var $searchResults SearchResult */
         $searchResults = array();
         foreach ($searchers as $searcher) {
             $searchResults[] = $searcher->fire($searchCommand);
         }
         // Ergebnis rendern
         $renderedResults = array();
         foreach ($searchResults as $searchResult) {
             $renderedResults[] = $searchResult->render($userInput);
         }
         $json = array();
         foreach ($renderedResults as $values) {
             foreach ($values as $value) {
                 $json[] = $value;
             }
         }
         if (count($json) == 0) {
             $json[] = array('value_name' => $I18N->msg('b_no_results'), 'value' => Watson::translate('b_no_results'), 'tokens' => array(Watson::translate('b_no_results')));
         }
         ob_clean();
         header('Content-type: application/json');
         echo json_encode($json);
         exit;
     }
 }