/** * */ protected function action_index() { $this->ui_config->locationHash .= "({$this->site_id})"; $this->ui_config->add_submit_button(); $duplicate_route_action = nc_routing::get_setting('DuplicateRouteAction', $this->site_id); return $this->view('settings')->with('duplicate_route_action', $duplicate_route_action); }
/** * Инициализация модуля: * — Инициализация автоматической загрузки классов модуля * — Если модуль не разу не запускался, будут созданы стандартные * маршруты для всех сайтов * — Привязка слушателей создания и удаления сайтов */ public static function init() { nc_core()->register_class_autoload_path('nc_routing_', dirname(__FILE__) . "/classes"); if (!nc_routing::get_setting('IsInstalled', 0)) { nc_routing_route_defaults::create_for_all_sites(); self::set_setting('IsInstalled', 1, 0); } nc_routing_listener::init(); self::$SUB_FOLDER = nc_core::get_object()->SUB_FOLDER; }
$nc_core->subdivision->set_current_by_id($sub); $cc_in_sub = $nc_core->sub_class->get_by_subdivision_id($sub); foreach ((array) $cc_in_sub as $row) { if ($row['Checked'] || $row['sysTbl'] == 3) { $cc_array[] = $row['Sub_Class_ID']; } } if (count($cc_array)) { $cc = $_db_cc = $cc_array[0]; } } else { $routing_result = nc_resolve_url($nc_core->url, $_SERVER['REQUEST_METHOD']); // принятие решения о необходимости переадресации или добавления канонического адреса // (только при включённом модуле маршрутизации) if (is_array($routing_result) && nc_module_check_by_keyword('routing')) { $routing_duplicate_route_action = nc_routing::get_setting('DuplicateRouteAction', $catalogue); if ($routing_duplicate_route_action != nc_routing::DUPLICATE_ROUTE_NO_ACTION) { // попробуем получить путь, соответствующий полученным параметрам $routing_canonical_request = $routing_result; $routing_result_variables = nc_array_value($routing_result, 'variables', array()); if ($routing_result_variables) { // подходящий маршрут должен содержать эти переменные в «дополнительных переменных» (query_variables) $routing_canonical_request['route_variables'] = $routing_result_variables; } // добавим GET-переменные, если они есть if ($nc_core->input->fetch_get()) { $routing_canonical_request['variables'] = array_merge((array) $nc_core->input->fetch_get(), $routing_result_variables); } unset($routing_canonical_request['variables']['REQUEST_URI']); if ($routing_canonical_request['resource_type'] == 'object') { // Для объектов в качестве основного пути могут использоваться пути без даты