Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Хаки Как отключить функцию totranslit в inc/addnews.php?

Как отключить функцию totranslit в inc/addnews.php?


     30.01.2016    Хаки    598

вопрос
Добрый день!

Подскажите пожалуйста как можно отключить функцию totranslit в inc/addnews.php
что бы при добавлении новости alt_name был на русском языке, но при этом сохранить функцию замены пробелов на "-"

Спасибо.

Ответа пока нет


Комментарии пользователей (4)

Kane
12

96 | 32

Kane - 30 января 2016 16:51 - Юзер

Как вариант.

Открыть inc/addnews.php

Найти:
if( trim( $alt_name ) == "" or ! $alt_name ) $alt_name = totranslit( stripslashes( $title ), true, false );
else $alt_name = totranslit( stripslashes( $alt_name ), true, false );


Заменить на:
if( trim( $alt_name ) == "" or ! $alt_name ) $alt_name = preg_replace('| +|', '-', stripslashes( $title ) );
else $alt_name = preg_replace('| +|', '-', stripslashes( $alt_name ) );

veliart
8

veliart - 31 января 2016 09:59 - Юзер

Спасибо. Ваш вариант отлично подходит, но есть не которые проблемы с регулярным выражением. Если в alt_name
встречаются символы
/ () они не удаляются
если строка содержит : "" а после английские буквы строка обрезается до этих символов

lutskboy
3

549 | 103

lutskboy - 30 января 2016 17:03 - Юзер

не пробовал. но должно сработать

function translit($str)
{
    $str = preg_replace("/\s+/", "-", $str);
    $str = preg_replace("/[^а-я0-9]/iu", "", $str);
    return $str;
}

и заменить что то типа этого
totranslit( stripslashes( $alt_name ), true, false )
на
translit( stripslashes( $alt_name ) )

veliart
8

veliart - 31 января 2016 10:04 - Юзер

Спасибо. Здесь, если строка содержит англ. буквы они полностью обрезаются и почему то пробелы не заменяются -. Зато все символы типа : "" () удаляются.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы