Искать  
 
   
 
Url title в FeedGrab
Отправлено: 23 Май 2009 09:14 A.M.   [ Игнорировать ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

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

Профиль
 
 
Отправлено: 05 Январь 2010 10:24 A.M.   [ Игнорировать ]   [ # 1 ]
Новичок
Rank
Всего сообщений:  43
Зарегистрирован  2008-03-08

Решение не нашлось?

Профиль
 
 
Отправлено: 06 Январь 2010 05:25 P.M.   [ Игнорировать ]   [ # 2 ]
Member
RankRankRank
Всего сообщений:  191
Зарегистрирован  2009-03-17

для подобного рода решения проблемы по быстрому можно внести изменения в core.regex.php - не уверен законно ли это smile
функция 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;
    
} 
Профиль
 
 
Отправлено: 06 Январь 2010 05:37 P.M.   [ Игнорировать ]   [ # 3 ]
Новичок
Rank
Всего сообщений:  43
Зарегистрирован  2008-03-08

спасибо! попробую!

Профиль