Beispiel #1
0
 /**
  *
  */
 public function get($option)
 {
     if ($option == 'compound_key') {
         return nc_search_provider_index_field_manager::get_key_options($this);
     }
     return parent::get($option);
 }
Beispiel #2
0
 public function get($option)
 {
     $value = parent::get($option);
     // если у страницы нет заголовка — вернуть вместо него заглушку (иначе может
     // пропасть ссылка на документ в результатах поиска)
     if ($option == 'title' && !strlen(trim($value))) {
         // $value = nc_search_util::decode_path(parent::get('path'));
         $value = NETCAT_MODULE_SEARCH_NO_TITLE;
     }
     return $value;
 }
Beispiel #3
0
 /**
  * Перед сохранением нужно прогнать список слов через фильтры
  */
 public function save()
 {
     $mb_case = nc_search::get_setting('FilterStringCase');
     $apply_filter = !$this->get('dont_filter');
     $list = array();
     foreach ($this->get('words') as $word) {
         $word = trim($word);
         if (strlen($word)) {
             // пропустить пустые значения
             // преобразовать регистр, если в дальнейшем не будут применены фильтры
             $list[] = $apply_filter ? $word : mb_convert_case($word, $mb_case);
         }
     }
     if ($apply_filter) {
         $context = new nc_search_context(array('language' => $this->get('language')));
         $list = nc_search_extension_manager::get('nc_search_language_filter', $context)->until_first('nc_search_language_filter_synonyms')->apply('filter', $list);
     }
     if (sizeof($list) < 2) {
         throw new nc_search_data_exception(NETCAT_MODULE_SEARCH_ADMIN_SYNONYM_LIST_MUST_HAVE_AT_LEAST_TWO_WORDS);
     }
     $this->set('words', $list);
     parent::save();
 }
Beispiel #4
0
 /**
  *
  */
 public function delete()
 {
     $db = nc_db();
     // delete associated schedule and task entries
     $id = $db->escape($this->get_id());
     $db->query("DELETE FROM `Search_Schedule` WHERE `AreaString` = '{$id}'");
     $db->query("DELETE FROM `Search_Task` WHERE `Rule_ID` = '{$id}'");
     return parent::delete();
 }
Beispiel #5
0
 /**
  *
  */
 public function save()
 {
     $this->set('last_activity', time());
     return parent::save();
 }
Beispiel #6
0
 /**
  * @param string $option
  * @return mixed
  */
 public function get($option)
 {
     if ($option == 'saved_content' && ($max_length = nc_search::get_setting('MaxDocumentPreviewTextLengthInKbytes'))) {
         $max_length *= 1024;
         $content = $this->properties['intact_content'];
         if (strlen($content) > $max_length) {
             $content = substr($content, 0, strrpos($content, " ", $max_length - strlen($content)));
         }
         return $content;
     }
     return parent::get($option);
 }
Beispiel #7
0
 /**
  * Override prepare_set_clause() to set the Hash field
  */
 protected function prepare_set_clause()
 {
     $set = parent::prepare_set_clause();
     $set .= ", `Hash` = " . $this->make_hash_statement($this->get('url'));
     return $set;
 }
Beispiel #8
0
 /**
  *
  * @return nc_search_data_persistent
  */
 public function save()
 {
     $this->set('timestamp', nc_search_util::sql_datetime());
     return parent::save();
 }