Как убрать цифры из урл категории:
В Link.php заменяем функцию getCategoryLink
Код:
public function getCategoryLink($id_category, $alias = NULL)
{
if (is_object($id_category))
return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$id_category->link_rewrite) :
(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category->id));
if ($alias)
return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$alias) :
(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category));
return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.intval($id_category);
}
В Tools.php заменяем функцию getValue
Код:
static public function getValue($key, $defaultValue = false)
{
if (!isset($key) OR empty($key) OR !is_string($key))
return false;
$ret = (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $defaultValue));
if (is_string($ret) === true)
$ret = urldecode(preg_replace('/((\%5C0+)|(\%00+))/i', '', urlencode($ret)));
if ($key=="id_category") {
$result = Db::getInstance()->getRow("SELECT `id_category` FROM `ps_category_lang` WHERE `id_lang`=3 AND `link_rewrite`='".$ret."'");
return $result['id_category'];
}
if ($key=="id_category") {
$result = Db::getInstance()->getRow("SELECT `id_category` FROM `ps_category_lang` WHERE `id_lang`=3 AND `link_rewrite`='".$ret."'");
return $result['id_category'];
}
return !is_string($ret)? $ret : stripslashes($ret);
}
В .htaccess заменяем
Код:
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]
на
Код:
RewriteRule ^([a-zA-Z0-9-]+)$ /category.php?id_category=$1 [QSA,L,E]
Не обязательно можно добавить индекс
Код:
ALTER TABLE `ps_category_lang` ADD UNIQUE (`link_rewrite`)
Для товаров можно сделать аналогично.
Сообщение отредактировано ors 15-05-2010 20:44 ...