Вход Регистрация
Файл: system/class/func.php
Строк: 350
<?
////////////////////////////////////////////////////////////////
////////////////Файл,отвечающий за функции и операции///////////
////////////////////////////////////////////////////////////////
//////////////////инклуды функций///////////////////////////////
//Кодировщик (+работа с переменными)
include ROOT.'system/class/shit.php';
////////////////////////////////////////////////////////////////
/////////////////вспомогательные функциии///////////////////////
////////////////////////////////////////////////////////////////
///Время в зависимости от GMT,установленного пользователем(если это позволил администратор)
function ustime($user_gmt=null,$time=null)
{
global 
$db;
if(
$user_gmt==null)$user_gmt=$db->settings('gmt'); else $user_gmt=$user_gmt;
if(
$time==null)$time_view=time()+$user_gmt; else $time_view=$time+$user_gmt;
//проверяем,может ли пользователь устанавливать свой gmt и задана ли зона gmt
if($db->settings('gmt_user')=='yes' and $user_gmt!=null){
//проверяем равны ли зоны gmt системы и указанной(если равны,то не выполняем действия)
if($db->settings('gmt')!=$user_gmt){
$time_view=$time_view+$user_gmt;
}
}
return 
$time_view;
}
//вывод GMT в формате GMT+##
function gmt($array,$gmt=null){
global 
$db;
if(
$gmt==null)$gmt=$db->settings('gmt'); else $gmt=$gmt;

foreach (
$array as $key => $value) {
if ($
$gmt == $key$gmt_text $value;
}
return 
$gmt_text;
}
///обработка бб-кода изображений
function img($img){
$file shit('http://'.$img[1]);
ini_set('display_errors','Off');
error_reporting('E_ALL');
if(
preg_match("#http://(.*)(/)([a-zA-Z_0-9.])+(gif|png|jpg|jpeg)#ui",$file)){
$ext strtolower(pathinfo($filePATHINFO_EXTENSION));
if(
$ext == 'gif' or $ext == 'jpeg' or $ext == 'jpg' or $ext == 'png'){
$img=' <a href="'.$file.'"/><img src="'.$file.'" alt="'.language('Изображение').'" width="65" height="45" style="padding:5px;"/></a> ';
}else 
$img='['.language('Изображение не найдено').']';
}else 
$img='['.language('Изображение не найдено').']'
ini_set('display_errors','On');
return 
$img;
}
///обработка файла
function file_download($file){
global 
$db;
$array $db -> query("SELECT `name` FROM `files` WHERE `id` = '".abs(intval($file[1]))."'");
if(
$array->num_rows>0){
$file_sql=$array->fetch_assoc();
if(
$file[2]==null)$file_name=$file_sql['name']; else $file_name=$file[2];
$download='<a href="'.ROOT.'download'.$file[1].'">'.$file_name.'</a>';
return 
$download;
}else return 
false;
}
//Функция вывода Имя Фамилия или если не указаны-просто ник
function user_id($id) {
global 
$db;
$id=abs(intval($id[1]));
$arr $db -> query("SELECT `login`,`name`,`fami` FROM `users` WHERE `id` = '".$id."'")->fetch_array();
if (
$arr0){
if(
mb_strlen($arr['name'])>or mb_strlen($arr['fami'])>0)
{
$log='<a href="'.ROOT.'id'.$id.'"/>'.$arr['name'].' '.$arr['fami'].'</a>';
}else{
$log='<a href="'.ROOT.'id'.$id.'"/>'.$arr['login'].'</a>';
}
}else 
$log=null;
return 
$log;
}
///YouTube видео
function youtube($url){
///**преобразуем
$url[1] = preg_replace('#(.*)/#si'''$url[1]);
$url[1] = preg_replace('#(.*)v=#si'''$url[1]);
//Видео с YouTube
return '<video width="640" height="360" preload="none" controls playsinline webkit-playsinline>
<source type="video/youtube" src="http://www.youtube.com/watch?v='
.$url[1].'" />
</video>'
;
}
/////////////////////////////////////////////////////////
//////////////Класс//////////////////////////////////////
///////////////////работы////////////////////////////////
///////////////////////с/////////////////////////////////
/////////////////////основными///////////////////////////
/////////////////////////функциями///////////////////////
/////////////////////////////////////////////////////////
final class func {
///Создание капчи
function capcha($activate=false,$num=4){
global 
$db;
$nas $db -> query("SELECT `name`,`parametr` FROM `settings` where `name`='capcha' or `name`='captcha_eazy'");
while (
$assoc $nas -> fetch_assoc()) {
$nastr[$assoc['name']]=$assoc['parametr'];
}
if(
$nastr['capcha']==or $activate==true){
if(
$nastr['captcha_eazy']==1)$array = array('1','2','3','4','5','6','7','8','9');
if(
$nastr['captcha_eazy']==2)$array = array('w','e','r','t','y','u','p','a','s','d','f','h','j','k','z','x','c','v','b','n','m');
if(
$nastr['captcha_eazy']==3)$array = array('1','2','3','4','5','6','7','8','9','w','e','r','t','y','u','p','a','s','d','f','h','j','k','z','x','c','v','b','n','m');
$i $cod null;
while (
$i $num) {
$cod .= $array[array_rand($array)];
++
$i;
}
$capcha $cod;
}else 
$capcha=null;
return 
$capcha;
}
///функция для вывода формы мультизагрузки файлов
public function upload($type='other'){
$array=array('photo','other');
if(
in_array($type,$array)==false)$type='other';
echo 
'<div class="fon">
<div id="upload" class="upload">'
.language('Выберите файл').'</div>
<div id="type_upload" style="display:none;">'
.$type.'</div>
<span id="status" class="upload_errore"></span>
</div>'
;
}
//функция со склонением в зависимости от числа
public function GetName ($col,$name_one,$name_two,$name_three) {
    
$col abs($col) % 100;
    
$intval $col 10;
    if (
$col 10 && $col 20) {
        return 
$col.' '.language($name_three); exit;
    }
    else if (
$intval && $intval 5) {
        return 
$col.' '.language($name_two); exit;
    }
    else if (
$intval == 1) {
        return 
$col.' '.language($name_one); exit;
    }
    return 
$col.' '.language($name_three);
}
////функции транслита
function translate ($text,$type=0){
//убираем лишнее
$text strtr($text,array('ь' => '','ъ' => '','_' => ' '));
    
$alfavit = array(
            
'а' => 'a',   'б' => 'b',   'в' => 'v',
            
'г' => 'g',   'д' => 'd',   'е' => 'e',
            
'ё' => 'yo',   'ж' => 'zh',  'з' => 'z',
            
'и' => 'i',   'й' => 'j',   'к' => 'k',
            
'л' => 'l',   'м' => 'm',   'н' => 'n',
            
'о' => 'o',   'п' => 'p',   'р' => 'r',
            
'с' => 's',   'т' => 't',   'у' => 'u',
            
'ф' => 'f',   'х' => 'kh',   'ц' => 'c',
            
'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
            
'ы' => 'y',
            
'э' => 'eh',   'ю' => 'yu',  'я' => 'ya',
            
'А' => 'A',   'Б' => 'B',   'В' => 'V',
            
'Г' => 'G',   'Д' => 'D',   'Е' => 'E',  
            
'Ё' => 'YO',  'Ж' => 'Zh',  'З' => 'Z',
            
'И' => 'I',   'Й' => 'J',   'К' => 'K',
            
'Л' => 'L',   'М' => 'M',   'Н' => 'N',
            
'О' => 'O',   'П' => 'P',   'Р' => 'R',
            
'С' => 'S',   'Т' => 'T',   'У' => 'U',
            
'Ф' => 'F',   'Х' => 'KH',   'Ц' => 'C',
            
'Ч' => 'CH',  'Ш' => 'SH',  'Щ' => 'SCH',
            
'Ы' => 'Y',
            
'Э' => 'EH',   'Ю' => 'YU',  'Я' => 'YA');
       
///перевод c кирилицы на латиницу
       
if($type==1){
       
$text strtr($text,$alfavit);
       
///перевод c латиницы на кирилицу
       
}else{
       
$text strtr($text,array_flip($alfavit));
       }        
       return 
$text;
}
//Размер файла
public function size($file) {
    if (
$file >= 1048576000) {
        
$file round(($file 1073741824), 2)." Gb";
    } elseif (
$file >= 1024000) {
        
$file round(($file 1048576), 2)." Mb";
    } elseif (
$file >= 1000) {
        
$file round(($file 1024), 2)." Kb";
    } else {
        
$file round($file)." byte";
    } 
    return 
$file;

//получаем адрес файла по id
public function file_url($id){
global 
$db;
$sql $db -> query("SELECT `what`,`url` FROM `files` WHERE `id` = '".$id."' LIMIT 1");
if (
$sql -> num_rows 0) {
$file=$sql->fetch_assoc();
$file_url=ROOT.'downloads/'.$file['what'].'/'.$file['url'];
    if (
file_exists($file_url)) {
        return 
$file_url;
    }
    }
return 
false;
}
///округлениче значения
public function kol($kol){
if(
round($kol/1000)>0)$kol=round($kol/1000).'k+'///если больше 1 000,то выводим количество тысяч+
return $kol;
}
//Месяца 
public function mes($mon,$type=1) {
if(
$type==1){
$mon strtr($mon,array('1' => 'Января''2' => 'Февраля''3' => 'Марта''4' => 'Апреля',
'5' => 'Мая''6' => 'Июня''7' => 'Июля''8' => 'Августа''9' => 'Сентября','10' => 'Октября',
'11' => 'Ноября''12' => 'Декабря'));
}else{
$mon strtr($mon,array('1' => 'Январь''2' => 'Февраль''3' => 'Март''4' => 'Апрель',
'5' => 'Май''6' => 'Июнь''7' => 'Июль''8' => 'Август''9' => 'Сентябрь','10' => 'Октябрь',
'11' => 'Ноябрь''12' => 'Декабрь'));
}
return 
language($mon);
}
//Определение дня недели
public function date_day($date) {
$date=strftime("%w"strtotime(date('Y-m-d',$date)));
$date strtr($date,array('1' => 'Понедельник''2' => 'Вторник''3' => 'Среда''4' => 'Четверг',
'5' => 'Пятница''6' => 'Суббота''0' => 'Воскресение'));
return 
language($date);
}
//Перевод времени
public function times($time) {
$dat explode(' ',$time);
if (
$dat[0]{0} == '0'$dat[0] = substr($dat[0],1);
$dat[1] = strtr($dat[1],array('01' => language('Января'), '02' => language('Февраля'), '03' => language('Марта'), '04' => language('Апреля'),
'05' => language('Мая'), '06' => language('Июня'), '07' => language('Июля'), '08' => language('Августа'), '09' => language('Сентября'),'10' => language('Октября'),
'11' => language('Ноября'), '12' => language('Декабря')));
$time implode(' ',$dat);
return 
$time;
}
///плеер
public function player($url,$type,$width=320,$height=240,$preload="none",$loop="") {
if(
$type!=1)$ext strtolower(pathinfo('/'.$urlPATHINFO_EXTENSION));
//Видео с YouTube
if($type==1){
///**преобразуем
$url preg_replace('#(.*)/#si'''$url);
$url preg_replace('#(.*)v=#si'''$url);
return 
'<video class="player"  width="'.$width.'" height="'.$height.'"  controls="controls" preload="'.$preload.'" '.$loop.'/>
<source type="video/youtube" src="http://www.youtube.com/watch?v='
.$url.'" />
</video>'
;
}
//обычное видео формата mp4
if($type==and $ext=='mp4'){
return 
'<video class="player" width="'.$width.'" height="'.$height.'"  controls="controls" preload="'.$preload.'" '.$loop.'/>
<source src="'
.$url.'" type="video/mp4" codecs="avc1.42E01E, mp4a.40.2"/>
</video>'
;
}
///аудиофайл формата mp3
if($type==and $ext=='mp3'){
return 
'<audio class="player" controls="control" preload="'.$preload.'" '.$loop.'/>
<source src="'
.$url.'" type="audio/mp3"/>
</audio>'
;
}
}
//Функция со временем
public function vremja($time,$user_gmt=null) {
global 
$db;
if(
$user_gmt==null or $db->settings('gmt_user')!='yes' or $db->settings('gmt')==$user_gmt){
$time=$time+$db->settings('gmt');
$world_time=ustime($user_gmt); 
}else{
$time=$time+$user_gmt;
$world_time=ustime($user_gmt);
}
$timep gmdate('d M Y H:i'$time);
$time_p[0] = gmdate('d M Y'$time);
$time_p[1] = gmdate('H:i'$time);
$time_p[2] = gmdate('H:i:s'$time);
if (
$time_p[0] == gmdate('d M Y',$world_time)) $timep language('Сегодня в').' '.$time_p[1];
if (
$time_p[0] == gmdate('d M Y',$world_time-86400)) $timep language('Вчера в').' '.$time_p[1];
if (
$time_p[0] == gmdate('d M Y',$world_time-172800)) $timep language('Позавчера в').' '.$time_p[1];
$timep str_replace(array('Jan','Feb','Mar','May','Apr','Jun','Jul','Aug','Sep','Oct','Nov','Dec'),
array(
language('Января'),language('Февраля'),language('Марта'),language('Мая'),language('Апреля'),language('Июня'),language('Июля'),language('Августа'),language('Сентября'),language('Октября'),language('Ноября'),language('Декабря')),$timep);
return 
$timep;
}
///Перевод секунд в нужный формат
public function ontime($string) { 
if(
floor($string/86400)>0){$day=floor($string/86400).'д. ';}else{$day=null;}
$hours=floor(($string/3600)-$day*24); 
$min=floor(($string-$hours*3600-$day*86400)/60); 
$sec=$string-($min*60+$hours*3600+$day*86400); 
if(
$hours>0)$hours=$hours.'ч.';else $hours=null;
if(
$min>0)$min=$min.'м.';else $min=null;
if(
$sec>0)$sec=$sec.'сек.';else $sec=null;
return 
$day.''.$hours.' '.$min.' '.$sec.'';
}
// Вырезание bb-кодов из цитаты
public function nobb($text '') {
    
$text strtr($text, array('[c]' => '''[/c]' => '','[blue]' => '''[/blue]' => ''));
    return 
$text;
}
// Вырезание пробелов
public function delprobel($text '') {
    
$text   =  trim($text);
    
$text   =  strtr($text, array(' ' => ''));
    return 
$text;
}
// Вырезание ненужных символов
public function delsim($text '') {
    
$text strtr($text, array('%' => '','_' => ''));
    return 
$text;
}
// Замена точек на _
public function perf($text) {
    
$text strtr($text, array('.' => '_'));
    return 
$text;
}
////Корректировка html переносов
function br($msg,$decoding=false)
{
if(
$decoding==false){
$search = array("<br />");
$replace = array('');
}else{
$search = array("&lt;br/&gt;");
$replace = array('<br/>');
}
$msg str_replace($search$replace$msg);
return 
$msg;
}
///определение максимальновозможного импорта
public function max_import($max){
$max=$max*1024*1024;
return 
$max;
}
///обработка checkbox
public function checkbox_read($value,$true,$false){
if(isset(
$value) and $value!=null)return $true; else return $false;
}
///bb-коды
public function tags($var)
{
global 
$db;
if(
$db->settings('bbcodes')=='on'){
$var preg_replace('#[b](.*?)[/b]#si''<b/>1</b>'$var);
$var preg_replace('#[i](.*?)[/i]#si''<em>1</em>'$var);
$var preg_replace('#[u](.*?)[/u]#si''<u/>1</u>'$var);
$var preg_replace('#[s](.*?)[/s]#si''<s/>1</s>'$var);
$var preg_replace('#[ind](.*?)[/ind]#si''<span style="margin-left: 20px"/>1</span>'$var);
$var preg_replace('|[color=([A-z0-9-#]+)](.*?)[/color]|','<span style="color:$1;">$2</span>'$var);
$var preg_replace('#[c](.*?)[/c]#si''<div class="cit"/>1 </div>'$var);  
$var preg_replace('/[url](?:http://)?(.*?)[/url]/'' <a href="'.ROOT.'exit.php?mode=1&do=1&act='.shit($_SERVER['REQUEST_URI']).'"/> 1 </a> '$var);
$var preg_replace('/[urls?=s?(['"]?)(?:http://)?(.*?)1](.*?)[/url]/', ' <a href="http://$2"/> $3 </a> ', $var);
$var preg_replace_callback("|[img=(?:http://)?(.*?)]|",'img'$var);
$var preg_replace_callback("/[file=([0-9]+)](.*?)[/file]/",'file_download'$var);
$var preg_replace_callback("/[file]([0-9]+)[/file]/",'file_download'$var);
$var preg_replace_callback("|[user:(.+)]|",'user_id'$var);
$var preg_replace_callback("/[youtube](?:http://)?(.*?)[/youtube]/",'youtube'$var);
$var preg_replace("#[size=([0-9])](.+)[/size]#",'<font size="1"/>2</font>'$var);
$var preg_replace("#[left](.+)[/left]#",'<p style="text-align:left"/>1</p>'$var);
$var preg_replace("#[center](.+)[/center]#",'<p style="text-align:center"/>1</p>'$var);
$var preg_replace("#[right](.+)[/right]#",'<p style="text-align:right"/>1</p>'$var);
return 
$var;
}else return 
$var;
}
////Копирайт на фотографии
public function copy($file,$papka,$text
{
global 
$db;
if(
$db->settings('copyright')=='yes'){
$path pathinfo($papka.$file);
if (
$path['extension'] == 'gif') {
$create ImageCreateFromGif($papka.$file);
$type 'ImageGif';}
else if (
$path['extension'] == 'jpg' || $path['extension'] == 'jpeg') {
$create ImageCreateFromJpeg($papka.$file);
$type 'ImageJpeg';}        
if (
$create) {
$color ImageColorALLocate($create,255,255,255);
$padding imageSY($create) - (8);                
ImageString($createintval(2), ImageSX($create) -(iconv_strlen($text) * 8), $paddinghtmlspecialchars($text), $color);
$type($create$papka.$file100);            
}
}
}
////Функция АнтиПост
public function antipost($text){
global 
$db;
$s $db -> query("SELECT `mess`,`messoff` FROM `antimessage`");
while (
$anti $s -> fetch_assoc()) {
$text preg_replace('/('.$anti['mess'].')/iu',$anti['messoff'],$text);    
}
return 
$text;
}
//Навигация
public function pagenav($act,$page,$total) {
// Проверяем нужны ли стрелки назад  
if ($page != 1$pervpage ' <a class="page_nave" href="'.$act.'&page=1"><<</a>  
                               <a class="page_nave" href="'
.$act.'&page='. ($page 1) .'"><</a>  ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total$nextpage ' <a class="page_nave" href="'.$act.'&page='. ($page 1) .'">></a>   <a class="page_nave" href="'.$act.'&page=' .$total'">>></a>';  
// Находим три ближайшие станицы с обоих краев, если они есть  
if($page 0$page3left ' <a class="page_nave" href="'.$act.'&page='. ($page 3) .'">'. ($page 3) .'</a>  ';  
if(
$page 0$page2left ' <a class="page_nave" href="'.$act.'&page='. ($page 2) .'">'. ($page 2) .'</a>  ';  
if(
$page 0$page1left ' <a class="page_nave" href="'.$act.'&page='. ($page 1) .'">'. ($page 1) .'</a>  ';  
if(
$page <= $total$page3right '  <a class="page_nave" href="'.$act.'&page='. ($page 3) .'">'. ($page 3) .'</a>';  
if(
$page <= $total$page2right '  <a class="page_nave" href="'.$act.'&page='. ($page 2) .'">'. ($page 2) .'</a>';  
if(
$page <= $total$page1right '  <a class="page_nave" href="'.$act.'&page='. ($page 1) .'">'. ($page 1) .'</a>'
// Вывод страниц
$nav $pervpage.$page3left.$page2left.$page1left.' <span class="page_now"><b>'.$page.'</b></span> '.$page1right.$page2right.$page3right.$nextpage;
$class'<div class="page">'.$nav.'</div>';
if(
$page != $total or $page != 1){
return 
$class;
}
}
//Навигация тип 2
public function next_prev($act,$page,$total) {
if(
$page 0$back ' <a class="button_menu" href="'.$act.'&page='. ($page 1) .'">'.language('Показать предыдущее').'</a>  ';  
if(
$page <= $total$next '  <a class="button_menu" href="'.$act.'&page='. ($page 1) .'">'.language('Показать следующее').'</a>'
if(
$page != $total or $page != 1){
return 
'<div class="but_menu">'.$back.''.$next.'</div>';
}
}
}
?>
Онлайн: 0
Реклама