Пример #1
0
 /**
  *
  */
 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);
 }
Пример #2
0
 /**
  * Инициализация модуля:
  * — Инициализация автоматической загрузки классов модуля
  * — Если модуль не разу не запускался, будут созданы стандартные
  *   маршруты для всех сайтов
  * — Привязка слушателей создания и удаления сайтов
  */
 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;
 }
Пример #3
0
    $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') {
                // Для объектов в качестве основного пути могут использоваться пути без даты