/var/www/myprog.com.ua/cashcontrol/libs
Edit: /var/www/myprog.com.ua/cashcontrol/libs/class.bootstrap.php (13290B)
run();
return;
}
session::init();
if($url[0]=='api'){
require_once "controllers/class.api.php";
$controler = new api();
$controler->loadModel('api');
$controler->index($url);
return;
}
// if(!session::has('current_city'))
// session::set('current_city', 0);
if(!session::has('timeout') ){
$controler_name = 'login';
}else{
if(session::get('timeout')<1){
session::set('logedIn',false);
header('Location:index');
}
if(session::has('logedIn') ){
if (empty($url[0])) {
$controler_name = 'index';
}else{
$controler_name = $url[0];
}
}else{
$controler_name = 'login';
}
//if($url[0]=='api'){
// $controler_name = 'api';
//}
}
$file ="controllers/class." . $controler_name . ".php";
if (file_exists($file)) {// если есть контролер
require_once $file;// подкючаем контролер
} else {
$this->error(); // подключам страницу с ошибкой
return false;
}
$controler = new $controler_name(); // создаем объект класа контроллера
try{
$controler->loadModel($controler_name);// подгружаем модель
}catch(Exception $e){
$this->error($e->getMessage());
return false;
}
if (isset($url[2])) {//если есть параметр метода
if (method_exists($controler, $url[1])) {//проверяем если такой метод в объекте
$key = $value = array();
for($i=2, $count=count($url);$i<$count;$i++){
if($i%2==0){
$key[] = $url[$i];
}else{
$value[] = $url[$i];
}
}
if(count($key)!=count($value)){
$this->error();
return false;
}
$param = array_combine($key,$value);
$controler->{$url[1]}( $param ); //загружаем методs с передаными параметрами
}else{
if(!session::has('logedIn') ){
$controler->index();
}
//$this->error(); //такого метода нет :(
return false;
}
} else {
if (isset($url[1])) {
if (method_exists($controler, $url[1])) {
$controler->{$url[1]}();
} else {
if(!session::has('logedIn') ){
$controler->index();
}
//$this->error();
return false;
}
} else {
$controler->index();
}
}
}
public static function fetchCurrentCity (){
if(!session::has('current_city') && (int)session::get('current_city')>0){
throw new Exception ('Ошибка. Не выбран город.');
}
return session::get('current_city');
}
public static function error($msg=''){
require_once "controllers/class.error.php";
$error = new error($msg);
$error->index();
return false;
}
// UNIX 20.05.2013
function put_ini_file($file, $array, $i = 0){
$str="";
foreach ($array as $k => $v){
if (is_array($v)){
$str.=str_repeat(" ",$i*2)."[$k]".PHP_EOL;
$str.=put_ini_file("",$v, $i+1);
}else
$str.=str_repeat(" ",$i*2)."$k = $v".PHP_EOL;
}
if($file)
return file_put_contents($file,$str);
else
return $str;
}
public static function HumanDate($date) {
$date = strtotime($date);
$diff = time() - $date;
if ($diff < 0) {
//для прошлого
$days = ceil($diff / 86400);
} else {
//для будущего
$days = floor($diff / 86400);
}
$hd = '';
if ($days == 0) {
//сегодня
$hd = 'сегодня в ' . date('H:i', $date);
} else {
if ($days > 0) {
//прошлое
switch ($days) {
case 1:
$hd = 'вчера в ' . date('H:i', $date);
break;
case 2:
$hd = 'позавчера в ' . date('H:i', $date);
break;
}
} else {
//будущее
switch ($days) {
case -1:
$hd = 'завтра в ' . date('H:i', $date);
break;
case -2:
$hd = 'послезавтра в ' . date('H:i', $date);
break;
case -3:
$hd = 'через три дня';
break;
}
}
}
if ($hd == '') {
$hd = date('d.m.Y H:i', $date);
}
// return '
' . $hd . '';
return '' . $hd . '';
}
public static function HumanDatePrecise($date) {
$r = false;
$a = preg_split("/[:\.\s-]+/", $date);
$d = time() - strtotime($date);
if ($d > 0) {
if ($d < 3600) {
//минут назад
switch (floor($d / 60)) {
case 0:
case 1:
return "только что";
break;
case 2:
return "только что";
break;
case 3:
return "три минуты назад";
break;
case 4:
return "четыре минуты назад";
break;
case 5:
return "пять минут назад";
break;
default:
return "" . floor($d / 60) . ' мин. назад';
break;
};
} elseif ($d < 18000) {
//часов назад
switch (floor($d / 3600)) {
case 1:
return "час назад";
break;
case 2:
return "два часа назад";
break;
case 3:
return "три часа назад";
break;
case 4:
return "четыре часа назад";
break;
};
} elseif ($d < 172800) {
//сегодня
//2011-07-14 16:20:44
// 0 1 2 3 4 5
if (date('d') == $a[2]) {
return "сегодня в {$a[3]}:{$a[4]}";
}
if (date('d', time() - 86400) == $a[2]) {
return "вчера в {$a[3]}:{$a[4]}";
}
if (date('d', time() - 172800) == $a[2]) {
return "позавчера в {$a[3]}:{$a[4]}";
}
}
} else {
////////////////////////////////////////////////////////////////////////////////////////
// В будущем
$d *= - 1;
if ($d < 3600) {
//минут назад
switch (floor($d / 60)) {
case 0:
case 1:
return "сейчас";
break;
case 2:
return "через две минуты";
break;
case 3:
return "через три минуты";
break;
case 4:
return "через четыре минуты";
break;
case 5:
return "через пять минут";
break;
default:
return "через " . floor($d / 60) . ' мин.';
break;
};
} elseif ($d < 18000) {
//часов назад
switch (floor($d / 3600)) {
case 1:
return "через час";
break;
case 2:
return "через два часа";
break;
case 3:
return "через три часа";
break;
case 4:
return "через четыре часа";
break;
};
} elseif ($d < 172800) {
//сегодня
//2011-07-14 16:20:44
// 0 1 2 3 4 5
if (date('d') == $a[2]) {
return "сегодня в {$a[3]}:{$a[4]}";
}
if (date('d', time() - 86400) == $a[2]) {
return "завтра в {$a[3]}:{$a[4]}";
}
if (date('d', time() - 172800) == $a[2]) {
return "послезавтра в {$a[3]}:{$a[4]}";
}
}
$d *= - 1;
//, В будущем
////////////////////////////////////////////////////////////////////////////////////////.
}
$r = "{$a[2]}.{$a[1]}";
if ($a[0] != date('Y') OR $d > 0) {
$r .= '.' . $a[0];
}
$r .= " {$a[3]}:{$a[4]}";
//$date.= ', ' . self::$weekdays[(int) date('N', strtotime($date))];
return "$r";
}
public static function base64_to_jpeg($base64_string, $output_file) {
$ifp = fopen($output_file, "wb");
$data = explode(',', $base64_string);
if (fwrite($ifp, base64_decode($data[1])) === FALSE) {
return false;
}
fclose($ifp);
return true;
}
public static function json_encode__($string,$param = null) {
$arrayUtf = array('\u0410', '\u0430', '\u0411', '\u0431', '\u0412', '\u0432', '\u0413', '\u0433', '\u0414', '\u0434', '\u0415', '\u0435', '\u0401', '\u0451', '\u0416', '\u0436', '\u0417', '\u0437', '\u0418', '\u0438', '\u0419', '\u0439', '\u041a', '\u043a', '\u041b', '\u043b', '\u041c', '\u043c', '\u041d', '\u043d', '\u041e', '\u043e', '\u041f', '\u043f', '\u0420', '\u0440', '\u0421', '\u0441', '\u0422', '\u0442', '\u0423', '\u0443', '\u0424', '\u0444', '\u0425', '\u0445', '\u0426', '\u0446', '\u0427', '\u0447', '\u0428', '\u0448', '\u0429', '\u0449', '\u042a', '\u044a', '\u042b', '\u044b', '\u042c', '\u044c', '\u042d', '\u044d', '\u042e', '\u044e', '\u042f', '\u044f');
$arrayCyr = array('А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я');
return str_replace($arrayUtf,$arrayCyr,json_encode($string,$param));
}
public static function json_encode_cyr($arr) {
$trans = array(
'\u0410'=>'А', '\u0411'=>'Б', '\u0412'=>'В', '\u0413'=>'Г', '\u0414'=>'Д', '\u0415'=>'Е',
'\u0401'=>'Ё', '\u0416'=>'Ж', '\u0417'=>'З', '\u0418'=>'И', '\u0419'=>'Й', '\u041a'=>'К',
'\u041b'=>'Л', '\u041c'=>'М', '\u041d'=>'Н', '\u041e'=>'О', '\u041f'=>'П', '\u0420'=>'Р',
'\u0421'=>'С', '\u0422'=>'Т', '\u0423'=>'У', '\u0424'=>'Ф', '\u0425'=>'Х', '\u0426'=>'Ц',
'\u0427'=>'Ч', '\u0428'=>'Ш', '\u0429'=>'Щ', '\u042a'=>'Ъ', '\u042b'=>'Ы', '\u042c'=>'Ь',
'\u042d'=>'Э', '\u042e'=>'Ю', '\u042f'=>'Я',
'\u0430'=>'а', '\u0431'=>'б', '\u0432'=>'в', '\u0433'=>'г', '\u0434'=>'д', '\u0435'=>'е',
'\u0451'=>'ё', '\u0436'=>'ж', '\u0437'=>'з', '\u0438'=>'и', '\u0439'=>'й', '\u043a'=>'к',
'\u043b'=>'л', '\u043c'=>'м', '\u043d'=>'н', '\u043e'=>'о', '\u043f'=>'п', '\u0440'=>'р',
'\u0441'=>'с', '\u0442'=>'т', '\u0443'=>'у', '\u0444'=>'ф', '\u0445'=>'х', '\u0446'=>'ц',
'\u0447'=>'ч', '\u0448'=>'ш', '\u0449'=>'щ', '\u044a'=>'ъ', '\u044b'=>'ы', '\u044c'=>'ь',
'\u044d'=>'э', '\u044e'=>'ю', '\u044f'=>'я');
return strtr(json_encode($arr),$trans);
}
public static function distance($lat1, $lon1, $lat2, $lon2, $unit="K") {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1*1)) * sin(deg2rad($lat2*1)) + cos(deg2rad($lat1*1)) * cos(deg2rad($lat2*1)) * cos(deg2rad($theta*1));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
}
?>