static function build($non_sef, $alias, $is_add_base_url = 0) { $alias = Route::buildAlias($alias); //trim($path, '/\\') // return '/'.$alias.'/'; $non_sef = trim($non_sef, " \t./\\"); $sef_url = trim($alias, " \t./\\") . '.html'; $config = CoreConfig::getInstance(); $is_use_sef_urls = $config->get('is_use_sef_urls'); if (!$is_use_sef_urls) { if ($is_add_base_url) { return base_url() . $non_sef . '/'; } return $non_sef . '/'; } $db = CoreFactory::getDB(); $urls_db_table = $config->get('urls_db_table'); $query = "\n\t\t\tSELECT non_sef FROM `{$urls_db_table}` WHERE sef = '{$sef_url}'\n\t\t"; $current_non_sef = $db->setQuery($query)->getResult(); if ($current_non_sef && $current_non_sef == $non_sef) { if ($is_add_base_url) { return base_url() . $sef_url; } return $sef_url; } $query = "\n\t\t\tSELECT sef FROM `{$urls_db_table}` WHERE non_sef = '{$non_sef}'\n\t\t"; $cur_sef_url = $db->setQuery($query)->getResult(); if ($cur_sef_url) { $sef_url = $cur_sef_url; } else { $query = "\n\t\t\t\tINSERT INTO `{$urls_db_table}` SET sef = '{$sef_url}', non_sef = '{$non_sef}'\n\t\t\t"; $db->setQuery($query)->execute(); } if ($is_add_base_url) { return base_url() . $sef_url; } return $sef_url; }