/** * @param nc_routing_route $route * @return nc_ui_view|null */ protected function save_route_and_redirect(nc_routing_route $route) { try { $route->save(); $this->redirect_to_index_action(); } catch (Exception $e) { // nc_record_exception, nc_routing_pattern_parser_exception $this->ui_config->locationHash = ""; $this->ui_config->add_save_and_cancel_buttons(); $error_message = NETCAT_MODULE_ROUTING_UNABLE_TO_SAVE_RECORD . "<br>" . $e->getMessage(); return $this->view('route_edit')->with('route', $route)->with('error_message', $error_message); } }
/** * Создаёт стандартные маршруты на указанном сайте. * * @param int $site_id * @return bool */ public static function create($site_id) { if (!nc_core::get_object()->catalogue->get_by_id($site_id, 'Catalogue_ID')) { return false; } // Пути по умолчанию в порядке убывания приоритета $all_patterns = array("folder /{folder}/{date}/", "folder /{folder}/{date}", "folder /{folder}/", "folder /{folder}", "infoblock /{folder}/{infoblock_action}_{infoblock_keyword}.{format}", "infoblock /{folder}/{date}/{infoblock_action}_{infoblock_keyword}.{format}", "object /{folder}/{date}/{object_action}_{object_keyword}.{format}", "object /{folder}/{object_action}_{object_keyword}.{format}", "object /{folder}/{date}/{object_action}_{infoblock_keyword}_{object_id}.{format}", "object /{folder}/{object_action}_{infoblock_keyword}_{object_id}.{format}", "object /{folder}/{date}/{object_keyword}.{format}", "object /{folder}/{object_keyword}.{format}", "object /{folder}/{date}/{infoblock_keyword}_{object_id}.{format}", "object /{folder}/{infoblock_keyword}_{object_id}.{format}", "infoblock /{folder}/{infoblock_keyword}.{format}", "infoblock /{folder}/{date}/{infoblock_keyword}.{format}"); $all_patterns = array_reverse($all_patterns); foreach ($all_patterns as $pattern_data) { list($resource_type, $pattern) = explode(" ", $pattern_data, 2); $route = new nc_routing_route(array('site_id' => $site_id, 'description' => '', 'is_builtin' => true, 'pattern' => $pattern, 'resource_type' => $resource_type, 'enabled' => true)); $route->save(); } return true; }