Здравствуйте, а кто решил проблему генерации чпу товара, когда в названии есть русский язык? у меня он все ---------- заменяет. к тому же не переводит в нижний регистр (эту проблему решает seopro при выводе, но все-таки?) я так понимаю, что можно добавить кусок кода, взятый отсюда http://www.zawebis.com/php-i-sql/cms/opencart/avtozapolnenie-pola-seo-url-v-opencart.html но куда его вставить, в какой файл? помогите пожалуйста, думаю, не я один с русскими товарами. модуль генерации seo не использую, так как уже проиндексированы старые товары и url там сделан не им.
сделал решение сам, публикую, может кому пригодится :)
нашел код в файле /admin/model/tool/total_import.php
public function makeSeoKeyword($text='') {
//Title to friendly URL conversion
$text = trim($text);
$urltitle=preg_replace('/[^a-z0-9]/i',' ', $text);
$newurltitle=str_replace(" ","-",$urltitle);
$seo_keyword=$newurltitle; // Final URL
//if the alias is taken, set it to blank
if($this->checkUrlAlias($seo_keyword)) {
$seo_keyword = '';
}
return $seo_keyword;
}
вставил вместо него модифицированный:
public function makeSeoKeyword($text='') {
//Title to friendly URL conversion
$tr = array ("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g",
"д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p",
"р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi",
"ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",")" => "","(" => "");
$text = strtr($text ,$tr);
$text = mb_strtolower($text); //перевели в нижний регистр
$text = trim($text);
$urltitle =$text;
$urltitle=preg_replace('/[^a-z0-9]/i',' ', $urltitle);
$newurltitle=str_replace(" ","-",$urltitle);
$seo_keyword=$newurltitle; // Final URL
//if the alias is taken, set it to blank
if($this->checkUrlAlias($seo_keyword)) {
$seo_keyword = '';
}
return $seo_keyword;
}
теперь русские названия хорошо транслитит и переводит в нижний регистр