

Патч-для-кириллицы

--------------------------------------------------

1. В файле: module\language\include\service\phrase\process.class.php

Заменить код (в 2-х местах) примерно строки 107 и 139:

$this->cache()->remove('locale', 'substr');

На код:

$this->cache()->remove('language', 'substr');

Заменить код:

$aPhrases = Phpfox::getLib('xml.parser')->parse(file_get_contents($sDir . $sFile));

На код:


$aPhrases = Phpfox::getLib('xml.parser')->parse(file_get_contents($sDir . $sFile), 'UTF-8');

2. В файле: include\library\phpfox\database\driver\mysql.class.php

После кода (примерно 133-134 строка):


return Phpfox_Error::set('Cannot connect to the database: ' . $this->_sqlError());
}

Вставить:

$this->query('SET NAMES utf8');

3. В файле: include\library\phpfox\parse\input.class.php

Заменить код (примерно 234-254 строки):

    public function cleanTitle($sUrls)
    {
        $sUrls = trim(strip_tags($sUrls));
        $sUrls = $this->_utf8ToUnicode($sUrls, true);   
        $sUrls = preg_replace("/ +/", "-", $sUrls);   
        $sUrls = rawurlencode($sUrls);   
        $sUrls = str_replace(array('"', "'"), '', $sUrls);
        $sUrls = str_replace(' ', '-', $sUrls);
 
        $sUrls = str_replace(array('-----', '----', '---', '--'), '-', $sUrls);
        $sUrls = rtrim($sUrls, '-');
        $sUrls = ltrim($sUrls, '-');
   
        if (empty($sUrls))
        {
            $sUrls = PHPFOX_TIME;
        }
   
 
        $sUrls = strtolower($sUrls);
 
        return $sUrls;
    }
	
На код:

    public function cleanTitle($sUrls)
    {
        $sUrls = trim(strip_tags($sUrls));
        $sUrls = $this->_utf8ToUnicode($sUrls, true);   
        $sUrls = preg_replace("/ +/", "-", $sUrls);       
        $sUrls = str_replace(array('"', "'", '.', ',', ';', '/', '\\', '`', '+'), '', $sUrls);
 
        $sUrls = str_replace(' ', '-', $sUrls);
        $sUrls = str_replace('_', '-', $sUrls);
        $sUrls = str_replace(array('-----', '----', '---', '--'), '-', $sUrls);
        $sUrls = rtrim($sUrls, '-');
        $sUrls = ltrim($sUrls, '-');
   
        if (empty($sUrls))
        {
            $sUrls = PHPFOX_TIME;
        }
   
        $sUrls = rawurlencode($sUrls);   
        $sUrls = strtolower($sUrls);
 
        return $sUrls;
    }
	
Заменить код:

$sNewTitle = substr($sNewTitle, 0, Phpfox::getParam('core.crop_seo_url'));

На код:

$sNewTitle = rawurlencode(substr(rawurldecode($sNewTitle), 0, Phpfox::getParam('core.crop_seo_url')));

После кода:

    private function _utf8ToUnicode($str, $bForUrl = false)
    {
	
Вставить:

return $str;