Файл: system/modules/functions.php
Строк: 1013
<?php
/*
Appointment: Основные функции сайта
File: functions.php
*/
class microTimer {
function start(){
global $starttime;
$mtime = microtime();
$mtime = explode( ' ', $mtime );
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
function stop(){
global $starttime;
$mtime = microtime();
$mtime = explode( ' ', $mtime );
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round( ($endtime - $starttime), 5 );
return $totaltime;
}
}
function set_vars($file, $data) {
$fp = fopen( ENGINE_DIR . '/cache/system/' . $file . '.php', 'wb+' );
fwrite( $fp, serialize( $data ) );
fclose( $fp );
@chmod( ENGINE_DIR . '/cache/system/' . $file . '.php', 0666 );
}
function get_vars($file) {
return unserialize( @file_get_contents( ENGINE_DIR . '/cache/system/' . $file . '.php' ) );
}
//################### Мобильный статус ###################//
function detect_mobile_device(){
// Проверяем, если значение клиента пользователя претендует на Windows, но не Windows Mobile
if(stristr(@$_SERVER['HTTP_USER_AGENT'],'windows')&&!stristr(@$_SERVER['HTTP_USER_AGENT'],'windows ce')) return false;
// Проверяем, если вы зашли с компьютера то оповещаем, что это мобильный браузер
if(preg_match('/up.browser|up. link |windows ce|iemobile|mini|mmp|symbian|midp|wap|phone|pocket|mobile|pda|psp/i',
@$_SERVER['HTTP_USER_AGENT'])) return true;
// Проверка HTTP-заголовка принимают ли wap.wml или wap.xhtml поддержки.
if(isset($_SERVER['HTTP_ACCEPT'])&&(stristr($_SERVER['HTTP_ACCEPT'],'text/vnd.wap.wml')||
stristr($_SERVER['HTTP_ACCEPT'],'application/vnd.wap.xhtml xml'))) return true;
// Проверяем мобильное устройство.
if(isset($_SERVER['HTTP_X_WAP_PROFILE'])||isset($_SERVER['HTTP_PROFILE'])||
isset($_SERVER['X-OperaMini-Features'])||isset($_SERVER['UA-pixels'])) return true;
// Создаем массив с первыми четырьмя персонажами из самых распространенных мобильных версий.
$a = array ('acs-','alav','alca','amoi','audi','aste','avan','benq','bird','blac',
'bla z','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java', 'jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mi ts','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','opwv','palm','pana' ,'pant','pdxg','phil','play','pluc',
'port','prox','qtek','qwap','sage','sams','s any','sch-','sec-','send',
'seri','sgh-','shar','sie-','siem','smal','smar','sony ','sph-','symb',
't-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda',' w3c ',
'wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda','xda-');
// Проверяем, если первые четыре символа текущего клиента мобильных версий то устанавливается в качестве ключа в массиве.
if(isset($a[ substr (@$_SERVER['HTTP_USER_AGENT'],0,4)])) return true;
}
function totranslit($var, $lower = true, $punkt = true) {
global $langtranslit;
if ( is_array($var) ) return "";
if (!is_array ( $langtranslit ) OR !count( $langtranslit ) ) {
$langtranslit = array(
'а' => 'a', 'б' => 'b', 'в' => 'v',
'г' => 'g', 'д' => 'd', 'е' => 'e',
'ё' => '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',
"ї" => "yi", "є" => "ye",
'А' => 'A', 'Б' => 'B', 'В' => 'V',
'Г' => 'G', 'Д' => 'D', 'Е' => 'E',
'Ё' => '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',
"Ї" => "yi", "Є" => "ye",
);
}
$var = trim( strip_tags( $var ) );
$var = preg_replace( "/s+/ms", "-", $var );
$var = str_replace( "/", "-", $var );
$var = strtr($var, $langtranslit);
if ( $punkt ) $var = preg_replace( "/[^a-z0-9_-.]+/mi", "", $var );
else $var = preg_replace( "/[^a-z0-9_-]+/mi", "", $var );
$var = preg_replace( '#[-]+#i', '-', $var );
if ( $lower ) $var = strtolower( $var );
$var = str_ireplace( ".php", "", $var );
$var = str_ireplace( ".php", ".ppp", $var );
if( strlen( $var ) > 200 ) {
$var = substr( $var, 0, 200 );
if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max );
}
return $var;
}
function makeDropDown($options=array(), $name, $selected)
{
$output = '<select name="'.$name.'" >';
foreach($options as $value=>$description)
{
$output .= '<option value='.$value;
if(intval($selected) == intval($value)){
$output .= ' selected ';
}
$output .= '>'.$description.'</option>';
}
$output .= '</select>';
return $output;
}
function GetVar($v){
if(ini_get('magic_quotes_gpc'))
return stripslashes($v) ;
return $v;
}
function check_xss(){
$url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
if($url){
if((strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, ''' ) !== false) || (strpos( $url, '.php' ) !== false)){
if($_GET['go'] != "search" AND $_GET['go'] != "messages")
die('Hacking attempt!');
}
}
$url = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) );
if($url){
if((strpos($url, '<') !== false) || (strpos($url, '>') !== false) || (strpos($url, '"') !== false) || (strpos($url, ''') !== false)){
if($_GET['go'] != "search" AND $_GET['go'] != "messages")
die('Hacking attempt!');
}
}
}
function langdate($format, $stamp){
global $langdate;
return strtr(@date($format, $stamp), $langdate);
}
function navigation($gc, $num, $type){
global $tpl, $page;
$gcount = $gc;
$cnt = $num;
$items_count = $cnt;
$items_per_page = $gcount;
$page_refers_per_page = 5;
$pages = '';
$pages_count = ( ( $items_count % $items_per_page != 0 ) ) ? floor( $items_count / $items_per_page ) + 1 : floor( $items_count / $items_per_page );
$start_page = ( $page - $page_refers_per_page <= 0 ) ? 1 : $page - $page_refers_per_page + 1;
$page_refers_per_page_count = ( ( $page - $page_refers_per_page < 0 ) ? $page : $page_refers_per_page ) + ( ( $page + $page_refers_per_page > $pages_count ) ? ( $pages_count - $page ) : $page_refers_per_page - 1 );
if($page > 1)
$pages .= '<a href="'.$type.($page-1).'" onClick="Page.Go(this.href); return false">«</a>';
else
$pages .= '';
if ( $start_page > 1 ) {
$pages .= '<a href="'.$type.'1" onClick="Page.Go(this.href); return false">1</a>';
$pages .= '<a href="'.$type.( $start_page - 1 ).'" onClick="Page.Go(this.href); return false">...</a>';
}
for ( $index = -1; ++$index <= $page_refers_per_page_count-1; ) {
if ( $index + $start_page == $page )
$pages .= '<span>' . ( $start_page + $index ) . '</span>';
else
$pages .= '<a href="'.$type.($start_page+$index).'" onClick="Page.Go(this.href); return false">'.($start_page+$index).'</a>';
}
if ( $page + $page_refers_per_page <= $pages_count ) {
$pages .= '<a href="'.$type.( $start_page + $page_refers_per_page_count ).'" onClick="Page.Go(this.href); return false">...</a>';
$pages .= '<a href="'.$type.$pages_count.'" onClick="Page.Go(this.href); return false">'.$pages_count.'</a>';
}
$resif = $cnt/$gcount;
if(ceil($resif) == $page)
$pages .= '';
else
$pages .= '<a href="'.$type.($page+1).'" onClick="Page.Go(this.href); return false">»</a>';
if ( $pages_count <= 1 )
$pages = '';
$tpl_2 = new mozg_template();
$tpl_2->dir = TEMPLATE_DIR;
$tpl_2->load_template('nav.tpl');
$tpl_2->set('{pages}', $pages);
$tpl_2->compile('content');
$tpl_2->clear();
$tpl->result['content'] .= $tpl_2->result['content'];
}
function box_navigation($gc, $num, $id, $function, $act){
global $tpl, $page;
$gcount = $gc;
$cnt = $num;
$items_count = $cnt;
$items_per_page = $gcount;
$page_refers_per_page = 5;
$pages = '';
$pages_count = ( ( $items_count % $items_per_page != 0 ) ) ? floor( $items_count / $items_per_page ) + 1 : floor( $items_count / $items_per_page );
$start_page = ( $page - $page_refers_per_page <= 0 ) ? 1 : $page - $page_refers_per_page + 1;
$page_refers_per_page_count = ( ( $page - $page_refers_per_page < 0 ) ? $page : $page_refers_per_page ) + ( ( $page + $page_refers_per_page > $pages_count ) ? ( $pages_count - $page ) : $page_refers_per_page - 1 );
if(!$act)
$act = "''";
else
$act = "'{$act}'";
if($page > 1)
$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($page-1).', '.$act.'); return false">«</a>';
else
$pages .= '';
if ( $start_page > 1 ) {
$pages .= '<a href="" onClick="'.$function.'('.$id.', 1, '.$act.'); return false">1</a>';
$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($start_page-1).', '.$act.'); return false">...</a>';
}
for ( $index = -1; ++$index <= $page_refers_per_page_count-1; ) {
if ( $index + $start_page == $page )
$pages .= '<span>' . ( $start_page + $index ) . '</span>';
else
$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($start_page+$index).', '.$act.'); return false">'.($start_page+$index).'</a>';
}
if ( $page + $page_refers_per_page <= $pages_count ) {
$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($start_page + $page_refers_per_page_count).', '.$act.'); return false">...</a>';
$pages .= '<a href="" onClick="'.$function.'('.$id.', '.$pages_count.', '.$act.'); return false">'.$pages_count.'</a>';
}
$resif = $cnt/$gcount;
if(ceil($resif) == $page)
$pages .= '';
else
$pages .= '<a href="/" onClick="'.$function.'('.$id.', '.($page+1).', '.$act.'); return false">»</a>';
if ( $pages_count <= 1 )
$pages = '';
$tpl_2 = new mozg_template();
$tpl_2->dir = TEMPLATE_DIR;
$tpl_2->load_template('nav.tpl');
$tpl_2->set('{pages}', $pages);
$tpl_2->compile('content');
$tpl_2->clear();
$tpl->result['content'] .= $tpl_2->result['content'];
}
function msgbox($title, $text, $tpl_name) {
global $tpl;
$tpl_2 = new mozg_template();
$tpl_2->dir = TEMPLATE_DIR;
$tpl_2->load_template($tpl_name.'.tpl');
$tpl_2->set('{error}', $text);
$tpl_2->set('{title}', $title);
$tpl_2->compile('info');
$tpl_2->clear();
$tpl->result['info'] .= $tpl_2->result['info'];
}
function check_smartphone() {
if($_SESSION['mobile_enable'])
return true;
$phone_array = array('iphone', 'android', 'pocket', 'palm', 'windows ce', 'windowsce', 'cellphone', 'opera mobi', 'operamobi', 'ipod', 'small', 'sharp', 'sonyericsson', 'symbian', 'symbos', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 'smartphone', 'blackberry', 'playstation portable', 'tablet browser', 'android');
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach($phone_array as $value){
if(strpos($agent, $value) !== false)
return true;
}
return false;
}
function creat_system_cache($prefix, $cache_text){
$filename = ENGINE_DIR . '/cache/system/'.$prefix.'.php';
$fp = fopen($filename, 'wb+');
fwrite($fp,$cache_text);
fclose($fp);
@chmod($filename, 0666);
}
function system_cache($prefix) {
$filename = ENGINE_DIR.'/cache/system/'.$prefix.'.php';
return @file_get_contents($filename);
}
function mozg_clear_cache(){
$fdir = opendir(ENGINE_DIR.'/cache/'.$folder);
while($file = readdir($fdir))
if($file != '.' and $file != '..' and $file != '.htaccess' and $file != 'system')
@unlink(ENGINE_DIR.'/cache/'.$file);
}
function mozg_clear_cache_folder($folder){
$fdir = opendir(ENGINE_DIR.'/cache/'.$folder);
while($file = readdir($fdir))
@unlink(ENGINE_DIR.'/cache/'.$folder.'/'.$file);
}
function mozg_clear_cache_file($prefix) {
@unlink(ENGINE_DIR.'/cache/'.$prefix.'.tmp');
}
function mozg_mass_clear_cache_file($prefix){
$arr_prefix = explode('|', $prefix);
foreach($arr_prefix as $file)
@unlink(ENGINE_DIR.'/cache/'.$file.'.tmp');
}
function mozg_create_folder_cache($prefix){
if(!is_dir(ROOT_DIR.'/system/cache/'.$prefix)){
@mkdir(ROOT_DIR.'/system/cache/'.$prefix, 0777);
@chmod(ROOT_DIR.'/system/cache/'.$prefix, 0777);
}
}
function mozg_create_cache($prefix, $cache_text) {
$filename = ENGINE_DIR.'/cache/'.$prefix.'.tmp';
$fp = fopen($filename, 'wb+');
fwrite($fp, $cache_text);
fclose($fp);
@chmod($filename, 0666);
}
function mozg_cache($prefix) {
$filename = ENGINE_DIR.'/cache/'.$prefix.'.tmp';
return @file_get_contents($filename);
}
function clean_url($url) {
if( $url == '' ) return;
$url = str_replace( "http://", "", strtolower( $url ) );
$url = str_replace( "https://", "", $url );
if( substr( $url, 0, 4 ) == 'www.' ) $url = substr( $url, 4 );
$url = explode( '/', $url );
$url = reset( $url );
$url = explode( ':', $url );
$url = reset( $url );
return $url;
}
$domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] ));
$domain_cookie_count = count($domain_cookie);
$domain_allow_count = -2;
if($domain_cookie_count > 2){
if(in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') ))
$domain_allow_count = -3;
if($domain_cookie[$domain_cookie_count-1] == 'ua' )
$domain_allow_count = -3;
$domain_cookie = array_slice($domain_cookie, $domain_allow_count);
}
$domain_cookie = ".".implode(".", $domain_cookie);
define('DOMAIN', $domain_cookie);
function set_cookie($name, $value, $expires) {
if( $expires ) {
$expires = time() + ($expires * 86400);
} else {
$expires = FALSE;
}
if( PHP_VERSION < 5.2 ) {
setcookie($name, $value, $expires, "/", DOMAIN . "; HttpOnly");
} else {
setcookie($name, $value, $expires, "/", DOMAIN, NULL, TRUE);
}
}
function strip_data($text) {
$quotes = array ("x27", "x22", "x60", "t", "n", "r", "'", ",", "/", ";", ":", "@", "[", "]", "{", "}", "=", ")", "(", "*", "&", "^", "%", "$", "<", ">", "?", "!", '"' );
$goodquotes = array ("-", "+", "#" );
$repquotes = array ("-", "+", "#" );
$text = stripslashes( $text );
$text = trim( strip_tags( $text ) );
$text = str_replace( $quotes, '', $text );
$text = str_replace( $goodquotes, $repquotes, $text );
return $text;
}
function installationSelected($id, $options){
$source = str_replace('value="'.$id.'"', 'value="'.$id.'" selected', $options);
return $source;
}
function ajax_utf8($source){
return iconv('utf-8', 'windows-1251', $source);
}
function xfieldsdataload($id){
if( $id == "" ) return;
$xfieldsdata = explode( "||", $id );
foreach ( $xfieldsdata as $xfielddata ) {
list ( $xfielddataname, $xfielddatavalue ) = explode( "|", $xfielddata );
$xfielddataname = str_replace( "|", "|", $xfielddataname );
$xfielddataname = str_replace( "__NEWL__", "rn", $xfielddataname );
$xfielddatavalue = str_replace( "|", "|", $xfielddatavalue );
$xfielddatavalue = str_replace( "__NEWL__", "rn", $xfielddatavalue );
$data[$xfielddataname] = $xfielddatavalue;
}
return $data;
}
function profileload() {
$path = ENGINE_DIR.'/data/xfields.txt';
$filecontents = file($path);
if(!is_array($filecontents)){
exit('Невозможно загрузить файл');
}
foreach($filecontents as $name => $value){
$filecontents[$name] = explode("|", trim($value));
foreach($filecontents[$name] as $name2 => $value2){
$value2 = str_replace("|", "|", $value2);
$value2 = str_replace("__NEWL__", "rn", $value2);
$filecontents[$name][$name2] = $value2;
}
}
return $filecontents;
}
function NoAjaxQuery(){
if(clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST']) AND $_SERVER['REQUEST_METHOD'] != 'POST')
header('Location: /index.php?go=none');
}
function replace_rn($source){
$find[] = "'r'";
$replace[] = "";
$find[] = "'n'";
$replace[] = "";
$source = preg_replace($find, $replace, $source);
return $source;
}
function myBr($source){
$find[] = "'r'";
$replace[] = "<br />";
$find[] = "'n'";
$replace[] = "<br />";
$source = preg_replace($find, $replace, $source);
return $source;
}
function myBrRn($source){
$find[] = "<br />";
$replace[] = "r";
$find[] = "<br />";
$replace[] = "n";
$source = str_replace($find, $replace, $source);
return $source;
}
function rn_replace($source){
$find[] = "'r'";
$replace[] = "";
$find[] = "'n'";
$replace[] = "";
$source = preg_replace($find, $replace, $source);
return $source;
}
function gram_record($num,$type){
$strlen_num = strlen($num);
if($num <= 21){
$numres = $num;
} elseif($strlen_num == 2){
$parsnum = substr($num,1,2);
$numres = str_replace('0','10',$parsnum);
} elseif($strlen_num == 3){
$parsnum = substr($num,2,3);
$numres = str_replace('0','10',$parsnum);
} elseif($strlen_num == 4){
$parsnum = substr($num,3,4);
$numres = str_replace('0','10',$parsnum);
} elseif($strlen_num == 5){
$parsnum = substr($num,4,5);
$numres = str_replace('0','10',$parsnum);
}
if($type == 'rec'){
if($numres == 1){
$gram_num_record = 'запись';
} elseif($numres < 5){
$gram_num_record = 'записи';
} elseif($numres < 21){
$gram_num_record = 'записей';
} elseif($numres == 21){
$gram_num_record = 'запись';
}
}
if($type == 'comments'){
if($numres == 0){
$gram_num_record = 'комментариев';
} elseif($numres == 1){
$gram_num_record = 'комментарий';
} elseif($numres < 5){
$gram_num_record = 'комментария';
} elseif($numres < 21){
$gram_num_record = 'комментариев';
} elseif($numres == 21){
$gram_num_record = 'комментарий';
}
}
if($type == 'albums'){
if($numres == 0){
$gram_num_record = 'альбомов';
} elseif($numres == 1){
$gram_num_record = 'альбом';
} elseif($numres < 5){
$gram_num_record = 'альбома';
} elseif($numres < 21){
$gram_num_record = 'альбомов';
} elseif($numres == 21){
$gram_num_record = 'альбом';
}
}
if($type == 'photos'){
if($numres == 0){
$gram_num_record = 'фотографий';
} elseif($numres == 1){
$gram_num_record = 'фотография';
} elseif($numres < 5){
$gram_num_record = 'фотографии';
} elseif($numres < 21){
$gram_num_record = 'фотографий';
} elseif($numres == 21){
$gram_num_record = 'фотография';
}
}
if($type == 'friends_demands'){
if($numres == 0){
$gram_num_record = 'нет заявок в друзья';
} elseif($numres == 1){
$gram_num_record = 'заявка в друзья';
} elseif($numres < 5){
$gram_num_record = 'заявки в друзья';
} elseif($numres < 21){
$gram_num_record = 'заявок в друзья';
} elseif($numres == 21){
$gram_num_record = 'заявка в друзья';
}
}
if($type == 'user_age'){
if($numres == 0){
$gram_num_record = 'лет';
} elseif($numres == 1){
$gram_num_record = 'год';
} elseif($numres < 5){
$gram_num_record = 'года';
} elseif($numres < 21){
$gram_num_record = 'лет';
} elseif($numres == 21){
$gram_num_record = 'год';
}
}
if($type == 'friends'){
if($numres == 0){
$gram_num_record = 'нет друзей';
} elseif($numres == 1){
$gram_num_record = 'друг';
} elseif($numres < 5){
$gram_num_record = 'друга';
} elseif($numres < 21){
$gram_num_record = 'дурзей';
} elseif($numres == 21){
$gram_num_record = 'друг';
}
}
if($type == 'friends_online'){
if($numres == 0){
$gram_num_record = 'нет друзей';
} elseif($numres == 1){
$gram_num_record = 'друг на сайте';
} elseif($numres < 5){
$gram_num_record = 'друга на сайте';
} elseif($numres < 21){
$gram_num_record = 'дурзей на сайте';
} elseif($numres == 21){
$gram_num_record = 'друг на сайте';
}
}
if($type == 'fave'){
if($numres == 0){
$gram_num_record = 'нет людей';
} elseif($numres == 1){
$gram_num_record = 'человек';
} elseif($numres < 5){
$gram_num_record = 'человека';
} elseif($numres < 21){
$gram_num_record = 'человек';
} elseif($numres == 21){
$gram_num_record = 'человек';
}
}
if($type == 'prev'){
if($numres == 0){
$gram_num_record = 'нет комментариев';
} elseif($numres == 1){
$gram_num_record = 'предыдущий';
} elseif($numres < 5){
$gram_num_record = 'предыдущие';
} elseif($numres < 21){
$gram_num_record = 'предыдущие';
} elseif($numres == 21){
$gram_num_record = 'предыдущий';
}
}
if($type == 'subscr'){
if($numres == 0){
$gram_num_record = 'нет подписчиков';
} elseif($numres == 1){
$gram_num_record = 'подписка';
} elseif($numres < 5){
$gram_num_record = 'подписки';
} elseif($numres < 21){
$gram_num_record = 'подписок';
} elseif($numres == 21){
$gram_num_record = 'подписка';
}
}
if($type == 'videos'){
if($numres == 0){
$gram_num_record = 'нет видеозаписей';
} elseif($numres == 1){
$gram_num_record = 'видеозапись';
} elseif($numres < 5){
$gram_num_record = 'видеозаписи';
} elseif($numres < 21){
$gram_num_record = 'видеозаписей';
} elseif($numres == 21){
$gram_num_record = 'видеозапись';
}
}
if($type == 'notes'){
if($numres == 0){
$gram_num_record = 'нет игр';
} elseif($numres == 1){
$gram_num_record = 'игра';
} elseif($numres < 5){
$gram_num_record = 'игры';
} elseif($numres < 21){
$gram_num_record = 'игр';
} elseif($numres == 21){
$gram_num_record = 'игра';
}
}
if($type == 'like'){
if($numres == 0){
$gram_num_record = 'человеку';
} elseif($numres == 1){
$gram_num_record = 'человеку';
} elseif($numres < 5){
$gram_num_record = 'людям';
} elseif($numres < 21){
$gram_num_record = 'людям';
} elseif($numres == 21){
$gram_num_record = 'человеку';
}
}
if($type == 'updates'){
if($numres == 0){
$gram_num_record = '';
} elseif($numres == 1){
$gram_num_record = 'человека';
} elseif($numres < 5){
$gram_num_record = 'человек';
} elseif($numres < 21){
$gram_num_record = 'человек';
} elseif($numres == 21){
$gram_num_record = 'человека';
}
}
if($type == 'msg'){
if($numres == 1){
$gram_num_record = 'сообщение';
} elseif($numres < 5){
$gram_num_record = 'сообщения';
} elseif($numres < 21){
$gram_num_record = 'сообщений';
} elseif($numres == 21){
$gram_num_record = 'сообщение';
}
}
if($type == 'questions'){
if($numres == 1){
$gram_num_record = 'вопрос';
} elseif($numres < 5){
$gram_num_record = 'вопроса';
} elseif($numres < 21){
$gram_num_record = 'вопросов';
} elseif($numres == 21){
$gram_num_record = 'вопрос';
}
}
if($type == 'gifts'){
if($numres == 1){
$gram_num_record = 'подарок';
} elseif($numres < 5){
$gram_num_record = 'подарка';
} elseif($numres < 21){
$gram_num_record = 'подарков';
} elseif($numres == 21){
$gram_num_record = 'подарок';
}
}
if($type == 'groups_users'){
if($numres == 1){
$gram_num_record = 'участник';
} elseif($numres < 5){
$gram_num_record = 'участника';
} elseif($numres < 21){
$gram_num_record = 'участников';
} elseif($numres == 21){
$gram_num_record = 'участник';
}
}
if($type == 'groups'){
if($numres == 1){
$gram_num_record = 'сообществе';
} elseif($numres < 5){
$gram_num_record = 'сообществах';
} elseif($numres < 21){
$gram_num_record = 'сообществах';
} elseif($numres == 21){
$gram_num_record = 'сообществе';
}
}
if($type == 'subscribers'){
if($numres == 1){
$gram_num_record = 'подписчик';
} elseif($numres < 5){
$gram_num_record = 'подписчика';
} elseif($numres < 21){
$gram_num_record = 'подписчиков';
} elseif($numres == 21){
$gram_num_record = 'подписчик';
}
}
if($type == 'subscribers2'){
if($numres == 1){
$gram_num_record = 'Подписался <span id="traf2">'.$num.'</span> человек';
} elseif($numres < 5){
$gram_num_record = 'Подписались <span id="traf2">'.$num.'</span> человека';
} elseif($numres < 21){
$gram_num_record = 'Подписались <span id="traf2">'.$num.'</span> человек';
} elseif($numres == 21){
$gram_num_record = 'Подписался <span id="traf2">'.$num.'</span> человек';
}
}
if($type == 'feedback'){
if($numres == 1){
$gram_num_record = 'контакт';
} elseif($numres < 5){
$gram_num_record = 'контакта';
} elseif($numres < 21){
$gram_num_record = 'контактов';
} elseif($numres == 21){
$gram_num_record = 'контакт';
}
}
if($type == 'se_groups'){
if($numres == 1){
$gram_num_record = 'сообщество';
} elseif($numres < 5){
$gram_num_record = 'сообщества';
} elseif($numres < 21){
$gram_num_record = 'сообществ';
} elseif($numres == 21){
$gram_num_record = 'сообщество';
}
}
if($type == 'audio'){
if($numres == 1){
$gram_num_record = 'песня';
} elseif($numres < 5){
$gram_num_record = 'песни';
} elseif($numres < 21){
$gram_num_record = 'песен';
} elseif($numres == 21){
$gram_num_record = 'песня';
}
}
if($type == 'apps'){
if($numres == 0){
$gram_num_record = 'участников';
} elseif($numres == 1){
$gram_num_record = 'участник';
} elseif($numres < 5){
$gram_num_record = 'участника';
} elseif($numres < 21){
$gram_num_record = 'участников';
} elseif($numres == 21){
$gram_num_record = 'участник';
}
}
if($type == 'video_views'){
if($numres == 1){
$gram_num_record = 'просмотр';
} elseif($numres < 5){
$gram_num_record = 'просмотра';
} elseif($numres < 21){
$gram_num_record = 'просмотров';
} elseif($numres == 21){
$gram_num_record = 'просмотр';
}
}
return $gram_num_record;
}
function gramatikName($source){
$name_u_gram = $source;
$str_1_name = strlen($name_u_gram);
$str_2_name = $str_1_name-2;
$str_3_name = substr($name_u_gram, $str_2_name, $str_1_name);
$str_5_name = substr($name_u_gram, 0, $str_2_name);
$str_4_name = strtr($str_3_name,array(
'ай' => 'ая',
'ил' => 'ила',
'др' => 'дра',
'ей' => 'ея',
'кс' => 'кса',
'ша' => 'ши',
'на' => 'ны',
'ка' => 'ки',
'ад' => 'ада',
'ма' => 'мы',
'ля' => 'ли',
'ня' => 'ни',
'ин' => 'ина',
'ик' => 'ика',
'ор' => 'ора',
'им' => 'има',
'ём' => 'ёма',
'ий' => 'ия',
'рь' => 'ря',
'тя' => 'ти',
'ся' => 'си',
'из' => 'иза',
'га' => 'ги',
'ур' => 'ура',
'са' => 'сы',
'ис' => 'иса',
'ст' => 'ста',
'ел' => 'ла',
'ав' => 'ава',
'он' => 'она',
'ра' => 'ры',
'ан' => 'ана',
'ир' => 'ира',
'рд' => 'рда',
'ян' => 'яна',
'ов' => 'ова',
'ла' => 'лы',
'ия' => 'ии',
'ва' => 'вой',
'ыч' => 'ыча'
));
$name_user_gram = $str_5_name.$str_4_name;
return $name_user_gram;
}
function Hacking(){
global $ajax, $lang;
if($ajax){
NoAjaxQuery();
echo <<<HTML
<script type="text/javascript">
document.title = '{$lang['error']}';
document.getElementById('speedbar').innerHTML = '{$lang['error']}';
document.getElementById('page').innerHTML = '{$lang['no_notes']}';
</script>
HTML;
die();
} else
return header('Location: /index.php?go=none');
}
function textFilter($source, $substr_num = false, $strip_tags = false){
global $db;
if(function_exists("get_magic_quotes_gpc") AND get_magic_quotes_gpc())
$source = stripslashes($source);
$find = array('/data:/i', '/about:/i', '/vbscript:/i', '/onclick/i', '/onload/i', '/onunload/i', '/onabort/i', '/onerror/i', '/onblur/i', '/onchange/i', '/onfocus/i', '/onreset/i', '/onsubmit/i', '/ondblclick/i', '/onkeydown/i', '/onkeypress/i', '/onkeyup/i', '/onmousedown/i', '/onmouseup/i', '/onmouseover/i', '/onmouseout/i', '/onselect/i', '/javascript/i');
$replace = array("data:", "about:", "vbscript<b></b>:", "onclick", "onload", "onunload", "onabort", "onerror", "onblur", "onchange", "onfocus", "onreset", "onsubmit", "ondblclick", "onkeydown", "onkeypress", "onkeyup", "onmousedown", "onmouseup", "onmouseover", "onmouseout", "onselect", "javascript");
$source = preg_replace("#<iframe#i", "<iframe", $source);
$source = preg_replace("#<script#i", "<script", $source);
if(!$substr_num)
$substr_num = 25000;
$source = $db->safesql(myBr(htmlspecialchars(substr(trim($source), 0, $substr_num))));
$source = str_ireplace("{", "{", $source);
$source = str_ireplace("`", "`", $source);
$source = str_ireplace("{theme}", "{theme}", $source);
$source = preg_replace($find, $replace, $source);
if($strip_tags)
$source = strip_tags($source);
return $source;
}
function user_age($user_year, $user_month, $user_day){
global $server_time;
if($user_year){
$current_year = date('Y', $server_time);
$current_month = date('n', $server_time);
$current_day = date('j', $server_time);
$current_str = strtotime($current_year.'-'.$current_month.'-'.$current_day);
$current_user = strtotime($current_year.'-'.$user_month.'-'.$user_day);
if($current_str >= $current_user)
$user_age = $current_year-$user_year;
else
$user_age = $current_year-$user_year-1;
if($user_month AND $user_month AND $user_day)
return $user_age.' '.gram_record($user_age, 'user_age');
else
return false;
}
}
function megaDate($date, $func = false, $full = false){
global $tpl, $server_time;
$date_comm = $date;
if(date('Y-m-d', $date_comm) == date('Y-m-d', $server_time))
return $tpl->set('{date}', langdate('сегодня в H:i', $date_comm));
elseif(date('Y-m-d', $date_comm) == date('Y-m-d', ($server_time-84600)))
return $tpl->set('{date}', langdate('вчера в H:i', $date_comm));
else
if($func == 'no_year')
return $tpl->set('{date}', langdate('j M в H:i', $date_comm));
else
if($full)
return $tpl->set('{date}', langdate('j F Y в H:i', $date_comm));
else
return $tpl->set('{date}', langdate('j M Y в H:i', $date_comm));
}
function megaDateNoTpl($date, $func = false, $full = false){
global $server_time;
if(date('Y-m-d', $date) == date('Y-m-d', $server_time))
return $date = langdate('сегодня в H:i', $date);
elseif(date('Y-m-d', $date) == date('Y-m-d', ($server_time-84600)))
return $date = langdate('вчера в H:i', $date);
else
if($func == 'no_year')
return $date = langdate('j M в H:i', $date);
else
if($full)
return $date = langdate('j F Y в H:i', $date);
else
return $date = langdate('j M Y в H:i', $date);
}
function OnlineTpl($time){
global $tpl, $online_time, $lang;
if($time >= $online_time)
return $tpl->set('{online}', $lang['online']);
else
return $tpl->set('{online}', '');
}
function AjaxTpl(){
global $tpl, $config;
echo str_replace('{theme}', '/templates/'.$config['temp'], $tpl->result['info'].$tpl->result['content']);
}
function GenerateAlbumPhotosPosition($uid, $aid = false){
global $db;
//Выводим все фотографии из альбома и обновляем их позицию только для просмотра альбома
if($uid AND $aid){
$sql_ = $db->super_query("SELECT SQL_CALC_FOUND_ROWS id FROM `".PREFIX."_photos` WHERE album_id = '{$aid}' ORDER by `position` ASC", 1);
$count = 1;
foreach($sql_ as $row){
$db->query("UPDATE LOW_PRIORITY `".PREFIX."_photos` SET position = '{$count}' WHERE id = '{$row['id']}'");
$photo_info .= $count.'|'.$row['id'].'||';
$count++;
}
mozg_create_cache('user_'.$uid.'/position_photos_album_'.$aid, $photo_info);
}
}
function CheckFriends($friendId){
global $user_info;
$openMyList = mozg_cache("user_{$user_info['user_id']}/friends");
if(stripos($openMyList, "id{$friendId}|") !== false)
return true;
else
return false;
}
function CheckBlackList($userId){
global $user_info;
$openMyList = mozg_cache("user_{$userId}/blacklist");
if(stripos($openMyList, "|{$user_info['user_id']}|") !== false)
return true;
else
return false;
}
function MyCheckBlackList($userId){
global $user_info;
$openMyList = mozg_cache("user_{$user_info['user_id']}/blacklist");
if(stripos($openMyList, "|{$userId}|") !== false)
return true;
else
return false;
}
function showland($city){
global $db, $config, $lang, $user_group, $user_info;
$sql_floods = $db->query("SELECT id, name FROM " . PREFIX . "_city WHERE id = '$city'");
while ($rows = $db->get_row($sql_floods)){
$link .= $rows['name'];
}
$city = $link;
$db->free();
return $city;
}
function format_date_html($mysql_date,$bdate_view)
{
$array=explode('-',$mysql_date);
$month['01']='января';
$month['02']='февраля';
$month['03']='марта';
$month['04']='апреля';
$month['05']='мая';
$month['06']='июня';
$month['07']='июля';
$month['08']='августа';
$month['09']='сентября';
$month['10']='октября';
$month['11']='ноября';
$month['12']='декабря';
if($array[2]<10)
{
$array[2]=str_replace(0,'',$array[2]);
}
switch ($bdate_view)
{
case '0' :
return $array[2] . ' ' . $month[$array[1]] . ' ' . $array[0] . ' года';
break;
case '1' :
return $array[2] . ' ' . $month[$array[1]];
break;
case '2' :
return 'Скрыто';
break;
}
}
function check_ip($ips){
$_IP = $_SERVER['REMOTE_ADDR'];
$blockip = FALSE;
if(is_array($ips)){
foreach($ips as $ip_line){
$ip_arr = rtrim($ip_line['ip']);
$ip_check_matches = 0;
$db_ip_split = explode(".", $ip_arr);
$this_ip_split = explode(".", $_IP);
for($i_i = 0; $i_i < 4; $i_i ++){
if($this_ip_split[$i_i] == $db_ip_split[$i_i] or $db_ip_split[$i_i] == '*'){
$ip_check_matches += 1;
}
}
if($ip_check_matches == 4){
$blockip = $ip_line['ip'];
break;
}
}
}
return $blockip;
}
?>