Патч-для-кириллицы
--------------------------------------------------
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;