View file wu-engine/wu-functions/wu_functions.php

File size: 6.24Kb
<?php

//Умная дата
function wudate($time=0) {
$param = 'j M Y в H:i';
$param2 = ' в H:i';
$nowt = time();
$minused = $nowt - $time;
if(intval($time)==0) { $time=time(); }
$MN = array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
$MonthNames[]=$MN[date('n',$time)-1];
$MN=array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
$MonthNames[]=$MN[date('w',$time)];
$arr[]='M';
$arr[]='N';
if ($minused < 60) { return $minused.' '.wu_end($minused, array('секунду', 'секунды', 'секунд')).' назад'; }
elseif ($minused < 3600) { return round($minused/60).' '.wu_end(round($minused/60), array('минуту', 'минуты', 'минут')).' назад'; }
elseif ($minused < 86400) { return round($minused/3600).' '.wu_end(round($minused/3600), array('час', 'часа', 'часов')).' назад'; }
elseif ($minused < 172800) { return 'Вчера'.date(str_replace($arr,$MonthNames,$param2), $time);; }
else { return date(str_replace($arr,$MonthNames,$param), $time); }
}

//Нормальная дата
function wudatenorm($time=0) {
$param = 'j M Y в H:i';
if(intval($time)==0) { $time=time(); }
$MN = array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
$MonthNames[]=$MN[date('n',$time)-1];
$MN=array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота");
$MonthNames[]=$MN[date('w',$time)];
$arr[]='M';
$arr[]='N';
return date(str_replace($arr,$MonthNames,$param), $time);
}

//Времени назад
function wudateago($date)
{
$stf = 0;
$cur_time = time();
$diff = $cur_time - $date;
$seconds = array( 'секунду', 'секунды', 'секунд' );
$minutes = array( 'минуту', 'минуты', 'минут' );
$hours = array( 'час', 'часа', 'часов' );
$days = array( 'день', 'дня', 'дней' );
$weeks = array( 'неделю', 'недели', 'недель' );
$months = array( 'месяц', 'месяца', 'месяцев' );
$years = array( 'год', 'года', 'лет' );
$decades = array( 'десятилетие', 'десятилетия', 'десятилетий' );
$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, wu_end( $no, $phrase[ $i ] ) );
if ( ( $stf == 1 ) && ( $i >= 1 ) && ( ( $cur_time - $_time ) > 0 ) ) {
$value .= time_ago( $_time );
}
return $value.' назад';
}

//Смайлы
function wu_smile($msg){
$text = preg_replace('/:smile_([1-9]|[1-6][0-9]|7[0-1]):/', '<i class="wu-smile wu-$1"></i>', $msg);
return $text;
}

//Очистка от непечатаемых символов
function wu_strip($string) {
  $old_string = $string;
  $string = preg_replace('/\x{FEFF}/u', '', $string);
  $string = str_replace('  ',' ', $string);
  $string = trim($string);
  if ($string === $old_string) {
    return $string;
  } else {
    return wu_strip($string); 
  }  
}

//Формироваие размера файла
function wu_formatsize($file_size) {
    if (!$file_size || $file_size < 1) return '0 ,';
    $prefix = array('б', 'Кб', 'Мб', 'Гб', 'Тб');
    $exp = floor(log($file_size, 1024)) | 0;
    return round($file_size / (pow(1024, $exp)), 2) . ' ' . $prefix[$exp];
}

//Очистка url
function wu_clean_url($url) {
    if ($url == '') return;
    $url = str_replace("http://", "", $url);
    $url = str_replace("https://", "", $url);
    if (strtolower(substr($url, 0, 4)) == 'www.') $url = substr($url, 4);
    $url = explode('/', $url);
    $url = reset($url);
    $url = explode(':', $url);
    $url = reset($url);
    return $url;
}

//Установка кукис
function wu_set_cookie($name, $value, $expires=false) {
    if ($expires) {
        $expires = time() + ($expires * 86400);
    } else {
        $expires = FALSE;
    }
    if (PHP_VERSION < 5.2) {
        if (SITE) setcookie($name, $value, $expires, '/', "; HttpOnly");
        else setcookie($name, $value, $expires, '/', SITE . "; HttpOnly");
    } else {
        setcookie($name, $value, $expires, '/', SITE, NULL, TRUE);
    }
}

//Получение удалённого содержимого
function wu_get_contents($file) {
    $data = false;
    if (stripos($file, "http://") !== 0 AND stripos($file, "https://") !== 0) {
        return false;
    }
    if (function_exists('curl_init')) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $file);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        if ($data !== false) return $data;
    }
    if (preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen'))) {
        $data = @file_get_contents($file);
        if ($data !== false) return $data;
    }
    return false;
}

//Срочность
function wu_urgency($pr) {
switch ($pr) {
case '1': return 'Низкая'; break;
case '2': return 'Средняя'; break;
case '3': return 'Высокая'; break;
}
}

//Отправка сообщения зарегистрированному пользователю на E-mail
include('mail/wu_mail.php');
function wu_email_send_usr($usr, $theme, $msg, $type='notif') {
global $connect_db;
$usr = intval($usr);
$user_find = mysqli_fetch_assoc(mysqli_query($connect_db, "SELECT uid,log,mail,tomail FROM `".DB_PREFIX."_users` WHERE uid='$usr' LIMIT 1"));
if ($user_find['tomail'] == 1) {
$send_to = $user_find['mail'];
$send_to_name = $user_find['log'];
esend($send_to, $send_to_name, $theme, $msg, $type);
}
}