public function init() { self::$db = \init::app()->getDBConnector(); if (!$this->_mod_access) { throw new \CException(\init::t('init', 'Access denied!')); } $this->_type = \init::app()->_getPanel(); $this->_pk = 'JobsID'; $this->_table_name = 'jobs'; }
public function getSearchQueryByText($text) { if (empty($this->_mdictinary_word)) { $this->_mdictinary_word = \init::app()->getModels('dictinary_word/mdictinary_word'); } if (empty($this->_msearch_word_group)) { $this->_msearch_word_group = \init::app()->getModels('search_word_group/msearch_word_group'); } if (empty($this->_msearch_stop_word)) { $this->_msearch_stop_word = \init::app()->getModels('search_stop_word/msearch_stop_word'); } if (empty($this->_mdictinary_prefix)) { $this->_mdictinary_prefix = \init::app()->getModels('dictinary_prefix/mdictinary_prefix'); } $search_query = false; // Фільтрація від STOP-символів ["/", "-", "\", ")", "}"]; $query_text = strtr($text, $this->_STOP_SIMVOL); // Фільтрація від STOP-слів ["с", "з", "в", "по", "на"]; $stop_words = []; $stop_words_array = $this->_msearch_stop_word->getStopWord(); foreach ($stop_words_array as $stop_words_array_item) { $stop_words[' ' . $stop_words_array_item->word . ' '] = ' '; } $query_text = strtr($query_text, $stop_words); $query_text = trim($query_text); // Видалення зайвих пробілів // Виділення масиву слів для пошуку шляхом розділення строки по пробілу $query_array = explode(' ', $query_text); $search_query = ''; foreach ($query_array as $query_array_item) { $search_query = $search_query . "'" . $query_array_item . "', "; } $search_query = substr($search_query, 0, strlen($search_query) - 2); $search_result = $this->_mdictinary_prefix->getWordsByQueryNotLang($search_query); $search_group_query = ''; $result['query_index'] = ''; $unique_group_index = []; $unique_word_index = []; foreach ($search_result as $search_result_item) { if (!isset($unique_group_index[$search_result_item->WordGroupID])) { $unique_group_index[$search_result_item->WordGroupID] = $search_result_item->WordGroupID; $search_group_query = $search_group_query . $search_result_item->WordGroupID . ", "; } if (!isset($unique_word_index[$search_result_item->word_index])) { $unique_word_index[$search_result_item->word_index] = $search_result_item->word_index; $result['query_index'] = $result['query_index'] . '+' . $search_result_item->word_index . ' '; } } if ($result['query_index']) { $result['query_index'] = substr($result['query_index'], 0, strlen($result['query_index']) - 1); } if ($search_group_query) { $search_group_query = substr($search_group_query, 0, strlen($search_group_query) - 2); } return $result['query_index']; }