• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Хак Кирилические url

Статус
В этой теме нельзя размещать новые ответы.

staker

Мастер
Регистрация
24 Ноя 2006
Сообщения
227
Реакции
33
Как бы это сделать? Открываем движек и смотрим где формируются url. К ужасу видим, что файлов этих много. Вникаем и видим, а ларчик-то просто открывается. Пишем функцию, собсно можно и без нее, но все-таки. Как известно, в ДЛЕ для перевода названия новости в транслит существует специальная функция, имя ей totranslit Свою же мы назовем tocirilic Вот её код (не забудьте её добавить в engine/modules/functions.php и в engine/inc/functions.inc.php)
PHP:
function tocirilic($var, $lower = true, $punkt = true) {
    $NpjCaps = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯЇЄІ";
    $NpjSmall = "абвгдеёжзийклмнопрстуфхцчшщьъыэюяїєі";
    
    $var = str_replace( ".php", "", $var );
    $var = trim( strip_tags( $var ) );
    $var = preg_replace( "/\s+/ms", "-", $var );
    $var = strtr( $var, $NpjCaps, $NpjSmall );
    
    if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
    else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );

    $var = preg_replace( '#[\-]+#i', '-', $var );

    if ( $lower ) $var = strtolower( $var );
        
    return $var;
}
Как видите изобретать велосипед я не стал, а просто взял функцию ДЛЕ и убрал от туда лишнее, плюс переименовал её ) Программисты спросят, зачем нужны $NpjCaps $NpjSmall и strtr( $var, $NpjCaps, $NpjSmall ); ведь для этого есть более удобная функция в PHP, имя ей strtolower(), но в даном случае ,эта функция не будет работать как нужно, по сему мы сделали так. Дальше все просто, идем по всем файлам и меняем totranslit на tocirilic вуаля, у нас кирилические url p.s. Чтобы в старых новостях появились кирилические url, нужно отредактировать их в админке, ну или написать простенький скриптик, который это сделает за вас :)

(c) Alex
 
Как бы это сделать? Открываем движек и смотрим где формируются url. К ужасу видим, что файлов этих много. Вникаем и видим, а ларчик-то просто открывается. Пишем функцию, собсно можно и без нее, но все-таки. Как известно, в ДЛЕ для перевода названия новости в транслит существует специальная функция, имя ей totranslit Свою же мы назовем tocirilic Вот её код (не забудьте её добавить в engine/modules/functions.php и в engine/inc/functions.inc.php)
PHP:
function tocirilic($var, $lower = true, $punkt = true) {
    $NpjCaps = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯЇЄІ";
    $NpjSmall = "абвгдеёжзийклмнопрстуфхцчшщьъыэюяїєі";
    $var = str_replace( ".php", "", $var );
    $var = trim( strip_tags( $var ) );
    $var = preg_replace( "/\s+/ms", "-", $var );
    $var = strtr( $var, $NpjCaps, $NpjSmall );
    if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
    else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
    $var = preg_replace( '#[\-]+#i', '-', $var );
    if ( $lower ) $var = strtolower( $var );
    return $var;
}
Как видите изобретать велосипед я не стал, а просто взял функцию ДЛЕ и убрал от туда лишнее, плюс переименовал её ) Программисты спросят, зачем нужны $NpjCaps $NpjSmall и strtr( $var, $NpjCaps, $NpjSmall ); ведь для этого есть более удобная функция в PHP, имя ей strtolower(), но в даном случае ,эта функция не будет работать как нужно, по сему мы сделали так. Дальше все просто, идем по всем файлам и меняем totranslit на tocirilic вуаля, у нас кирилические url p.s. Чтобы в старых новостях появились кирилические url, нужно отредактировать их в админке, ну или написать простенький скриптик, который это сделает за вас :)
(c) Alex

В чем смысл данного действия? Наоборот все правят чтобы урлы были стандартного типа, а тут наоборот в сторону изврата путь... Рускими урлами ты отсекаешь часть аудитории зарубежной и часть рускоязычной. У первой части сайт просто не откроется, а у второй будет выглядеть убого, да и стандарт для браузеров это латинское написание ссылок.
 
Totranslit используеться не только для прооброзования url поэтому не стоит менять где попало с notranslit на tocirilic (aKa cyrillic)
 
В чем смысл данного действия? Наоборот все правят чтобы урлы были стандартного типа, а тут наоборот в сторону изврата путь... Рускими урлами ты отсекаешь часть аудитории зарубежной и часть рускоязычной. У первой части сайт просто не откроется, а у второй будет выглядеть убого, да и стандарт для браузеров это латинское написание ссылок.

Смысл думаю есть... Посмотрев на выделение запроса в найденном урле (яндекс)... наглядно убедиться можно набрав в яндексе запрос к примеру "Колонна"... В общем сдается мне что это лучше транслита во всяком случае для оптимизации под яндекс...
 
в урлах типа site.info/399-транслит.html - учитывается id новости вначале и любые сивмолы перед html =) поэтому кириллическими урлами врятли кого то можно отсечь от просмотра сайта.
 
  • Заблокирован
  • #7
Рускими урлами ты отсекаешь часть аудитории зарубежной и часть рускоязычной. У первой части сайт просто не откроется, а у второй будет выглядеть убого, да и стандарт для браузеров это латинское написание ссылок.

Я вот много уже такого слышал! Что значит отсекаются? Если сайт на русском языке, то и посетители будут русские, с русской клавиатурой. А стандарт для браузеров, мне как то побоку, всё открывается хорошо и всё также отображается. К тому же для seo гораздо лучше на русском урлы.
Конечно какие-то исключения к моим словам есть, но это уже по конкретной ситуации смотреть.
 
ага, сейчас даже кириллические урлы вводят, а тут из-за части урла будут сайт из индекса выкидывать...
 
ага, сейчас даже кириллические урлы вводят, а тут из-за части урла будут сайт из индекса выкидывать...
Не Urlы а домены, сейчас уже вполне можно регать полноценные кириллические домены. Так что модуль очень полезный. :)
 
на какую версию это все и можно пример сайта?
и собственно главное: теги будут русскими или им нет?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху