ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); //if(getenv("REMOTE_ADDR")!="195.182.142.216") die("WTF? access denied !"); setlocale(LC_TIME, "ru_RU.utf-8"); define("AVO_CORE",true); $_SERVER['START_TIME'] = microtime(1); $_SERVER['requestAPI'] = array(); /* Конфигурация */ include_once($_SERVER['DOCUMENT_ROOT']."/config.php"); /* библиотеки */ include_once($_SERVER['DOCUMENT_ROOT']."/lib/mysql.class.php"); include_once($_SERVER['DOCUMENT_ROOT']."/lib/user.class.php"); include_once($_SERVER['DOCUMENT_ROOT']."/lib/templates.class.php"); /* Создаем класс пользователя */ $user = new User("session"); if(isset($_REQUEST['logout'])) $user->logout(true); // выход пользователя с редиректом if(!array_key_exists("formerrors", $_SESSION)) $_SESSION['formerrors'] = array(); if(!array_key_exists("formmessages", $_SESSION)) $_SESSION['formmessages'] = array(); /* Создаем класс шаблона */ $template = new Template(); /* функция возвращает результат работы метода класса */ function getFunction($obj, $method, $args=array()){ if(!$obj || !$method || !method_exists($obj, $method)) return false; if(is_object($obj)) $class = "$"."obj->"; // если передан объект класса else $class = $obj."::"; // если передано имя класса ob_start(); // включаем буфер eval("$"."method_result = ".$class.$method."(".((count($args)>0)?"\"".implode("\",\"",$args)."\"":"").");"); // выполняем метод $result = ob_get_contents(); // выбрасываем содержимое буфера с результатом метода в переменную if(!$result && $method_result && !is_bool($method_result)) $result = $method_result; // если вывод через return ob_end_clean(); // выключаем и чистим буфер return $result; } $mons = array(1 => "Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек" ); $mons_ = array(1 => "Янв","Фев","Мар","Апр","Мая","Июн","Июл","Авг","Сен","Окт","Ноя","Дек" ); $months = array(1 => "Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ); $months_ = array(1 => "Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря" ); function print_p($array){ global $user; if(!is_object($user)) return false; if($user->getLogin()!="oav" && $user->getLogin()!="krutaman" && $user->getLogin()!="krutaman@mail.ru") return false; echo "
".print_r($array,1).""; } function replacing($in, $out, $text){ while(strpos($text, $in)!==false){ $text = str_replace($in, $out, $text); } return $text; } function JiraRestAPI($args){ global $user; if(is_object($user) && $user->getBasicAuth() && !isset($args['basicauth'])) $args['basicauth'] = $user->getBasicAuth(); if(!isset($args['posttype'])) $args['posttype'] = "json"; $headers = array(); if($args['posttype']=="json") $headers = array('Accept: application/json','Content-Type: application/json'); if(isset($args['headers']) && is_array($args['headers'])) foreach($args['headers'] as $header) $headers[] = $header; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); if(isset($args['debug']) && $args['debug']) curl_setopt($ch, CURLOPT_HEADER, 1); // Возвращать заголовки header if(isset($args['delete'])){ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); if($args['posttype']=="json") curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($args['delete'])); else curl_setopt($ch, CURLOPT_POSTFIELDS, $args['delete']); } elseif(isset($args['put'])){ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); if($args['posttype']=="json") curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($args['put'])); else curl_setopt($ch, CURLOPT_POSTFIELDS, $args['put']); } elseif(isset($args['post'])){ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); if($args['posttype']=="json") curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($args['post'])); else curl_setopt($ch, CURLOPT_POSTFIELDS, $args['post']); } curl_setopt($ch, CURLOPT_URL, $args['url']); if(isset($args['basicauth'])) curl_setopt($ch, CURLOPT_USERPWD, $args['basicauth']); $result = curl_exec($ch); $logargs = $args; $logargs['basicauth'] = current(explode(":",$logargs['basicauth'])); $_SERVER['requestAPI'][] = $logargs; $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // print_r($result); //print_r($args); // die("-11"); if($http_code>=401 && isset($args['repeatTimeout']) && $args['repeatTimeout']>0){ $starttime = microtime(1); while($http_code>=401 && (microtime(1)-$starttime)