/** * @throws \Exception */ public function init() { parent::init(); if (!Configuration::get('frontend.enabled')) { return FALSE; } try { \Zend_Search_Lucene_Analysis_Analyzer::setDefault(new \Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive()); $this->frontendIndex = \Zend_Search_Lucene::open(Plugin::getFrontendSearchIndex()); $this->categories = Configuration::get('frontend.categories'); //set search term query $searchQuery = $this->cleanRequestString($this->getParam('q')); if (!empty($searchQuery)) { $this->query = Plugin::cleanTerm($searchQuery); $this->untouchedQuery = $this->query; } //set Language if (Configuration::get('frontend.ignoreLanguage') !== TRUE) { $this->searchLanguage = $this->getParam('language'); if (empty($this->searchLanguage)) { try { $this->searchLanguage = \Zend_Registry::get('Zend_Locale'); } catch (Exception $e) { $this->searchLanguage = 'en'; } } } else { $this->searchLanguage = NULL; } //Set Category $queryCategory = $this->cleanRequestString($this->getParam('category')); if (!empty($queryCategory)) { $this->category = $queryCategory; } //Set Country if (Configuration::get('frontend.ignoreCountry') !== TRUE) { $this->searchCountry = $this->getParam('country'); if ($this->searchCountry == 'global') { $this->searchCountry = 'international'; } else { if (empty($this->searchCountry)) { $this->searchCountry = 'international'; } } } else { $this->searchCountry = NULL; } //Set Restrictions (Auth) if (Configuration::get('frontend.ignoreRestriction') === FALSE) { $this->searchRestriction = TRUE; } //Set Fuzzy Search (Auth) $fuzzySearchRequest = $this->getParam('fuzzy'); if (Configuration::get('frontend.fuzzySearch') == TRUE || !empty($fuzzySearchRequest) && $fuzzySearchRequest !== 'false') { $this->fuzzySearch = TRUE; } //Set own Host Only if (Configuration::get('frontend.ownHostOnly') == TRUE) { $this->ownHostOnly = TRUE; } //Set Entries per Page $this->perPage = Configuration::get('frontend.view.maxPerPage'); $perPage = $this->getParam('perPage'); if (!empty($perPage)) { $this->perPage = (int) $perPage; } //Set max Suggestions $this->maxSuggestions = Configuration::get('frontend.view.maxSuggestions'); //Set Current Page $currentPage = $this->getParam('page'); if (!empty($currentPage)) { $this->currentPage = (int) $currentPage; } } catch (\Exception $e) { throw new \Exception('could not open index'); } }