mirror of
				https://github.com/avecms/AVE.cms.git
				synced 2025-10-30 05:16:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			851 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			851 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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)]];
 | ||
| 	}
 | ||
| ?>
 |