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; } }