Навигация

Активные участники:

Поиск:

 

Создать или найти статью:

 

Просмотр Транслитерация в url title при импорте RSS

Вопрос: При создании с помощью плагина FeedGrab заиписи создается url title, но если в заголовке у меня одни русские буквы, то они пропускаются, т.е. к примеру заголовек “тестовая новость” будет выглядеть так “_”
Как с этим побороться?

Ответ: для подобного рода решения проблемы по быстрому можно внести изменения в core.regex.php - не уверен законно ли это :)
функция create_url_title - добавить конвертацию русских символов в латиницу - также это будет срабатывать и при добавлении через SAEF, moblog...

function create_url_title($str, $lowercase = TRUE)
    
{
        
global $PREFS;
        
        if (
$lowercase === TRUE)
        
{
            $str 
= strtolower($str);    
        
}
        
        $translit 
= array(
            
"а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "ж" => "zh", "з" => "z",
            
"и" => "i", "й" => "y", "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p",
            
"р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h", "ц" => "c", "ч" => "ch",
            
"ш" => "sh", "щ" => "sch", "ъ" => "", "ы" => "y", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya",
            
"А" => "a", "Б" => "b", "В" => "v", "Г" => "g", "Д" => "d", "Е" => "e", "Ж" => "zh", "З" => "z",
            
"И" => "i", "Й" => "y", "К" => "k", "Л" => "l", "М" => "m", "Н" => "n", "О" => "o", "П" => "p",
            
"Р" => "r", "С" => "s", "Т" => "t", "У" => "u", "Ф" => "f", "Х" => "h", "Ц" => "c", "Ч" => "ch",
            
"Ш" => "sh", "Щ" => "sch", "Ъ" => "", "Ы" => "y", "Ь" => "", "Э" => "e", "Ю" => "yu", "Я" => "ya",
            
" " => "_", "," => ""
        
);
        
$str = strtr($str, $translit);
        
        
$str = strip_tags($str);
        
        
// Use dash or underscore as separator        
        
$replace = ($PREFS->ini('word_separator') == 'dash') ? '-' : '_';
        
        
$trans = array(
                        
'&\#\d+?;'                => '',
                        
'&\S+?;'                => '',
                        
'\s+'                    => $replace,
                        
'[^a-z0-9\-\._]'        => '',
                        
$replace.'+'            => $replace,
                        
$replace.'$'            => $replace,
                        
'^'.$replace            => $replace,
                        
'\.+$'                    => ''
                      
);
                       
        foreach (
$trans as $key => $val)
        
{
            $str 
= preg_replace("#".$key."#i", $val, $str);
        
}
        
        $str 
= trim(stripslashes($str));

        return 
$str;
    
} 


Ветка в форуме: http://eeclub.ru/forum/viewthread/907/

Раздел:Советы
Раздел:Хаки Hacks

Категории: