Esempio n. 1
0
 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';
 }
Esempio n. 2
0
 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'];
 }