|
|
|
<?php
|
|
|
|
// Язык системы
|
|
|
|
function set_locale()
|
|
|
|
{
|
|
|
|
$acp_language = empty($_SESSION['admin_language'])
|
|
|
|
? $_SESSION['user_language']
|
|
|
|
: $_SESSION['admin_language'];
|
|
|
|
|
|
|
|
$locale = strtolower(defined('ACP')
|
|
|
|
? $acp_language
|
|
|
|
: $_SESSION['user_language']);
|
|
|
|
|
|
|
|
switch ($locale)
|
|
|
|
{
|
|
|
|
case 'ru':
|
|
|
|
@setlocale(LC_ALL, 'ru_RU.UTF-8', 'rus_RUS.UTF-8', 'russian');
|
|
|
|
@setlocale(LC_NUMERIC, "C");
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'bg':
|
|
|
|
@setlocale(LC_ALL, 'bg_BG.UTF-8', 'bgr_BGR.UTF-8', 'bulgarian');
|
|
|
|
@setlocale(LC_NUMERIC, "C");
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
@setlocale (LC_ALL, $locale . '_' . strtoupper($locale), $locale, '');
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Переводит в нижний регистр
|
|
|
|
*
|
|
|
|
* @param string $string строка для перевода в нижний регистр
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
function _strtolower($string)
|
|
|
|
{
|
|
|
|
$language = (defined('ACP') && ACP)
|
|
|
|
? $_SESSION['admin_language']
|
|
|
|
: $_SESSION['user_language'];
|
|
|
|
|
|
|
|
$language = strtolower($language);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
case 'de':
|
|
|
|
return mb_strtolower($string);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'en':
|
|
|
|
return mb_strtolower($string);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'ru':
|
|
|
|
case 'bg':
|
|
|
|
$small = array('а','б','в','г','д','е','ё','ж','з','и','й',
|
|
|
|
'к','л','м','н','о','п','р','с','т','у','ф',
|
|
|
|
'х','ч','ц','ш','щ','э','ю','я','ы','ъ','ь',
|
|
|
|
'э', 'ю', 'я');
|
|
|
|
$large = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й',
|
|
|
|
'К','Л','М','Н','О','П','Р','С','Т','У','Ф',
|
|
|
|
'Х','Ч','Ц','Ш','Щ','Э','Ю','Я','Ы','Ъ','Ь',
|
|
|
|
'Э', 'Ю', 'Я');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'ua':
|
|
|
|
case 'uk':
|
|
|
|
$small = array('а','б','в','г','д','е','є','ж','з','и','і','й','ї',
|
|
|
|
'к','л','м','н','о','п','р','с','т','у','ф',
|
|
|
|
'х','ч','ц','ш','щ','ь','ю','я');
|
|
|
|
$large = array('А','Б','В','Г','Д','Е','Є','Ж','З','И','І','Й','Ї',
|
|
|
|
'К','Л','М','Н','О','П','Р','С','Т','У','Ф',
|
|
|
|
'Х','Ч','Ц','Ш','Щ','Ь','Ю','Я');
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
return mb_strtolower($string);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return str_replace($large, $small, $string);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Транслитерация
|
|
|
|
*
|
|
|
|
* @param string $string строка для транслитерации
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
function translit_string($string)
|
|
|
|
{
|
|
|
|
// $st = htmlspecialchars_decode($st);
|
|
|
|
//
|
|
|
|
// // Convert all named HTML entities to numeric entities
|
|
|
|
// $st = preg_replace_callback('/&([a-zA-Z][a-zA-Z0-9]{1,7});/', 'convert_entity', $st);
|
|
|
|
//
|
|
|
|
// // Convert all numeric entities to their actual character
|
|
|
|
// $st = preg_replace('/&#x([0-9a-f]{1,7});/ei', 'chr(hexdec("\\1"))', $st);
|
|
|
|
// $st = preg_replace('/&#([0-9]{1,7});/e', 'chr("\\1")', $st);
|
|
|
|
//
|
|
|
|
|
|
|
|
$language = (defined('ACP') && ACP)
|
|
|
|
? $_SESSION['admin_language']
|
|
|
|
: $_SESSION['user_language'];
|
|
|
|
|
|
|
|
$language = strtolower($language);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 'ru':
|
|
|
|
$table = array(
|
|
|
|
//-- Заглавные
|
|
|
|
'А' => 'A',
|
|
|
|
'Б' => 'B',
|
|
|
|
'В' => 'V',
|
|
|
|
'Г' => 'G',
|
|
|
|
'Д' => 'D',
|
|
|
|
'Е' => 'E',
|
|
|
|
'Ё' => 'YO',
|
|
|
|
'Ж' => 'ZH',
|
|
|
|
'З' => 'Z',
|
|
|
|
'И' => 'I',
|
|
|
|
'Й' => 'J',
|
|
|
|
'К' => 'K',
|
|
|
|
'Л' => 'L',
|
|
|
|
'М' => 'M',
|
|
|
|
'Н' => 'N',
|
|
|
|
'О' => 'O',
|
|
|
|
'П' => 'P',
|
|
|
|
'Р' => 'R',
|
|
|
|
'С' => 'S',
|
|
|
|
'Т' => 'T',
|
|
|
|
'У' => 'U',
|
|
|
|
'Ф' => 'F',
|
|
|
|
'Х' => 'H',
|
|
|
|
'Ц' => 'C',
|
|
|
|
'Ч' => 'CH',
|
|
|
|
'Ш' => 'SH',
|
|
|
|
'Щ' => 'CSH',
|
|
|
|
'Ь' => '',
|
|
|
|
'Ы' => 'Y',
|
|
|
|
'Ъ' => '',
|
|
|
|
'Э' => 'E',
|
|
|
|
'Ю' => 'YU',
|
|
|
|
'Я' => 'YA',
|
|
|
|
//-- Строчные
|
|
|
|
'а' => 'a',
|
|
|
|
'б' => 'b',
|
|
|
|
'в' => 'v',
|
|
|
|
'г' => 'g',
|
|
|
|
'д' => 'd',
|
|
|
|
'е' => 'e',
|
|
|
|
'ё' => 'yo',
|
|
|
|
'ж' => 'zh',
|
|
|
|
'з' => 'z',
|
|
|
|
'и' => 'i',
|
|
|
|
'й' => 'j',
|
|
|
|
'к' => 'k',
|
|
|
|
'л' => 'l',
|
|
|
|
'м' => 'm',
|
|
|
|
'н' => 'n',
|
|
|
|
'о' => 'o',
|
|
|
|
'п' => 'p',
|
|
|
|
'р' => 'r',
|
|
|
|
'с' => 's',
|
|
|
|
'т' => 't',
|
|
|
|
'у' => 'u',
|
|
|
|
'ф' => 'f',
|
|
|
|
'х' => 'h',
|
|
|
|
'ц' => 'c',
|
|
|
|
'ч' => 'ch',
|
|
|
|
'ш' => 'sh',
|
|
|
|
'щ' => 'csh',
|
|
|
|
'ь' => '',
|
|
|
|
'ы' => 'y',
|
|
|
|
'ъ' => '',
|
|
|
|
'э' => 'e',
|
|
|
|
'ю' => 'yu',
|
|
|
|
'я' => 'ya',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
|
|
|
|
//болгарский
|
|
|
|
case 'bg':
|
|
|
|
$table = array(
|
|
|
|
//-- Заглавные
|
|
|
|
'А' => 'A',
|
|
|
|
'Б' => 'B',
|
|
|
|
'В' => 'V',
|
|
|
|
'Г' => 'G',
|
|
|
|
'Д' => 'D',
|
|
|
|
'Е' => 'E',
|
|
|
|
'Ё' => 'YO',
|
|
|
|
'Ж' => 'ZH',
|
|
|
|
'З' => 'Z',
|
|
|
|
'И' => 'I',
|
|
|
|
'Й' => 'J',
|
|
|
|
'К' => 'K',
|
|
|
|
'Л' => 'L',
|
|
|
|
'М' => 'M',
|
|
|
|
'Н' => 'N',
|
|
|
|
'О' => 'O',
|
|
|
|
'П' => 'P',
|
|
|
|
'Р' => 'R',
|
|
|
|
'С' => 'S',
|
|
|
|
'Т' => 'T',
|
|
|
|
'У' => 'U',
|
|
|
|
'Ф' => 'F',
|
|
|
|
'Х' => 'H',
|
|
|
|
'Ц' => 'C',
|
|
|
|
'Ч' => 'CH',
|
|
|
|
'Ш' => 'SH',
|
|
|
|
'Щ' => 'SHT',
|
|
|
|
'Ь' => 'Y',
|
|
|
|
'Ы' => 'Y',
|
|
|
|
'Ъ' => 'A',
|
|
|
|
'Э' => 'E',
|
|
|
|
'Ю' => 'YU',
|
|
|
|
'Я' => 'YA',
|
|
|
|
//-- Строчные
|
|
|
|
'а' => 'a',
|
|
|
|
'б' => 'b',
|
|
|
|
'в' => 'v',
|
|
|
|
'г' => 'g',
|
|
|
|
'д' => 'd',
|
|
|
|
'е' => 'e',
|
|
|
|
'ё' => 'yo',
|
|
|
|
'ж' => 'zh',
|
|
|
|
'з' => 'z',
|
|
|
|
'и' => 'i',
|
|
|
|
'й' => 'j',
|
|
|
|
'к' => 'k',
|
|
|
|
'л' => 'l',
|
|
|
|
'м' => 'm',
|
|
|
|
'н' => 'n',
|
|
|
|
'о' => 'o',
|
|
|
|
'п' => 'p',
|
|
|
|
'р' => 'r',
|
|
|
|
'с' => 's',
|
|
|
|
'т' => 't',
|
|
|
|
'у' => 'u',
|
|
|
|
'ф' => 'f',
|
|
|
|
'х' => 'h',
|
|
|
|
'ц' => 'c',
|
|
|
|
'ч' => 'ch',
|
|
|
|
'ш' => 'sh',
|
|
|
|
'щ' => 'sht',
|
|
|
|
'ь' => 'a',
|
|
|
|
'ы' => 'y',
|
|
|
|
'ъ' => 'a',
|
|
|
|
'э' => 'e',
|
|
|
|
'ю' => 'yu',
|
|
|
|
'я' => 'ya',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
|
|
|
|
//-- українська мова:
|
|
|
|
case 'ua':
|
|
|
|
$table = array(
|
|
|
|
//-- Заглавные
|
|
|
|
'А' => 'A',
|
|
|
|
'Б' => 'B',
|
|
|
|
'В' => 'V',
|
|
|
|
'Г' => 'G',
|
|
|
|
'Д' => 'D',
|
|
|
|
'Е' => 'E',
|
|
|
|
'Є' => 'IE',
|
|
|
|
'Ж' => 'J',
|
|
|
|
'З' => 'Z',
|
|
|
|
'И' => 'Y',
|
|
|
|
'І' => 'I',
|
|
|
|
'Й' => 'I',
|
|
|
|
'К' => 'K',
|
|
|
|
'Л' => 'L',
|
|
|
|
'М' => 'M',
|
|
|
|
'Н' => 'N',
|
|
|
|
'О' => 'O',
|
|
|
|
'П' => 'P',
|
|
|
|
'Р' => 'R',
|
|
|
|
'С' => 'S',
|
|
|
|
'Т' => 'T',
|
|
|
|
'У' => 'U',
|
|
|
|
'Ф' => 'F',
|
|
|
|
'Х' => 'H',
|
|
|
|
'Ц' => 'C',
|
|
|
|
'Ч' => 'CH',
|
|
|
|
'Ш' => 'SH',
|
|
|
|
'Щ' => 'CSH',
|
|
|
|
'Ь' => '',
|
|
|
|
'Ю' => 'IU',
|
|
|
|
'Я' => 'IA',
|
|
|
|
//-- Строчные
|
|
|
|
'а' => 'a',
|
|
|
|
'б' => 'b',
|
|
|
|
'в' => 'v',
|
|
|
|
'г' => 'g',
|
|
|
|
'д' => 'd',
|
|
|
|
'е' => 'e',
|
|
|
|
'є' => 'ie',
|
|
|
|
'ж' => 'j',
|
|
|
|
'з' => 'z',
|
|
|
|
'и' => 'y',
|
|
|
|
'і' => 'i',
|
|
|
|
'й' => 'i',
|
|
|
|
'к' => 'k',
|
|
|
|
'л' => 'l',
|
|
|
|
'м' => 'm',
|
|
|
|
'н' => 'n',
|
|
|
|
'о' => 'o',
|
|
|
|
'п' => 'p',
|
|
|
|
'р' => 'r',
|
|
|
|
'с' => 's',
|
|
|
|
'т' => 't',
|
|
|
|
'у' => 'u',
|
|
|
|
'ф' => 'f',
|
|
|
|
'х' => 'h',
|
|
|
|
'ц' => 'c',
|
|
|
|
'ч' => 'ch',
|
|
|
|
'ш' => 'sh',
|
|
|
|
'щ' => 'csh',
|
|
|
|
'ь' => '',
|
|
|
|
'ю' => 'iu',
|
|
|
|
'я' => 'ia',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'uk':
|
|
|
|
$table = array(
|
|
|
|
//-- Заглавные
|
|
|
|
'А' => 'A',
|
|
|
|
'Б' => 'B',
|
|
|
|
'В' => 'V',
|
|
|
|
'Г' => 'G',
|
|
|
|
'Ґ' => 'G',
|
|
|
|
'Д' => 'D',
|
|
|
|
'Е' => 'E',
|
|
|
|
'Є' => 'IE',
|
|
|
|
'Ж' => 'J',
|
|
|
|
'З' => 'Z',
|
|
|
|
'И' => 'Y',
|
|
|
|
'І' => 'I',
|
|
|
|
'Й' => 'I',
|
|
|
|
'К' => 'K',
|
|
|
|
'Л' => 'L',
|
|
|
|
'М' => 'M',
|
|
|
|
'Н' => 'N',
|
|
|
|
'О' => 'O',
|
|
|
|
'П' => 'P',
|
|
|
|
'Р' => 'R',
|
|
|
|
'С' => 'S',
|
|
|
|
'Т' => 'T',
|
|
|
|
'У' => 'U',
|
|
|
|
'Ф' => 'F',
|
|
|
|
'Х' => 'H',
|
|
|
|
'Ц' => 'C',
|
|
|
|
'Ч' => 'CH',
|
|
|
|
'Ш' => 'SH',
|
|
|
|
'Щ' => 'CSH',
|
|
|
|
'Ь' => '',
|
|
|
|
'Ю' => 'IU',
|
|
|
|
'Я' => 'IA',
|
|
|
|
//-- Строчные
|
|
|
|
'а' => 'a',
|
|
|
|
'б' => 'b',
|
|
|
|
'в' => 'v',
|
|
|
|
'г' => 'g',
|
|
|
|
'ґ' => 'g',
|
|
|
|
'д' => 'd',
|
|
|
|
'е' => 'e',
|
|
|
|
'є' => 'ie',
|
|
|
|
'ж' => 'j',
|
|
|
|
'з' => 'z',
|
|
|
|
'и' => 'y',
|
|
|
|
'і' => 'i',
|
|
|
|
'й' => 'i',
|
|
|
|
'к' => 'k',
|
|
|
|
'л' => 'l',
|
|
|
|
'м' => 'm',
|
|
|
|
'н' => 'n',
|
|
|
|
'о' => 'o',
|
|
|
|
'п' => 'p',
|
|
|
|
'р' => 'r',
|
|
|
|
'с' => 's',
|
|
|
|
'т' => 't',
|
|
|
|
'у' => 'u',
|
|
|
|
'ф' => 'f',
|
|
|
|
'х' => 'h',
|
|
|
|
'ц' => 'c',
|
|
|
|
'ч' => 'ch',
|
|
|
|
'ш' => 'sh',
|
|
|
|
'щ' => 'csh',
|
|
|
|
'ь' => '',
|
|
|
|
'ю' => 'iu',
|
|
|
|
'я' => 'ia',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
|
|
|
|
//-- polski język
|
|
|
|
case 'pl':
|
|
|
|
$table = array(
|
|
|
|
'Ą' => 'ya',
|
|
|
|
'ą' => 'ya',
|
|
|
|
'Ć' => 'ya',
|
|
|
|
'ć' => 'ya',
|
|
|
|
'Ę' => 'ya',
|
|
|
|
'ę' => 'ya',
|
|
|
|
'Ł' => 'ya',
|
|
|
|
'ł' => 'ya',
|
|
|
|
'Ń' => 'ya',
|
|
|
|
'ń' => 'ya',
|
|
|
|
'Ó' => 'ya',
|
|
|
|
'ó' => 'ya',
|
|
|
|
'Ś' => 'ya',
|
|
|
|
'ś' => 'ya',
|
|
|
|
'Ź' => 'ya',
|
|
|
|
'ź' => 'ya',
|
|
|
|
'Ż' => 'ya',
|
|
|
|
'ż' => 'ya',
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
$string = str_replace(array_keys($table), array_values($table), $string);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 'ru':
|
|
|
|
$replace = array(
|
|
|
|
'ье'=>'ye',
|
|
|
|
'ъе'=>'ye',
|
|
|
|
'ьи'=>'yi',
|
|
|
|
'ъи'=>'yi',
|
|
|
|
'ъо'=>'yo',
|
|
|
|
'ьо'=>'yo',
|
|
|
|
'ё'=>'yo',
|
|
|
|
'ю'=>'yu',
|
|
|
|
'я'=>'ya',
|
|
|
|
'ж'=>'zh',
|
|
|
|
'х'=>'kh',
|
|
|
|
'ц'=>'ts',
|
|
|
|
'ч'=>'ch',
|
|
|
|
'ш'=>'sh',
|
|
|
|
'щ'=>'shch',
|
|
|
|
'ъ'=>'',
|
|
|
|
'ь'=>'',
|
|
|
|
'є'=>'ye'
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'bg':
|
|
|
|
$replace = array(
|
|
|
|
'ье'=>'ye',
|
|
|
|
'ъе'=>'ye',
|
|
|
|
'ьи'=>'yi',
|
|
|
|
'ъи'=>'yi',
|
|
|
|
'ъо'=>'yo',
|
|
|
|
'ьо'=>'yo',
|
|
|
|
'ё'=>'yo',
|
|
|
|
'ю'=>'yu',
|
|
|
|
'я'=>'ya',
|
|
|
|
'ж'=>'zh',
|
|
|
|
'ц'=>'ts',
|
|
|
|
'ч'=>'ch',
|
|
|
|
'ш'=>'sh',
|
|
|
|
'щ'=>'sht',
|
|
|
|
'ъ'=>'a',
|
|
|
|
'ь'=>'a'
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
$string = strtr($string, $replace);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 'ru':
|
|
|
|
$search = 'абвгдезийклмнопрстуфыэі';
|
|
|
|
$replace = 'abvgdeziyklmnoprstufyei';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'ua':
|
|
|
|
$search = 'абвгґдеєжзиійїклмнопрстуфхцчшщьюя';
|
|
|
|
$replace = 'abvggdeejzyiiklmnoprstufhccssua';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'uk':
|
|
|
|
$search = 'абвгґдеєжзиійїклмнопрстуфхцчшщьюя';
|
|
|
|
$replace = 'abvggdeejzyiiklmnoprstufhccssua';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'bg':
|
|
|
|
$search = 'абвгдезийклмнопрстуфыэіъ';
|
|
|
|
$replace = 'abvgdeziyklmnoprstufyeia';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
$string = strtr($string, $search, $replace);
|
|
|
|
|
|
|
|
return trim($string, '-');
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Исправление форматирования даты
|
|
|
|
* Функцию можно использовать в шаблонах Smarty как модификатор
|
|
|
|
*
|
|
|
|
* @param string $string - дата отформатированная в соответствии с текущей локалью
|
|
|
|
* @param string $language - язык
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
function pretty_date($string, $language = '')
|
|
|
|
{
|
|
|
|
// пытаемся решить проблему для кодировки дат на лок. серверах
|
|
|
|
if (! mb_check_encoding($string, 'UTF-8'))
|
|
|
|
{
|
|
|
|
$string = iconv('Windows-1251', 'UTF-8', $string);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($language == '')
|
|
|
|
{
|
|
|
|
$language = (defined('ACP') && ACP)
|
|
|
|
? $_SESSION['admin_language']
|
|
|
|
: $_SESSION['user_language'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$language = strtolower($language);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 'ru':
|
|
|
|
$pretty = array(
|
|
|
|
'Январь' =>'января', 'Февраль' =>'февраля', 'Март' =>'марта',
|
|
|
|
'Апрель' =>'апреля', 'Май' =>'мая', 'Июнь' =>'июня',
|
|
|
|
'Июль' =>'июля', 'Август' =>'августа', 'Сентябрь'=>'сентября',
|
|
|
|
'Октябрь' =>'октября', 'Ноябрь' =>'ноября', 'Декабрь' =>'декабря',
|
|
|
|
|
|
|
|
'воскресенье'=>'Воскресенье', 'понедельник'=>'Понедельник', 'вторник' =>'Вторник',
|
|
|
|
'среда' =>'Среда', 'четверг' =>'Четверг', 'пятница' =>'Пятница',
|
|
|
|
'суббота' =>'Суббота'
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'ua':
|
|
|
|
case 'uk':
|
|
|
|
$pretty = array(
|
|
|
|
'Січень' =>'січня', 'Лютий' =>'лютого', 'Березень'=>'березня',
|
|
|
|
'Квітень'=>'квітня', 'Травень' =>'травня', 'Червень' =>'червня',
|
|
|
|
'Липень' =>'липня', 'Серпень' =>'серпня', 'Вересень'=>'вересня',
|
|
|
|
'Жовтень'=>'жовтня', 'Листопад' =>'листопада', 'Грудень' =>'грудня',
|
|
|
|
|
|
|
|
'неділя' =>'Неділя', 'понеділок'=>'Понеділок', 'вівторок'=>'Вівторок',
|
|
|
|
'середа' =>'Середа', 'четвер' =>'Четвер', 'п’ятниця'=>'П’ятниця',
|
|
|
|
'субота' =>'Субота'
|
|
|
|
);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (isset($pretty)
|
|
|
|
? strtr($string, $pretty)
|
|
|
|
: $string);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Функция перевода даты с en на ru
|
|
|
|
*
|
|
|
|
* @param string $data данные
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
function translate_date($data)
|
|
|
|
{
|
|
|
|
$language = (defined('ACP') && ACP)
|
|
|
|
? $_SESSION['admin_language']
|
|
|
|
: $_SESSION['user_language'];
|
|
|
|
|
|
|
|
$language = strtolower($language);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 'ru':
|
|
|
|
$data = strtr($data, array(
|
|
|
|
'January'=>'Января',
|
|
|
|
'February'=>'Февраля',
|
|
|
|
'March'=>'Марта',
|
|
|
|
'April'=>'Апреля',
|
|
|
|
'May'=>'Мая',
|
|
|
|
'June'=>'Июня',
|
|
|
|
'July'=>'Июля',
|
|
|
|
'August'=>'Августа',
|
|
|
|
'September'=>'Сентября',
|
|
|
|
'October'=>'Октября',
|
|
|
|
'November'=>'Ноября',
|
|
|
|
'December'=>'Декабря',
|
|
|
|
|
|
|
|
'Jan'=>'Янв',
|
|
|
|
'Feb'=>'Фев',
|
|
|
|
'Mar'=>'Мрт',
|
|
|
|
'Apr'=>'Апр',
|
|
|
|
'May'=>'Май',
|
|
|
|
'Jun'=>'Июн',
|
|
|
|
'Jul'=>'Июл',
|
|
|
|
'Aug'=>'Авг',
|
|
|
|
'Sep'=>'Сен',
|
|
|
|
'Oct'=>'Окт',
|
|
|
|
'Nov'=>'Нбр',
|
|
|
|
'Dec'=>'Дек',
|
|
|
|
|
|
|
|
'Monday'=>'Понедельник',
|
|
|
|
'Tuesday'=>'Вторник',
|
|
|
|
'Wednesday'=>'Среда',
|
|
|
|
'Thursday'=>'Четверг',
|
|
|
|
'Friday'=>'Пятница',
|
|
|
|
'Saturday'=>'Суббота',
|
|
|
|
'Sunday'=>'Воскресенье',
|
|
|
|
|
|
|
|
'Mon'=>'Пн',
|
|
|
|
'Tue'=>'Вт',
|
|
|
|
'Wed'=>'Ср',
|
|
|
|
'Thu'=>'Чт',
|
|
|
|
'Fri'=>'Пт',
|
|
|
|
'Sat'=>'Сб',
|
|
|
|
'Sun'=>'Вс'
|
|
|
|
));
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case 'ua':
|
|
|
|
case 'uk':
|
|
|
|
$data = strtr($data, array(
|
|
|
|
'January'=>'Січня',
|
|
|
|
'February'=>'Лютого',
|
|
|
|
'March'=>'Березня',
|
|
|
|
'April'=>'Квітня',
|
|
|
|
'May'=>'Травня',
|
|
|
|
'June'=>'Червня',
|
|
|
|
'July'=>'Липня',
|
|
|
|
'August'=>'Серпня',
|
|
|
|
'September'=>'Вересня',
|
|
|
|
'October'=>'Жовтня',
|
|
|
|
'November'=>'Листопада',
|
|
|
|
'December'=>'Грудня',
|
|
|
|
|
|
|
|
'Jan'=>'Січ',
|
|
|
|
'Feb'=>'Лют',
|
|
|
|
'Mar'=>'Бер',
|
|
|
|
'Apr'=>'Кві',
|
|
|
|
'May'=>'Тра',
|
|
|
|
'Jun'=>'Чер',
|
|
|
|
'Jul'=>'Лип',
|
|
|
|
'Aug'=>'Сер',
|
|
|
|
'Sep'=>'Вер',
|
|
|
|
'Oct'=>'Жов',
|
|
|
|
'Nov'=>'Лис',
|
|
|
|
'Dec'=>'Гру',
|
|
|
|
|
|
|
|
'Monday'=>'Понеділок',
|
|
|
|
'Tuesday'=>'Вівторок',
|
|
|
|
'Wednesday'=>'Середа',
|
|
|
|
'Thursday'=>'Четвер',
|
|
|
|
'Friday'=>'П’ятниця',
|
|
|
|
'Saturday'=>'Субота',
|
|
|
|
'Sunday'=>'Неділя',
|
|
|
|
|
|
|
|
'Mon'=>'Пн',
|
|
|
|
'Tue'=>'Вт',
|
|
|
|
'Wed'=>'Ср',
|
|
|
|
'Thu'=>'Чт',
|
|
|
|
'Fri'=>'Пт',
|
|
|
|
'Sat'=>'Сб',
|
|
|
|
'Sun'=>'Нд'
|
|
|
|
));
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'bg':
|
|
|
|
$data = strtr($data, array(
|
|
|
|
'January'=>'Януари',
|
|
|
|
'February'=>'Февруари',
|
|
|
|
'March'=>'Март',
|
|
|
|
'April'=>'Април',
|
|
|
|
'May'=>'Май',
|
|
|
|
'June'=>'Юни',
|
|
|
|
'July'=>'Юли',
|
|
|
|
'August'=>'Август',
|
|
|
|
'September'=>'Септември',
|
|
|
|
'October'=>'Октомври',
|
|
|
|
'November'=>'Нември',
|
|
|
|
'December'=>'Декември',
|
|
|
|
|
|
|
|
'Jan'=>'Яну',
|
|
|
|
'Feb'=>'Фев',
|
|
|
|
'Mar'=>'Мрт',
|
|
|
|
'Apr'=>'Апр',
|
|
|
|
'May'=>'Май',
|
|
|
|
'Jun'=>'Юни',
|
|
|
|
'Jul'=>'Юли',
|
|
|
|
'Aug'=>'Авг',
|
|
|
|
'Sep'=>'Сеп',
|
|
|
|
'Oct'=>'Окт',
|
|
|
|
'Nov'=>'Ное',
|
|
|
|
'Dec'=>'Дек',
|
|
|
|
|
|
|
|
'Monday'=>'Понеделник',
|
|
|
|
'Tuesday'=>'Вторник',
|
|
|
|
'Wednesday'=>'Сряда',
|
|
|
|
'Thursday'=>'Четвъртък',
|
|
|
|
'Friday'=>'Петък',
|
|
|
|
'Saturday'=>'Събота',
|
|
|
|
'Sunday'=>'Неделя',
|
|
|
|
|
|
|
|
'Mon'=>'Пн',
|
|
|
|
'Tue'=>'Вт',
|
|
|
|
'Wed'=>'Ср',
|
|
|
|
'Thu'=>'Чт',
|
|
|
|
'Fri'=>'Пт',
|
|
|
|
'Sat'=>'Сб',
|
|
|
|
'Sun'=>'Нд'
|
|
|
|
));
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Подготовка имени файла или директории
|
|
|
|
*
|
|
|
|
* @param string $st
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
function prepare_fname($st)
|
|
|
|
{
|
|
|
|
$st = strip_tags($st);
|
|
|
|
|
|
|
|
$st = strtr($st,'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ',
|
|
|
|
'abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщьъыэюя');
|
|
|
|
|
|
|
|
$st = translit_string(trim($st));
|
|
|
|
|
|
|
|
$st = preg_replace(array('/[^a-z0-9_-]/', '/--+/'), '-', $st);
|
|
|
|
|
|
|
|
return trim($st, '-');
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Отображение даты в фармате
|
|
|
|
* 25 дней/минут/секунд назад
|
|
|
|
* и т.д.
|
|
|
|
*
|
|
|
|
* @param string $date (TIMESTAMP)
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
function human_date($date)
|
|
|
|
{
|
|
|
|
$stf = 0;
|
|
|
|
$cur_time = time();
|
|
|
|
$diff = $cur_time - $date;
|
|
|
|
|
|
|
|
$language = (defined('ACP') && ACP)
|
|
|
|
? $_SESSION['admin_language']
|
|
|
|
: $_SESSION['user_language'];
|
|
|
|
|
|
|
|
$language = strtolower($language);
|
|
|
|
|
|
|
|
switch ($language)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 'ru':
|
|
|
|
$seconds = array('секунда', 'секунды', 'секунд');
|
|
|
|
$minutes = array('минута', 'минуты', 'минут');
|
|
|
|
$hours = array('час', 'часа', 'часов');
|
|
|
|
$days = array('день', 'дня', 'дней');
|
|
|
|
$weeks = array('неделя', 'недели', 'недель' );
|
|
|
|
$months = array('месяц', 'месяца', 'месяцев');
|
|
|
|
$years = array('год', 'года', 'лет');
|
|
|
|
$decades = array('десятилетие', 'десятилетия', 'десятилетий');
|
|
|
|
$ago = 'назад';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'ua':
|
|
|
|
case 'uk':
|
|
|
|
$seconds = array('секунда', 'секунди', 'секунд');
|
|
|
|
$minutes = array('хвилина', 'хвилини', 'хвилин');
|
|
|
|
$hours = array('година', 'години', 'годин');
|
|
|
|
$days = array('день', 'дня', 'днів');
|
|
|
|
$weeks = array('тиждень', 'тижня', 'тижнів' );
|
|
|
|
$months = array('месяць', 'місяця', 'місяців');
|
|
|
|
$years = array('рік', 'року', 'років');
|
|
|
|
$decades = array('десятиріччя', 'десятиріччя', 'десятиріч');
|
|
|
|
$ago = 'назад';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'en':
|
|
|
|
$seconds = array('second', 'seconds', 'seconds');
|
|
|
|
$minutes = array('minute', 'minutes', 'minutes');
|
|
|
|
$hours = array('hour', 'hours', 'hours');
|
|
|
|
$days = array('day', 'days', 'days');
|
|
|
|
$weeks = array('week', 'weeks', 'weeks' );
|
|
|
|
$months = array('month', 'months', 'months');
|
|
|
|
$years = array('year', 'years', 'years');
|
|
|
|
$decades = array('decade', 'decades', 'decades');
|
|
|
|
$ago = 'ago';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
$phrase = array($seconds, $minutes, $hours, $days, $weeks, $months, $years, $decades);
|
|
|
|
|
|
|
|
$length = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
|
|
|
|
|
|
|
|
for ($i = sizeof($length) - 1; ($i >= 0) && (($no = $diff / $length[ $i ]) <= 1 ); $i --)
|
|
|
|
{
|
|
|
|
;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($i < 0)
|
|
|
|
{
|
|
|
|
$i = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
$_time = $cur_time - ($diff % $length[$i]);
|
|
|
|
|
|
|
|
$no = floor($no);
|
|
|
|
|
|
|
|
$value = sprintf("%d %s ", $no, date_phrase($no, $phrase[$i]));
|
|
|
|
|
|
|
|
if (($stf == 1) && ($i >= 1) && (($cur_time - $_time) > 0))
|
|
|
|
{
|
|
|
|
$value .= time_ago($_time);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $value . $ago;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function date_phrase($number, $titles)
|
|
|
|
{
|
|
|
|
$cases = array( 2, 0, 1, 1, 1, 2 );
|
|
|
|
|
|
|
|
return $titles[($number % 100 > 4 && $number % 100 < 20)
|
|
|
|
? 2
|
|
|
|
: $cases[min($number % 10, 5)]];
|
|
|
|
}
|
|
|
|
?>
|