예제 #1
0
파일: context.php 프로젝트: Blu2z/implsk
 /**
  * Сравнение контекста с правилом
  * @param nc_search_extension_rule $rule
  * @return boolean
  */
 public function conforms_to(nc_search_extension_rule $rule)
 {
     foreach ($this->properties as $key => $this_value) {
         // Значение NULL у свойства контекста означает «любое значение»
         if ($this_value === null) {
             continue;
         }
         if (!$rule->has_property($key)) {
             continue;
         }
         $rule_value = $rule->get($key);
         // Пустое значение у свойства правила расширения означает «любое значение»
         if ($rule_value !== null && $rule_value != '' && $rule_value != $this_value) {
             return false;
         }
     }
     return true;
 }
예제 #2
0
<?php

if (!class_exists("nc_system")) {
    die;
}
$ui = $this->get_ui();
$ui->add_settings_toolbar();
$ui->add_submit_button(NETCAT_MODULE_SEARCH_ADMIN_SETTINGS_SAVE);
$stopwords_filter = new nc_search_extension_rule();
$stopwords_filter->load_where('extension_class', 'nc_search_language_filter_stopwords');
$shortwords_filter = new nc_search_extension_rule();
$shortwords_filter->load_where('extension_class', 'nc_search_language_filter_minlength');
// ОБРАБОТАТЬ ВХОДЯЩИЕ ДАННЫЕ
// (1) purge[now] + purge[interval], [interval_value], [interval_type]
// (2) s[]
$new_settings = $this->get_input('s', array());
$purge = $this->get_input('purge', array());
if (isset($purge["now"]) && $purge["now"]) {
    if ($purge["interval"] == -1) {
        // грохнуть всё
        $purge["interval_value"] = 1;
        $purge["interval_type"] = "second";
    }
    nc_search::purge_history($purge["interval_value"], $purge["interval_type"]);
    nc_print_status(NETCAT_MODULE_SEARCH_ADMIN_SETTING_QUERY_LOG_PURGED, 'ok');
} else {
    if ($new_settings) {
        foreach ($new_settings as $k => $v) {
            nc_search::save_setting($k, $v);
        }
        // enable/disable extensions depending on the settings