/** * */ public function get($option) { if ($option == 'compound_key') { return nc_search_provider_index_field_manager::get_key_options($this); } return parent::get($option); }
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; }
/** * Перед сохранением нужно прогнать список слов через фильтры */ 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(); }
/** * */ 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(); }
/** * */ public function save() { $this->set('last_activity', time()); return parent::save(); }
/** * @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); }
/** * 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; }
/** * * @return nc_search_data_persistent */ public function save() { $this->set('timestamp', nc_search_util::sql_datetime()); return parent::save(); }