Omnibus
Новичок
Как сделать транслитерацию русских букв в URL? Движок articlems 2.2.2
Привет всем!
Целый день гуглю и экспериментирую, пока не нашел решения. Вопрос такой - поставил новую версию движка http://articlems.com/download/. Все отлично работает, только проблема в том, что в адресе статьи русские буквы не транслитерируются должным образом. Например, у статьи заголовок "Классическая бижутерия" и хотелось бы, чтобы адрес статьи был такого вида:
site.ru/category/klassicheskaya-bizhuteria.html
В файле /code/core.php я нашел код, отвечающий за транслитерацию. По умолчанию он такой:
Адреса страниц с таким кодом получаются такого вида:
site.ru/category/Классическая-бижутерия.html
Если ссылку скопировать и вставить куда-либо (либо начать редактировать статью), то получается такой вариант:
site.ru/category/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B1%D0%B8%D0%B6%D1%83%D1%82%D0%B5%D1%80%D0%B8%D1%8F.html
Я заменил код генерации ссылки на код, который в предыдущей версии этого движка 1.3 работал корректно. Но это не дало результатов.
Адреса ссылок стали получаться такими:
site.ru/category/r%9Ar%BBr%B0s%81s%81res%87r%B5s%81r%BAr%B0s%8F-r%B1rer%B6s%83s%82r%B5s%80res%8F.html
Затем я попробовал сделать код для создания "красивых" урлов таким:
Это тоже не принесло результата - ссылки стали такого вида:
site.ru/category/rrrssresrsrrsrrerssrsres3.html
Скажите, пожалуйста, как можно сделать код таким, чтобы ссылки получались такого вида:
site.ru/category/klassicheskaya-bizhuteria.html
Заранее большое спасибо.
Привет всем!
Целый день гуглю и экспериментирую, пока не нашел решения. Вопрос такой - поставил новую версию движка http://articlems.com/download/. Все отлично работает, только проблема в том, что в адресе статьи русские буквы не транслитерируются должным образом. Например, у статьи заголовок "Классическая бижутерия" и хотелось бы, чтобы адрес статьи был такого вида:
site.ru/category/klassicheskaya-bizhuteria.html
В файле /code/core.php я нашел код, отвечающий за транслитерацию. По умолчанию он такой:
Код:
/**
* Generate an Url from the title (replacing spaces with '-' etc)
*
* @param string $title
* @return string url
*/
function generateUrl($title){
$title = trim($title);
$title = str_replace(',',' ',$title);
$title = str_replace('\'','',$title);
$title = str_replace('(',' ',$title);
$title = str_replace(')',' ',$title);
$title = str_replace('?','',$title);
$title = str_replace('!','',$title);
$title = str_replace('`','',$title);
$title = str_replace(' : ','-',$title);
$title = str_replace(': ','-',$title);
$title = str_replace(' :','-',$title);
$title = str_replace(':','-',$title);
$title = str_replace('’','',$title);
$title = str_replace('"','',$title);
$title = str_replace('“','',$title);
$title = str_replace('“','',$title);
$title = str_replace('“','',$title);
$title = str_replace('”','',$title);
$title = str_replace('”','',$title);
$title = str_replace('—','-',$title);
$title = str_replace('’','',$title);
$title = str_replace('–','-',$title);
$title = str_replace('ГЄ','e',$title);
$title = str_replace('Г«','e',$title);
$title = str_replace('Г‰','e',$title);
$title = str_replace('Г‹','e',$title);
$title = str_replace('ГЉ','e',$title);
$title = str_replace('Г©','e',$title);
$title = str_replace('ГЁ','e',$title);
$title = str_replace('Е’','c',$title);
$title = str_replace('Е“','c',$title);
$title = str_replace('Гў','a',$title);
$title = str_replace('Г¤','a',$title);
$title = str_replace('ГЎ','a',$title);
$title = str_replace('ГЈ','a',$title);
$title = str_replace('ГҐ','a',$title);
$title = str_replace('Г¦','a',$title);
$title = str_replace('ГЂ','a',$title);
$title = str_replace('Г®','i',$title);
$title = str_replace('ГЇ','i',$title);
$title = str_replace('Г¬','i',$title);
$title = str_replace('Г_','i',$title);
$title = str_replace('Г®','i',$title);
$title = str_replace('ГЇ','i',$title);
$title = str_replace('Г–','o',$title);
$title = str_replace('Гґ','o',$title);
$title = str_replace('Г¶','o',$title);
$title = str_replace('ГІ','o',$title);
$title = str_replace('Гі','o',$title);
$title = str_replace('Гµ','o',$title);
$title = str_replace('Г°','o',$title);
$title = str_replace('Г»','u',$title);
$title = str_replace('Гј','u',$title);
$title = str_replace('Г№','u',$title);
$title = str_replace('Гє','u',$title);
$title = str_replace('Г§','c',$title);
$title = str_replace('Г‡','c',$title);
$title = str_replace('Гћ','p',$title);
$title = str_replace('Г±','n',$title);
$title = str_replace('ГЅ','y',$title);
$title = str_replace('Гѕ','p',$title);
$title = str_replace('Гї','y',$title);
$title = str_replace('Гї','y',$title);
$title = str_replace('Гђ','d',$title);
$title = str_replace('Вї',' ',$title);
$title = str_replace('&',' and ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace('....',' ',$title);
$title = str_replace('...',' ',$title);
$title = str_replace('..',' ',$title);
$title = str_replace('…',' ',$title);
$title = str_replace(' - ',' ',$title);
$title = str_replace('--',' ',$title);
$title = str_replace('/',' ',$title);
$title = str_replace('\\',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = trim($title);
if (substr($title, -1,1) == '.'){
$title = substr($title, 0, strlen($title)-1);
}
$title = trim($title);
return $this->customurlencode($title);
}
site.ru/category/Классическая-бижутерия.html
Если ссылку скопировать и вставить куда-либо (либо начать редактировать статью), то получается такой вариант:
site.ru/category/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B1%D0%B8%D0%B6%D1%83%D1%82%D0%B5%D1%80%D0%B8%D1%8F.html
Я заменил код генерации ссылки на код, который в предыдущей версии этого движка 1.3 работал корректно. Но это не дало результатов.
Код:
function generateUrl($title){
$title = trim($title);
$title = str_replace(',',' ',$title);
$title = str_replace('\'','',$title);
$title = str_replace('(',' ',$title);
$title = str_replace(')',' ',$title);
$title = str_replace('?','',$title);
$title = str_replace('!','',$title);
$title = str_replace('`','',$title);
$title = str_replace(' : ','-',$title);
$title = str_replace(': ','-',$title);
$title = str_replace(' :','-',$title);
$title = str_replace(':','-',$title);
$title = str_replace('’','',$title);
$title = str_replace('"','',$title);
$title = str_replace('“','',$title);
$title = str_replace('“','',$title);
$title = str_replace('“','',$title);
$title = str_replace('”','',$title);
$title = str_replace('”','',$title);
$title = str_replace('—','-',$title);
$title = str_replace('–','-',$title);
$title = str_replace('А','A',$title);
$title = str_replace('а','a',$title);
$title = str_replace('Б','B',$title);
$title = str_replace('б','b',$title);
$title = str_replace('В','V',$title);
$title = str_replace('в','v',$title);
$title = str_replace('Г','G',$title);
$title = str_replace('г','g',$title);
$title = str_replace('Д','D',$title);
$title = str_replace('д','d',$title);
$title = str_replace('Е','E',$title);
$title = str_replace('е','e',$title);
$title = str_replace('Ё','E',$title);
$title = str_replace('ё','e',$title);
$title = str_replace('Ж','Zh',$title);
$title = str_replace('ж','zh',$title);
$title = str_replace('З','Z',$title);
$title = str_replace('з','z',$title);
$title = str_replace('И','I',$title);
$title = str_replace('и','i',$title);
$title = str_replace('Й','I',$title);
$title = str_replace('й','i',$title);
$title = str_replace('К','K',$title);
$title = str_replace('к','k',$title);
$title = str_replace('Л','L',$title);
$title = str_replace('л','l',$title);
$title = str_replace('М','M',$title);
$title = str_replace('м','m',$title);
$title = str_replace('Н','N',$title);
$title = str_replace('н','n',$title);
$title = str_replace('О','O',$title);
$title = str_replace('о','o',$title);
$title = str_replace('П','P',$title);
$title = str_replace('п','p',$title);
$title = str_replace('Р','R',$title);
$title = str_replace('р','r',$title);
$title = str_replace('С','S',$title);
$title = str_replace('с','s',$title);
$title = str_replace('Т','T',$title);
$title = str_replace('т','t',$title);
$title = str_replace('У','U',$title);
$title = str_replace('у','u',$title);
$title = str_replace('Ф','F',$title);
$title = str_replace('ф','f',$title);
$title = str_replace('Х','H',$title);
$title = str_replace('х','h',$title);
$title = str_replace('Ц','Ts',$title);
$title = str_replace('ц','ts',$title);
$title = str_replace('Ч','Ch',$title);
$title = str_replace('ч','ch',$title);
$title = str_replace('Ш','Sh',$title);
$title = str_replace('ш','sh',$title);
$title = str_replace('Щ','Sh',$title);
$title = str_replace('щ','sh',$title);
$title = str_replace('Ь','',$title);
$title = str_replace('ь','',$title);
$title = str_replace('Ъ','',$title);
$title = str_replace('ъ','',$title);
$title = str_replace('Э','E',$title);
$title = str_replace('э','e',$title);
$title = str_replace('Ю','Yu',$title);
$title = str_replace('ю','yu',$title);
$title = str_replace('Я','Ya',$title);
$title = str_replace('я','ya',$title);
$title = str_replace('&',' and ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace('....',' ',$title);
$title = str_replace('...',' ',$title);
$title = str_replace('..',' ',$title);
$title = str_replace('…',' ',$title);
$title = str_replace(' - ',' ',$title);
$title = str_replace('--',' ',$title);
$title = str_replace('/',' ',$title);
$title = str_replace('\\',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = str_replace(' ',' ',$title);
$title = trim($title);
if (substr($title, -1,1) == '.'){
$title = substr($title, 0, strlen($title)-1);
}
$title = trim($title);
return $this->customurlencode($title);
}
site.ru/category/r%9Ar%BBr%B0s%81s%81res%87r%B5s%81r%BAr%B0s%8F-r%B1rer%B6s%83s%82r%B5s%80res%8F.html
Затем я попробовал сделать код для создания "красивых" урлов таким:
Код:
function generateUrl($title){
$title = trim($title);
$title = strtr($title, "ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю", "eycukenghhzxyfivaproldjezcsmitibueycukenghhzxyfivaproldjezcsmitibu");
$title = preg_replace('/[^a-zA-Z0-9]/si', '', $title);
$title = trim($title);
if (substr($title, -1,1) == '.'){
$title = substr($title, 0, strlen($title)-1);
}
$title = trim($title);
return $this->customurlencode($title);
}
site.ru/category/rrrssresrsrrsrrerssrsres3.html
Скажите, пожалуйста, как можно сделать код таким, чтобы ссылки получались такого вида:
site.ru/category/klassicheskaya-bizhuteria.html
Заранее большое спасибо.