Навигация

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

Поиск:

 

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

 

Просмотр Транслитерация в 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

Категории: