nc_print_status(NETCAT_MODULE_SEARCH_ADMIN_SETTING_SEARCH_DISABLED, "error", array($this->hash_href("#module.search.generalsettings"), "_top")); } $rules = nc_search::load('nc_search_rule', "SELECT * FROM `%t%` ORDER BY `Rule_ID`")->set_output_encoding(nc_core('NC_CHARSET')); if (count($rules)) { foreach ($rules as $r) { // строчка «последняя индексация» $last_start_time = $r->get('last_start_time'); $last_finish_time = $r->get('last_finish_time'); if (!$last_start_time) { $last_run = NETCAT_MODULE_SEARCH_ADMIN_RULE_NEVER_RUN . "."; } else { $last_run = NETCAT_MODULE_SEARCH_ADMIN_RULE_LAST_RUN . ": " . nc_search_util::format_time($last_start_time) . " ("; if ($last_finish_time < $last_start_time) { $last_run .= NETCAT_MODULE_SEARCH_ADMIN_RULE_LAST_RUN_NOT_FINISHED; } else { $last_run .= NETCAT_MODULE_SEARCH_ADMIN_RULE_LAST_RUN_DURATION . " " . nc_search_util::format_seconds($last_finish_time - $last_start_time); } $last_run .= ")."; } // конец формирования строчки «последняя индексация» // строчка с результатми последней индексации $stats = ""; if ($last_start_time) { $result = $r->get('last_result'); $stats = "<div class='stats'>" . sprintf(NETCAT_MODULE_SEARCH_ADMIN_RULE_STATISTICS, $result['processed'], $result['deleted'], $result['checked']) . ".</div>"; } // конец формирования строчки с результатами // «подробнее» $details = "<div class='site'><strong>" . NETCAT_MODULE_SEARCH_ADMIN_RULE_SITE . "</strong>: " . $this->hash_link("#site.map({$r->get('site_id')})", $r->get_site_name()) . "</div>"; if ($r->get('area_string')) { // sic, not get_area_string()
$this->halt(NETCAT_MODULE_SEARCH_ADMIN_INDEXING_IN_PROGRESS_ERROR, $current_task->get('area')); } nc_search::register_logger(new nc_search_logger_html()); nc_print_status(NETCAT_MODULE_SEARCH_ADMIN_INDEXING_IN_PROGRESS, 'info'); print "<div class='search_indexing'>"; while (@ob_end_flush()) { } if ($rule_id) { // первый запуск $done = $provider->index_area($rule_id, nc_search::INDEXING_BROWSER); // нам понадобится $curent_task для того, чтобы вытащить из неё token $current_task = $provider->is_reindexing(); } else { if ($continue && $current_task) { // продолжение переиндексации (после перезагрузки страницы) $indexer = new nc_search_indexer(); $done = $indexer->resume($current_task, new nc_search_indexer_runner_web()); } } // check again if we're done if (!$current_task || $done) { $stats = ""; if ($current_task) { $stats = sprintf("<br />" . NETCAT_MODULE_SEARCH_ADMIN_INDEXING_DONE_STATS, nc_search_util::format_seconds(time() - $current_task->get('start_time')), $current_task->get('total_processed'), $current_task->get('total_checked'), $current_task->get('total_not_found'), $current_task->get('total_deleted')); } nc_print_status(NETCAT_MODULE_SEARCH_ADMIN_INDEXING_DONE . $stats, 'ok'); echo "<script type='text/javascript'>\$nc(document.body).scrollTop(100000);</script>"; } else { echo "<script type='text/javascript'>", "window.location = '?continue=1&token=", $current_task->get('token'), "';", "</script>\n"; } print "</div>";