I found the code for cyrillized URL. Here it is. But the problem is it is written for the site in the primary directory, and my site is in a subdirectory Mysite.bg/catalog. Can anyone tell me how the code looks for me.
function URL_rewrite($url) {
global $languages_id;
$matches = array();
if(preg_match("/cPath=([0-9]*)_?([0-9]+)?(&products_id=)?([0-9]+)?(.*)?/", $url, $matches)>0 && preg_match("/action=/", $url)==0) {
// found name - category
if(isset($matches[1])) {
$cat_id = $matches[1];
$cat_query = tep_db_query("select categories_id, categories_name from " . TABLE_CATEGORIES_DESCRIPTION . "
where categories_id = '" . (int)$cat_id . "' and language_id = '" . (int)$languages_id . "' limit 1");
$cat_string = tep_db_fetch_array($cat_query);
$cat_string = URL_safe($cat_string['categories_name']);
}
// found name - subcategory
if(isset($matches[2])) {
$subcat_id = $matches[2];
$cat_query = tep_db_query("select categories_id, categories_name from " . TABLE_CATEGORIES_DESCRIPTION . "
where categories_id = '" . (int)$subcat_id . "' and language_id = '" . (int)$languages_id . "' limit 1");
$subcat_string = tep_db_fetch_array($cat_query);
$subcat_string = URL_safe($subcat_string['categories_name']);
}
// found name - product
if(isset($matches[4])) {
$prod_id = $matches[4];
$prod_query = tep_db_query("select products_name, products_id from " . TABLE_PRODUCTS_DESCRIPTION . "
where products_id = '" . (int)$prod_id . "' and language_id = '" . (int)$languages_id . "' limit 1");
$prod_string = tep_db_fetch_array($prod_query);
$prod_string = URL_safe($prod_string['products_name']);
}
// data
if(isset($matches[5])) {
$extras = $matches[5];
$extras = substr($extras, 1);
}
if(preg_match("/(.*)index\.php/", $url)>0) {
$url = preg_replace("/index\.php.*/", "", $url);
}
if(preg_match("/(.*)product_info\.php/", $url)>0) {
$url = preg_replace("/product_info\.php.*/", "", $url);
}
if(isset($cat_string) && $cat_string != "") {
$url .= $cat_string."-c".$cat_id;
if(isset($subcat_string) && $subcat_string != "") {
$url .= "/".$subcat_string."-s".$subcat_id;
}
if(isset($prod_string) && $prod_string != "") {
$url .= "/".$prod_string."-p".$prod_id;
}
if(isset($extras) && $extras != "") {
$url .= "/?".$extras;
}
}
} else if(preg_match("/products_id=([0-9]+)(.*)?/", $url, $matches)>0 && preg_match("/action=/", $url)==0) {
if(isset($matches[1])) {
$prod_id = $matches[1];
$prod_query = tep_db_query("select products_name, products_id from " . TABLE_PRODUCTS_DESCRIPTION . "
where products_id = '" . (int)$prod_id . "' and language_id = '" . (int)$languages_id . "' limit 1");
$prod_string = tep_db_fetch_array($prod_query);
$prod_string = URL_safe($prod_string['products_name']);
}
if(isset($matches[2])) {
$extras = $matches[2];
$extras = substr($extras, 1);
}
if(preg_match("/(.*)product_info\.php/", $url)>0) {
$url = preg_replace("/product_info\.php.*/", "", $url);
}
if(isset($prod_string) && $prod_string != "") {
$url .= $prod_string."-p".$prod_id;
}
if(isset($extras) && $extras != "") {
$url .= "/?".$extras;
}
} // else
return $url;
}
function URL_safe($str) {
$str = strtolower($str);
$str = preg_replace("/[^АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯабвгдежзийклмнопрстуфхцчшщъьюяa-z0-9-]+/i","-",$str);
return $str;
}