Sonkir
Проверенные
- Сообщения
- 126
- Реакции
- 213
- Баллы
- 11,055
Недавно задумался над проблемой отображения крякозяблов в ссылках (заголовках тем), которые появляются во время их копирования и вставки в сообщениях на форуме/соцсетях, адресной строке браузера и т.д., когда в настройках админки Оптимизация для поисковых систем (SEO) добавляешь отображение заголовков тем в URL:
Главная > Настройки > [ищем в списке справа] Оптимизация для поисковых систем (SEO) > [ищем в списке справа опцию] Включать заголовок страницы в URL
Конечно, если отключить, то проблема решается, в ссылках содержится только id-номер.
URL: /threads/моя-тема.128/ будет URL такого вида: /threads/128/
Но всё таки, если хочется, чтобы в ссылках отображались текстовые названия на латинице /threads/teper-na-latinitce.id можно проводить транслитерацию с кириллицы на латиницу. Я решил этот вопрос модификацией файла Link.php добавив паттерн транслитерации:
library/XenForo/Link.php
Ищем:
После добавляем:
Перезаписанный файл заливаем на удалённый сервер и наслаждаемся.
library/XenForo/Link.php
Ссылки остаются рабочими даже тогда, когда заголовки тем уже в латинице, так как id остались прежними.
Есть уже готовый Link.php для версии форума 1.4.2
Главная > Настройки > [ищем в списке справа] Оптимизация для поисковых систем (SEO) > [ищем в списке справа опцию] Включать заголовок страницы в URL
Конечно, если отключить, то проблема решается, в ссылках содержится только id-номер.
URL: /threads/моя-тема.128/ будет URL такого вида: /threads/128/
Но всё таки, если хочется, чтобы в ссылках отображались текстовые названия на латинице /threads/teper-na-latinitce.id можно проводить транслитерацию с кириллицы на латиницу. Я решил этот вопрос модификацией файла Link.php добавив паттерн транслитерации:
library/XenForo/Link.php
Ищем:
PHP:
$title = utf8_romanize(utf8_deaccent($title));
}
После добавляем:
PHP:
# =================================================== Вставка транслитерации
$aPattern = array (
"Z" => "З" ,
"z" => "з" ,
"ZH" => "Ж" ,
"zh" => "ж" ,
"TC" => "Ц" ,
"tc" => "ц" ,
"CH" => "Ч" ,
"ch" => "ч" ,
"S" => "С" ,
"s" => "с" ,
"SH" => "Ш" ,
"sh" => "ш" ,
"SHCH" => "Щ" ,
"shch" => "щ" ,
"B" => "Б" ,
"b" => "б" ,
"V" => "В" ,
"v" => "в" ,
"G" => "Г" ,
"g" => "г" ,
"D" => "Д" ,
"d" => "д" ,
"Y" => "Ы" ,
"y" => "ы" ,
"I" => "И|Й|І" , // укр І
"i" => "и|й|і" , // укр і
"K" => "К" ,
"k" => "к" ,
"L" => "Л" ,
"l" => "л" ,
"M" => "М" ,
"m" => "м" ,
"N" => "Н" ,
"n" => "н" ,
"P" => "П" ,
"p" => "п" ,
"R" => "Р" ,
"r" => "р" ,
"T" => "Т" ,
"t" => "т" ,
"U" => "У" ,
"u" => "у" ,
"YU" => "Ю" ,
"yu" => "ю" ,
"F" => "ф" ,
"f" => "Ф" ,
"H" => "Х" ,
"h" => "х" ,
"A" => "А" ,
"a" => "а" ,
"YA" => "Я" ,
"ya" => "я" ,
"" => "Ь|Ъ" ,
"" => "ь|ъ" ,
"E" => "Е|Э" ,
"e" => "е|э" ,
"O" => "О" ,
"o" => "о" ,
);
while(list( $key , $value ) = each ( $aPattern ))
{
$title = @ ereg_replace ( $value , $key , $title );
}
# =================================================== Конец Вставка транслитерации
Перезаписанный файл заливаем на удалённый сервер и наслаждаемся.
library/XenForo/Link.php
Ссылки остаются рабочими даже тогда, когда заголовки тем уже в латинице, так как id остались прежними.
Есть уже готовый Link.php для версии форума 1.4.2
Вложения
Последнее редактирование: