Server IP : 80.241.246.6 / Your IP : 216.73.216.167 Web Server : Apache/2.4.25 (Debian) System : Linux kharagauli 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 User : www-data ( 33) PHP Version : 7.0.33-0+deb9u12 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/kharagauli1/ |
Upload File : |
<?php class Render extends Post_class{ private $_url; const OLIMPIAD_MENU = 4; public function Hello_word($a){ $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = ($_->_game_id && $_->game_user('status'))?true:false; $config_menu = [ [ 'url' => ['მათემატიკა','უნარები','ბიოლოგია','ქართული','ფიზიკა','გეოგრაფია','ქიმია','ისტორია','ინგლისური','რუსული','გერმანული','ფრანგული'], 'name' => ['მათემატიკა','მათემატიკური უნარები','ბიოლოგია','ქართული ენა','ფიზიკა','გეოგრაფია','ქიმია','ისტორია','ინგლისური','რუსული','გერმანული','ფრანგული'], 'img' => [0,1,2,3,4,5,6,7,'ena1','ena2','ena3','ena4'], ], [ 'url' => ['იტალიური','ესპანური','თურქული','ბერძნული','იაპონური','ჩინური','პორტუგალიური','არაბული'], 'name' => ['იტალიური','ესპანური','თურქული','ბერძნული','იაპონური','ჩინური','პორტუგალიური','არაბული'], 'img' => [5,6,7,8,9,10,11,12], ] ]; //$_->pre($_->available_sagani()); $this->render('index', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, "config_menu" => $config_menu, 'url_location' => "ოლიმპიადა", 'available_sagani' => $_->available_sagani(), '_news' => $_->_news_view(), 'url' => $_->lang_url]); //$this->smarty("/var/www/olimpiada/view/templates/index.tpl"); //Tester::render(); } public function reiting($a){ $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = ($_->_game_id && $_->game_user('status'))?true:false; $URL = explode('/',urldecode($_->clier($_SERVER['REQUEST_URI']))); $klass_url = NULL; $sagani_url = NULL; $m_sql = ""; $n_sql = ""; $n_sql2 = ""; switch(count($URL)){ case 4: $klass_url = $URL[count($URL) - 1]; $sagani_url = $URL[count($URL) - 2]; $_->sagani = array_search($sagani_url,$_->ini('sagani')); $m_sql = " and sagani = $_->sagani "; $n_sql = " and T.klasi = $klass_url and T.sagani = $_->sagani and"; $n_sql2 = "and klasi = $klass_url and sagani = $_->sagani "; break; case 3: if(!is_numeric($URL[count($URL) - 1])){ $sagani_url = $URL[count($URL) - 1]; $_->sagani = array_search($sagani_url,$_->ini('sagani')); $m_sql = " and sagani = $_->sagani "; $n_sql = " and T.sagani = $_->sagani and"; }else{ $klass_url = $URL[count($URL) - 1]; $m_sql = " and klasi = $klass_url "; $n_sql = " and T.klasi = $klass_url and"; } break; case 2: $n_sql = " and "; break; } $obj = new stdClass(); $obj->c_type = "big"; $obj->sql = " and date_end > ".time()." $n_sql2"; $configuration = $_->select("*","olimpiad_menu",$obj)['body']; //echo 1; $sql = "select T.`user_id` , T.`sagani` , T.`klasi` , T.`date_start` , T.`date` , T.`answered_cost`,T.`question_count`, s2.`skola`,s2.`user`,s2.`regioni`,s2.`raioni`,s2.`logo`,s2.`final_11`,s2.`final_11`, s3.`json_name` FROM `game_tours_statistic` T JOIN user_register s2 JOIN alls.school s3 ON T.`answered_cost` = ( SELECT max( T2.`answered_cost` ) FROM `game_tours_statistic` T2 WHERE T2.`user_id` = T.`user_id` and T2.`klasi` = T.`klasi` and T2.`sagani` = T.`sagani`) $n_sql T.`user_id` = s2.`id` and s3.`id` = s2.`skola` ORDER BY T.`answered_cost` DESC"; // echo $sql; $sels = $_->join_select($sql,'big'); $shools = []; for($i = 0; $i < count($sels); $i++){ $sels[$i]['sagani'] = $_->ini('sagani')[$sels[$i]['sagani']]; } $klasebi = [7,8,9,10,11,12]; // for($i = 0; $i < count($configuration); $i++){ // if(in_array($configuration[$i]['klasi'], $klasebi))continue; // $klasebi[] = $configuration[$i]['klasi']; // } sort($klasebi); // $_->pre($configuration); $this->render('reiting', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, 'url' => $_->lang_url, 'user_information' => $sels, 'cdebi' => $_->user_balance('cdebi'), 'configuration' => $configuration, 'available_sagani' => $_->available_sagani(), 'klasebi' => $klasebi, 'url_location' => $a, 'sagani' => ($sagani_url)?'/'.$sagani_url:'', ] ); } public function search_user($select,$user){ $_ = $this; $length = count($select); for($i = 0; $i < $length; $i++){ if($select[$i]['user_id'] == $user)return $i; }return 'ss'; } public function global_reiting($a){ $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = ($_->_game_id && $_->game_user('status'))?true:false; $URL = explode('/',urldecode($_->clier($_SERVER['REQUEST_URI']))); $klass_url = NULL; $sagani_url = NULL; $m_sql = ""; $n_sql = ""; $n_sql2 = ""; //$_url; // if(in_array('subject', $URL)){ // $_url = $_->cl($URL[array_search('subject', $URL) +1 ]); // $n_sql = " and T.sagani = ".$_->cl(array_search($_url, $_->ini("sagani"))); // }if(in_array('class', $URL)){ // $_url = $URL[array_search('class', $URL) +1 ]; // $n_sql = " and T.klasi = ".$_->cl($_url)." "; // }if(in_array('region', $URL) || in_array('district', $URL) || in_array('school', $URL)){ // $_url_regin = $URL[array_search('region', $URL) +1 ]; // $_url_raion = in_array('district', $URL)?$URL[array_search('district', $URL) +1 ]:''; // $_url_school = in_array('school', $URL)?$URL[array_search('school', $URL) +1 ]:''; // // $_sql = " and regioni = '".$_->cl($_url_regin)."'"; // if($_url_raion) // $_sql .= " and raioni = '".$_->cl($_url_raion)."'"; // if($_url_school) // $_sql .= " and skola = '".$_->cl($_url_school)."'"; // // $n_sql = " and user_id in(select id from user_register where 1 = 1 $_sql) "; // } $_sql = ''; $_zz = explode('?',urldecode($_->clier($_SERVER['REQUEST_URI']))); $_zz = (isset($_zz[1]))?"?".$_zz[1]:''; $obj = new stdClass(); $obj->c_type = "big"; if(isset($_GET['subject']) && isset($_GET['class'])) $obj->sql = " and date_end > ".time()." and sagani = ".$_->cl(array_search($_->cl($_GET['subject']), $_->ini("sagani")))." and klasi = ".$_->cl($_GET['class'])." "; else $obj->sql = " and date_end > ".time()." "; $configuration = $_->select("*","olimpiad_menu",$obj)['body']; $mimdinare_configuration = ''; $_klasi = 12; if(!isset($_GET['class'])){ header("Location:/საერთო_რეიტინგი/?class=".$_klasi); } if(isset($_GET['class'])){ $_url_k = $_GET['class']; $n_sql .= " and T.klasi = ".$_->cl($_url_k)." "; $_sagani = (isset($_url_s))?$_->cl(array_search($_url_s, $_->ini("sagani"))):''; $mimdinare_configuration = $_->mimdinare_configuration($configuration,$_url_k,$_sagani); $order_by = "s2.`final_".$_url_k."`"; }if(isset($_GET['subject'])){ $_url_s = $_->cl($_GET['subject']); $n_sql .= " and T.sagani = ".$_->cl(array_search($_url_s, $_->ini("sagani"))); $order_by = "T.`answered_cost`"; }if(isset($_GET['region']) || isset($_GET['district']) || isset($_GET['school'])){ if(isset($_GET['region'])){ $_url_regin = $_GET['region']; $_url_raion = isset($_GET['district'])?$_GET['district']:''; $_url_school = isset($_GET['school'])?$_GET['school']:''; $_sql = " and regioni = '".$_->cl($_url_regin)."'"; if($_url_raion) $_sql .= " and raioni = '".$_->cl($_url_raion)."'"; if($_url_school) $_sql .= " and skola = '".$_->cl($_url_school)."'"; $n_sql .= " and user_id in(select id from user_register where 1 = 1 $_sql) "; } } //$_->pre($_SERVER); // switch(count($URL)){ // case 4: // $klass_url = $URL[count($URL) - 1]; // $sagani_url = $URL[count($URL) - 2]; // $_->sagani = array_search($sagani_url,$_->ini('sagani')); // $m_sql = " and sagani = $_->sagani "; // // // //$n_sql = " and T.klasi = $klass_url and T.sagani = $_->sagani and"; // //$n_sql2 = "and klasi = $klass_url and sagani = $_->sagani "; // break; // case 3: // if(!is_numeric($URL[count($URL) - 1])){ // $sagani_url = $URL[count($URL) - 1]; // $_->sagani = array_search($sagani_url,$_->ini('sagani')); // $m_sql = " and sagani = $_->sagani "; // //$n_sql = " and T.sagani = $_->sagani and"; // }else{ // $klass_url = $URL[count($URL) - 1]; // $m_sql = " and klasi = $klass_url "; // //$n_sql = " and T.klasi = $klass_url and"; // } // // break; // case 2: // //$n_sql = " and "; // break; // } // // echo 1; //$_->pre($configuration); $sels = []; $sql = "select T.`user_id` ,T.id, T.`sagani` , T.`klasi` , T.`date_start` , T.`date` , T.`answered_cost`,T.`question_count`, s2.`skola`,s2.`user`,s2.`regioni`,s2.`raioni`,s2.`logo`,s2.`final_11`,s2.`final_12`,s2.`id` as users_id, s3.`json_name` FROM `game_tours_statistic` T JOIN user_register s2 JOIN alls.school s3 ON T.`answered_cost` = ( SELECT max( T2.`answered_cost` ) FROM `game_tours_statistic` T2 WHERE T2.`user_id` = T.`user_id` and T2.`klasi` = T.`klasi` and T2.`sagani` = T.`sagani`) $n_sql and T.`user_id` = s2.`id` and s3.`id` = s2.`skola` and s2.final_".$_url_k." >= 170 group by user_id ORDER BY $order_by DESC,(T.date - T.date_start) asc limit 0,20"; //echo $sql; $sels = $_->join_select($sql,'big'); $final_id = [0]; $final_length = count($sels)?count($sels):0; for($i = 0; $i < $final_length; $i++) $final_id[] = $sels[$i]['users_id']; $object = new stdClass(); $object->c_type = "reiting"; $object->end = (!isset($_GET['navigation']) || $_GET['navigation'] == 1)?30-$final_length:30; $object->navigation = (isset($_GET['navigation']))?(int)$_GET['navigation']:1; $object->href = explode('&navigation=',urldecode($_SERVER['REQUEST_URI']))[0]; $object->first_loop = (!isset($_GET['navigation']) || $_GET['navigation'] == 1)?0:$final_length; $sql = "select T.`user_id` ,T.`id`, T.`sagani` , T.`klasi` , T.`date_start` , T.`date` , T.`answered_cost`,T.`question_count`, s2.`skola`,s2.`user`,s2.`regioni`,s2.`raioni`,s2.`logo`,s2.`final_11`,s2.`final_12`, s3.`json_name` FROM `game_tours_statistic` T JOIN user_register s2 JOIN alls.school s3 ON T.`answered_cost` = ( SELECT max( T2.`answered_cost` ) FROM `game_tours_statistic` T2 WHERE T2.`user_id` = T.`user_id` and T2.`klasi` = T.`klasi` and T2.`sagani` = T.`sagani`) $n_sql and T.`user_id` = s2.`id` and s3.`id` = s2.`skola` and s2.`id` not in (".join(',',$final_id).") group by user_id ORDER BY $order_by DESC,(T.date - T.date_start) asc "; //echo $sql; if(isset($_GET['user']) && !isset($_GET['navigation'])){ if($_user_id = $_->select("id","user_register","small",["user",$_->cl($_GET['user'])])){ $_ss = $sels2 = $_->join_select($sql,'big'); $_b_n = 0; if(count($_ss)){ $_search = $_->search_user($_ss, $_user_id); if($_search == 'ss')$_b_n = 1; else{ if($_search < 30-$final_length){ $_b_n = 1; }else $_b_n = (int)($_search/30+1); } }else $_b_n = 1; } //echo "<br/>".$_b_n; if($_b_n && $_b_n != 1)header("Location:".$object->href."&navigation=".$_b_n); } if(isset($_GET['navigation']) && $_GET['navigation'] != 1){ $sels = []; } $sels2 = $_->join_select($sql,$object); // / $_->pre($sels2); $_navigation = isset($sels2['navigation'])?'<div id="navigation">'.$_->navigation($sels2['navigation'],$object->navigation).'</div>':''; $final_user =$_->reiting_sort($sels); for($i = 0; $i < count($sels); $i++){ $sels[$i]['sagani'] = $_->ini('sagani')[$sels[$i]['sagani']]; } $_length = count($sels2); for($i = 0; $i < $_length; $i++){ if(isset($sels2['body'][$i]['sagani'])) $sels2['body'][$i]['sagani'] = $_->ini('sagani')[$sels2['body'][$i]['sagani']]; } $raioni_ = (isset($_GET['region']))?json_decode(file_get_contents('./game_users/game.json'))->{$_->clier($_GET['region'])}:''; $school = (isset($_GET['district']) && $_GET['district'])?$_->skola($_->clier($_GET['district'])):''; $school_names = ''; if($school){ for($i = 0; $i < count($school); $i++){ $school_names['names'][] = $school[$i]['school']; $school_names['id'][] = $school[$i]['id']; } } $klasebi = [11,12]; for($i = 0; $i < count($configuration); $i++){ if(in_array($configuration[$i]['klasi'], $klasebi) || $configuration[$i]['status'] == 0)continue; $klasebi[] = $configuration[$i]['klasi']; } sort($klasebi); $_all_obj = new stdClass(); $_all_obj->c_type = "count"; $_all_obj->sql = " and status = 1"; $all_user_count = $_->select("id","user_register",$_all_obj); $_all_obj->sql = $sql;// explode('and s2.`id`',$sql)[0]." group by user_id"; // $_all_obj->sql = "select T.`user_id` ,T.`id`, T.`sagani` , T.`klasi` , T.`date_start` , T.`date` , T.`answered_cost`,T.`question_count` from game_tours_statistic T where 1= 1 $n_sql group by user_id"; //echo "<hr>".$_all_obj->sql; $all_user_count_2 = count($_->join_select($_all_obj->sql,'big'))+$final_length; //echo $_all_obj->sql; $regioni_ = ['აფხაზეთი','აჭარა','გურია','თბილისი','იმერეთი','კახეთი','მცხეთა-მთიანეთი','რაჭა-ლეჩხუმი, ქვემო სვანეთი','სამეგრელო-ზემოსვანეთი','სამცხე-ჯავახეთი','ქვემო ქართლი','შიდა ქართლი']; $arrays = ['1' => 0,'0' => 1,'6' => 2,'2' => 3,'5' => 4,'4' => 5,'7' => 6,'3' => 7,'8' => 'ena1','9' => 'ena2']; $sagani_image = (isset($_GET['subject']))?$arrays[array_search($_->cl($_GET['subject']),$_->ini('sagani'))]:''; $this->render('global_reiting', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, 'url' => $_->lang_url, 'user_information' => $sels, 'user_information2' => isset($sels2['body'])?$sels2['body']:[], 'cdebi' => $_->user_balance('cdebi'), 'configuration' => $configuration, 'available_sagani' => $_->available_sagani(), 'klasebi' => $klasebi, 'url_location' => $a, 'sagani' => ($sagani_url)?'/'.$sagani_url:'', 'regioni' => $regioni_, 'sub_url' => $_zz, 'raioni_' => $raioni_, 'school' => $school, 'school_names' => $school_names, 'available_klass' => $klasebi, 'final_user' => $final_user, 'mimdinare_configuration' => $mimdinare_configuration, 'all_user_count' => $all_user_count, 'counters' => $all_user_count_2 , 'sagani_image' => $sagani_image, 'navigation' => $_navigation ] ); } function mimdinare_configuration($config,$klasi,$sagani = false){ $length = count($config); for($i = 0; $i < $length; $i++){ if($sagani || $sagani == 0) if($config[$i]['klasi'] == $klasi && $config[$i]['sagani'] == $sagani) return $config[$i]; else if($config[$i]['klasi'] == $klasi) return $config[$i]; } } public function register($a){ $_ = $this; if($a == $_->_url_masiv[$_->_lang][0]){ if($_->_game_id)$this->render('404',["img" => "error_403.jpg"]); $for_baby = array( 'tve' => array('იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი','ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'), 'regioni' => array('აფხაზეთი','აჭარა','გურია','თბილისი','იმერეთი','კახეთი','მცხეთა-მთიანეთი','რაჭა-ლეჩხუმი, ქვემო სვანეთი','სამეგრელო-ზემოსვანეთი','სამცხე-ჯავახეთი','ქვემო ქართლი','შიდა ქართლი'), 'user_is_available' => false, "user_is_available_status" => false, 'url' => $_->lang_url, ); for($i = 1; $i < 32; $i++) $for_baby['ricxvi'][] = $i; for($i = 2001; $i > 1930; $i--) $for_baby['weli'][] = $i; for($i = 7; $i < 12; $i++) $for_baby['klasi'][] = $i; $this->render('register',$for_baby); }elseif($a == $_->_url_masiv[$_->_lang][2]){ if(!$_->_game_id)$this->render('404',["img" => "error_403.jpg"]); $select = $_->select("*","user_register","small",["id",$_->_game_id]); $bool_status = ($_->_game_id && $_->game_user('status'))?true:false; $for_baby = array( 'tve' => array('იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი','ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'), 'regioni' => array('აფხაზეთი','აჭარა','გურია','თბილისი','იმერეთი','კახეთი','მცხეთა-მთიანეთი','რაჭა-ლეჩხუმი, ქვემო სვანეთი','სამეგრელო-ზემოსვანეთი','სამცხე-ჯავახეთი','ქვემო ქართლი','შიდა ქართლი'), 'selected' => $select, 'raions' => json_decode(file_get_contents('./game_users/game.json'))->{$select['regioni']}, 'schools_name' => $_->skola($select['raioni']), 'pass_length' => strlen($select['pass']), "user_info" => ($_->_game_id)?$_->game_user():'', 'user_is_available' => true, 'user_is_available_status' => $bool_status, 'url' => $_->lang_url, ); //$_->pre($for_baby['selected']); for($i = 0; $i < 33; $i++) $for_baby['ricxvi'][] = $i; for($i = 2001; $i > 1930; $i--) $for_baby['weli'][] = $i; for($i = 7; $i < 12; $i++) $for_baby['klasi'][] = $i; $this->render('change_register',$for_baby); } } public function user_register($a){ $_ = $this; //$_->pre($_POST); if(isset($_POST['code']) && $_POST['code'])$_->if_register($a); elseif(isset($_POST['validation']) && $_POST['validation'] && $_->_game_id)$_->if_changed($a); } public function skola($a,$b = 'raioni'){ $_ = $this; $reg_r = trim(strip_tags($b)); $name = trim(strip_tags($a)); if($_->select("id","alls.school","count",[$reg_r,$a])){ $select_school = $_->select("id,json_name","alls.school","big",[$reg_r,$a])['body']; if(count($select_school)){ $return = []; for($i = 0; $i < count($select_school); $i++){ $return[$i]['school'] = $select_school[$i]['json_name'].'|'.$select_school[$i]['id']; $return[$i]['id'] = $select_school[$i]['id']; } return $return; } } } public function new_pass($a){ $_ = $this; $url = explode('/',urldecode($_SERVER['REQUEST_URI'])); if($_POST && $_->select("*","new_pass","count",["code",$_->clier($_POST['validation_code'])])){ if($_POST['pass'] != $_POST['pass2'])return; $select = $_->select("*","new_pass","small",["code",$_->clier($_POST['validation_code'])]); $_->update("user_register",[["pass"],[md5($_->clier($_POST['pass']))],["email",$select['email'],"user",$select['user']]]); if($_->delete("new_pass",["user",$select['user'],"email",$select['email']])){ header("Location:/#password_changed"); } return; } if(isset($url[2]) && $url[2]){ if($_->select("id","new_pass","count",["code",$url[2]])){ $array = [ "user_is_available" => false, "user_is_available_status" => false, "user_info" => ($_->_game_id)?$_->game_user():'', "action" => '/'.$a, "new_pass" => $url[2], 'url' => $_->lang_url ]; }else header("Location:/"); }else{ $array = [ "user_is_available" => false, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => false, "action" => '/'.$a, 'url' => $_->lang_url ]; } $this->render('new_pass',$array); } public function if_register(){ $_ = $this; $masiv = []; $error = ''; $email = trim(strip_tags($_POST['email'])); // $code = trim(strip_tags($_POST['code'])); // if(!$_->select("*","before_register","count",["email",$email,"code",$code])){ // $error .= 'Fatal error'; // } //$_->delete("before_register",["email",$email,"code",$code]); $s_obj = new stdClass(); $s_obj->c_type = "count"; $s_obj->sql = " and status = 1"; $status_ = $_->select('id','user_register',$s_obj,['nomer',trim(strip_tags($_POST['ID']))]); foreach($_POST as $key => $value){ if($key == 'user'){ if(strlen($value) < 4 || $_->select('id','user_register','count',['user',$value]))$error .= 'user error'; }elseif($key == 'email'){ if(!filter_var($value,FILTER_VALIDATE_EMAIL))$error .= 'email error'; }elseif($key == 'pass'){ if(strlen($value) < 6)$error .= 'pass error'; }elseif($key == 'pass2' || $key == 'pass2'){ if(strlen($value) < 6)$error .= 'pass error'; }elseif($key == 'ID'){ if(strlen($value) != 11 || !is_numeric($value) || $status_)$error .= 'ID error'; }if(in_array($key,['weli','ricxvi','regioni','raioni','skola','klasi','name','last_name'/*,'parent_name','parent_last_name'*/])){ if(!$value)$error .= 'key error'; } $masiv[$key] = trim(strip_tags($value)); } $time = time(); if($_FILES['file_0']['name'] && preg_match('/[.](jpg)|(JPG)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['file_0']['name'])){ $file_name = time().'_'.mb_substr($_FILES['file_0']['name'],-4); $file_name_small = explode('.',$file_name)[0]; if(move_uploaded_file($_FILES['file_0']['tmp_name'],'./img/register/'.$file_name)){ $_->main_images($file_name,'./img/register','./img/register/small',$file_name_small,240,2); if($a == 'change'){ if($question_img[$i]){ if(file_exists('./img/register/'.$question_img[$i]))@unlink('./img/register/'.$question_img[$i]); if(file_exists('./img/register/small/'.$question_img[$i]))@unlink('./img/register/small/'.$question_img[$i]); } } $file_name = (preg_match('/[.](jpeg)|(JPEG)$/',$file_name))?explode('.',$file_name)[0].'.jpg':$file_name; $masiv['file_0'] = $file_name; } }else $masiv['file_0'] = 'upload_avatar.png'; if($error){ echo Render::render('404',["img" => "error_403.jpg"]); exit; } $code = $_->getRandomString(10); $email = $masiv['email']; if($_->con->exec("insert into before_register values('".$email."','".$code."',$time)")){ // $text = "<div> // ".$masiv['parent_name']." ".$masiv['parent_last_name']." მოგესალმებით ონლაინ ოლიმპიადა eruditor.ge \n // ონლაინ ოლიმპიადაში მონაწილეობის მისაღებად,თქვენ არეგისტრირებთ // მომხმარებელს: ".$masiv['name']." ".$masiv['last_name']."\n // რეგისტრაციის დასასრულებლად გთხოვთ გადახვიდეთ მითითებულ ბმულზე\n // http://".$_SERVER['SERVER_NAME']."/finish_register/".$code." // </div>"; $text = "<div> ".$masiv['user']." მოგესალმებით ონლაინ ოლიმპიადა eruditor.ge \n რეგისტრაციის დასასრულებლად გთხოვთ გადახვიდეთ მითითებულ ბმულზე\n <a href=\"http://".$_SERVER['SERVER_NAME']."/finish_register/".$code."\" target='_blank'> http://".$_SERVER['SERVER_NAME']."/finish_register/".$code." </a> </div>"; file_put_contents('saxlisaxlisalxisalxi.html', $text); $_->mail_send($email,"რეგისტრაცია",$text,"info@eruditor.ge"); // $_->pre($_->select("*","before_register","big")); } // echo $masiv['ID']; // die; $insert = ['user','name','last_name'/*,'parent_name','parent_last_name'*/,'pass','email','tel','tel2','regioni','raioni','skola','klasi','ricxvi','tve','weli','logo','date','nomer']; $values = [$masiv['user'],$masiv['name'],$masiv['last_name']/*,$masiv['parent_name'],$masiv['parent_last_name']*/, $code,$masiv['email'],$masiv['tel'],'', $masiv['regioni'],$masiv['raioni'],$masiv['skola'],$masiv['klasi'],$masiv['ricxvi'],$masiv['tve'], $masiv['weli'],$masiv['file_0'],$time,(string)$masiv['ID']]; if($_->bech_insert("user_register",[$insert,$values])){ //$cookie_name = $_->select("id","user_register","small",["date",$time,"email",$email]); //$_SESSION['user_register'] = $cookie_name; setcookie('maines_email',$masiv['email'],time()+300,'/'); header("location:/register_added"); exit; }else echo 'no inserted!'; } public function register_replace($a){ return trim(strip_tags($a)); } public function if_changed($a){ $_ = $this; //$_->pre($_POST); if(!isset($_->_game_id) || !$_->_game_id)$this->render('404',["img" => "error_403.jpg"]); $masiv = []; $error = ''; foreach($_POST as $key => $value){ if($key == 'user'){ if(strlen($value) < 4){ $error .= 'user error'; }elseif($value != $_->select('user','user_register','small',["id",$_->_game_id])){ if($_->select('id','user_register','count',['user',$value]))$error .= 'user nano is not available!!!'; } }elseif($key == 'email'){ if(!filter_var($value,FILTER_VALIDATE_EMAIL))$error .= 'email error'; }elseif($key == 'pass'){ if(strlen($value) < 6)$error .= 'pass error'; }elseif($key == 'pass2' || $key == 'pass2'){ if(strlen($value) < 6)$error .= 'pass error'; }if(in_array($key,['tve','weli','ricxvi','regioni','raioni','skola','klasi','name','last_name'/*,'parent_name','parent_last_name'*/])){ if(!$value)$error .= 'key error'; } $masiv[$key] = trim(strip_tags($value)); } $time = time(); $masiv['file_0'] = ($_->select('logo','user_register','small',["id",$_->_game_id])); if($_FILES['file_0']['name'] && preg_match('/[.](jpg)|(JPG)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['file_0']['name'])){ $file_name = time().'_'.mb_substr($_FILES['file_0']['name'],-4); $file_name_small = explode('.',$file_name)[0]; if(move_uploaded_file($_FILES['file_0']['tmp_name'],'./img/register/'.$file_name)){ $_->main_images($file_name,'./img/register','./img/register/small',$file_name_small,240,2); if(isset($masiv['file_0'])){ if($masiv['file_0'] != 'upload_avatar.png'){ if(file_exists('./img/register/'.$masiv['file_0']))@unlink('./img/register/'.$masiv['file_0']); if(file_exists('./img/register/small/'.$masiv['file_0']))@unlink('./img/register/small/'.$masiv['file_0']); } } $file_name = (preg_match('/[.](jpeg)|(JPEG)|(jpg)|(JPG)$/',$file_name))?explode('.',$file_name)[0].'.jpg':$file_name; $masiv['file_0'] = $file_name; } }//else $masiv['file_0'] = 'img/upload_avatar.png'; if($error){ $this->render('404',["img" => "error_403.jpg"]); } $insert = ['user','name','last_name'/*,'parent_name','parent_last_name'*/,'email','tel','tel2','regioni','raioni','skola','klasi','ricxvi','tve','weli','logo','date','misamarti']; $values = [$masiv['user'],$masiv['name'],$masiv['last_name']/*,$masiv['parent_name'],$masiv['parent_last_name']*/,$masiv['email'],$masiv['tel'],'', $masiv['regioni'],$masiv['raioni'],$masiv['skola'],$masiv['klasi'],$masiv['ricxvi'],$masiv['tve'], $masiv['weli'],$masiv['file_0'],$time,$masiv['misamarti']]; if(isset($masiv['pass'])){ $insert[] = 'pass'; $values[] = md5($masiv['pass']); } if($_->update("user_register",[$insert,$values,["id",$_->_game_id]])){ header("location:/#updated"); } // if($_->insert("user_register",[$insert,$values])){ // $cookie_name = $_->select("id","user_register","small",["date",$time,"email",$email]); // //$time = 60*60*60*60; // $_SESSION['user_register'] = $cookie_name; // //setcookie("user_register",$cookie_name,time()+3600*$time,'/'); // header("location:".$_->_url_masiv[0][2]); // exit; // }else echo 'no inserted!'; } public function finish_register($a){ $_ = $this; $URL = explode('/',urldecode($_->clier($_SERVER['REQUEST_URI']))); $URL = $_->clier(array_pop($URL)); if(strlen($URL) == 10 && $_->select("code","before_register","small",["code",$URL]) && $_->select("pass","user_register","small",["pass",$URL])){ if($_SERVER['REQUEST_METHOD'] == 'GET'){ $this->render('finish_register', ["user_is_available" => FALSE, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => FALSE, "action" => $a."/".$URL, "url" => $_->lang_url]); }elseif($_SERVER['REQUEST_METHOD'] == 'POST'){ if(isset($_POST['pass']) && strlen($_POST['pass']) >= 6 && $_POST['pass'] == $_POST['pass2']){ $pass = $_->clier($_POST['pass']); $cookie_name = $_->select("*","user_register","small",["pass",$URL]); if($_->update("user_register",[["pass","status"],[md5($pass),1],["pass",$URL]]) && $_->insert("user_balance",[["user_id","cdebi","purchare","date"],[$cookie_name['id'],5,"bonus_on_first_registration_3",time()]]) && $_->delete("before_register",["code",$URL]) ){ // $text = "<div> // ".$cookie_name['parent_name']." ".$cookie_name['parent_last_name']." გმადლობთ რომ ჩართეთ // '".$cookie_name['name']." ".$cookie_name['last_name']."'\n // eruditor.ge ს ონლაინ ოლიმპიადაში\n // გისურვებთ წარმატებებს // </div>"; $text = "<div> ".$cookie_name['user']." გმადლობთ რომ ჩაერთეთ eruditor.ge ს ონლაინ ოლიმპიადაში\n გისურვებთ წარმატებებს </div>"; $_->mail_send($cookie_name['email'],"eruditor.ge",$text,"info@eruditor.ge"); $_SESSION['user_register'] = $cookie_name['id']; header("location:/#finish_register"); exit; } } } }else header("Location:/"); } function reiting_sort($masiv,$iterator = 19){ $_ = $this; //$_->pre($masiv); // echo "<hr/><hr/><hr/><hr/><hr/><hr/>"; if(!count($masiv))return; //$_->pre($masiv); if(count($masiv) <= $iterator)return $masiv[count($masiv) - 1]; $return = (isset($masiv[$iterator]))?$masiv[$iterator]:''; if(isset($masiv[$iterator+1])){ if($return == $masiv[$iterator+1]['answered_cost']){ if($return['date'] > $masiv[$iterator+1]['date']) $return = $masiv[$iterator+1]; } } return $return; } function only_final($array,$klasi,$cost){ $length = count($array); $masiv = []; for($i = 0; $i < $length; $i++){ if(isset($array[$i]['final_'.$klasi]) && $array[$i]['final_'.$klasi] >= $cost) $masiv[] = $array[$i]; }return $masiv; } function reiting_sort_2($masiv,$klasi,$iterator = 20,$cost = 170){ $_ = $this; //echo "<hr/><hr/><hr/><hr/><hr/><hr/>"; if(!count($masiv))return; $final = $_->only_final($masiv, $klasi, $cost); //$_->pre($final); if(count($final) >= $iterator)return $final[$iterator - 1]; $length = count($final); $length2 = count($masiv); for($i = 0; $i < $length2; $i++){ if(isset($masiv[$i]['final_'.$klasi]) && $masiv[$i]['final_'.$klasi] < $cost){ $final[] = $masiv[$i]; }if(count($final) == $iterator)break; } // sort($final); //$_->maines_sort_4($final,'answered_cost'); return (count($final))?$final[count($final) - 1]:$final; //$_->pre($final); // if(count($masiv) <= $iterator)return $masiv[count($masiv) - 1]; // //$_->pre($masiv); // if(count($masiv) <= $iterator-$length)return $masiv[count($masiv) - 1]; // // // $return = (isset($masiv[$iterator]))?$masiv[$iterator]:''; // if(isset($masiv[$iterator+1])){ // if($return == $masiv[$iterator+1]['answered_cost']){ // if($return['date'] > $masiv[$iterator+1]['date']) // $return = $masiv[$iterator+1]; // } // }return $return; } function statistic($a){ $_ = $this; if(!$_->_game_id)return; $bool = ($_->_game_id)?true:false; $bool_status = ($_->game_user('status'))?true:false; $sql = "select T.`id`,T.`user_id`, T.`sagani` , T.`klasi` , T.`date_start` , T.`date` , T.`answered_cost`,T.`question_count`,T3.final_11,T3.final_12 FROM `game_tours_statistic` T join user_register T3 where T.`answered_cost` = ( SELECT max( T2.`answered_cost` ) FROM `game_tours_statistic` T2 WHERE T2.`klasi` = T.`klasi` and T2.`sagani` = T.`sagani` and T2.`user_id` = T.`user_id`) and T3.id = T.user_id ORDER BY T.`answered_cost` DESC"; $select = $_->join_select($sql,'big'); $sels = $select; //$_->pre($sels); //$_->pre($_->inserted_in_klases_array($select)); $obj = new stdClass(); $obj->c_type = "big"; $obj->sql = " and date_end > ".time()." "; $configuration = $_->select("*","olimpiad_menu",$obj)['body']; //$_->pre($sels); $_->return_only_user($sels,$_->_game_id,$configuration); //$reiting = $_->reiting_sort($select); //$_->pre($reiting); $_->maines_sort($sels); // $_->pre($sels); $_->maines_sort_2($sels); $_->find_in_config($sels,$configuration); $length = count($sels); for($i = 0; $i < $length; $i++) $sels[$i]['sagani_names'] = $_->ini('sagani')[$sels[$i]['sagani']]; //$_->pre($configuration); // $_->pre($sels); $obj->sql = " order by date desc"; $sels_2 = $_->select("id,sagani,klasi,date_start,date,answered_cost,question_count","game_tours_statistic", $obj,["user_id",$_->_game_id]); $sels_2 = (count($sels_2))?$sels_2['body']:$sels_2; ///$sels[$i]['sagani'] = $_->ini("sagani")[$sels[$i]['sagani']]; $_->raiting_return($sels,$sels_2); // $arr = [ // [ // 'logo' => 'slide_4_2.png', // 'adgili' => 'I', // 'name' => 'ლეპტოპი' // ], [ // 'logo' => 'slide_4_3.png', // 'adgili' => 'II', // 'name' => 'სმარტფონი' // ], [ // 'logo' => 'slide_4_4.png', // 'adgili' => 'III', // 'name' => 'ტაბლეტი' // ], // // ]; // echo Central::_json_encode($arr); $sagani_array = ['1' => 0,'0' => 1,'6' => 2,'2' => 3,'5' => 4,'4' => 5,'7' => 6,'3' => 7,'8' => 'ena1','9' => 'ena2']; return $this->render('statistic', ["user_is_available" => true, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, //'available_sagani' => $_->available_sagani(), 'url' => $_->lang_url, 'masiv' => $sels, 'ini' => (array)$_->_ini, 'sagani_array' => $sagani_array, 'cdebi' => $_->user_balance('cdebi'), 'status' => $_->game_user('status'), 'user_name' => $_->game_user('user') ]); } function all_cost(){ } function prizes($a){ $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = true; $URL = explode('/',urldecode($_->clier($_SERVER['REQUEST_URI']))); $URL1 = $_->clier(array_search($URL[count($URL) - 1],$_->ini('sagani'))); $obj = new stdClass(); $obj->c_type = "big"; $obj->sql = " and date_end > ".time()." "; $configuration = $_->select("*","olimpiad_menu",$obj)['body']; $length = count($configuration); $available_sagani = []; $ools = []; for($i = 0; $i < $length; $i++){ if(in_array($configuration[$i]['sagani'], $ools))continue; $available_sagani['id'][] = $configuration[$i]['sagani']; $available_sagani['names'][] = $_->ini('sagani')[$configuration[$i]['sagani']]; $ools[] = $configuration[$i]['sagani']; } if(count($URL) < 3)header("Location:".$_SERVER['REQUEST_URI'].'/'.$available_sagani['names'][0]); $klases = $_->order_by($configuration, 'sagani',$URL1); $length = count($klases); for($i = 0; $i < $length; $i++){ $klases[$i]['prizes'] = (array)json_decode($klases[$i]['prizes']); for($j = 0; $j < count($klases[$i]['prizes']); $j++) $klases[$i]['prizes'][$j] = (array)$klases[$i]['prizes'][$j]; } // $_->pre($klases); $sagani_array = ['1' => 0,'0' => 1,'6' => 2,'2' => 3,'5' => 4,'4' => 5,'7' => 6,'3' => 7,'8' => 'ena1','9' => 'ena2']; //$_->pre($available_sagani['names']); return $this->render('prizebi', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, 'available_sagani' => $available_sagani['names'], 'url' => $_->lang_url, //'masiv' => $sels, 'ini' => (array)$_->_ini, 'sagani_array' => $sagani_array, 'cdebi' => ($_->_game_id)?$_->user_balance('cdebi'):'', 'status' => ($_->_game_id)?$_->game_user('status'):'', 'masiv' => $klases, ]); } function _news($a){ $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = true; $URL = explode('/',urldecode($_->clier($_SERVER['REQUEST_URI']))); $URL1 = $URL[count($URL) - 1]; $more = (isset($URL[2]) && is_numeric($URL[2]))?1:0; $file_name = ($more)?'more':'list'; $obj = new stdClass(); $obj->c_type = "big"; $obj->sql = " order by id desc "; if($more) $obj->sql = " and id = ".$_->clier($URL[2]-22)." "; //echo $obj->sql; $select = $_->select("*","news",$obj); $select = (isset($select['body']) && $select['body'])?$select['body']:''; //$_->pre($available_sagani['names']); return $this->render('_news_'.$file_name, ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, // 'available_sagani' => $available_sagani['names'], 'url' => $_->lang_url, //'masiv' => $sels, // 'ini' => (array)$_->_ini, // 'sagani_array' => $sagani_array, 'cdebi' => ($_->_game_id)?$_->user_balance('cdebi'):'', 'status' => ($_->_game_id)?$_->game_user('status'):'', 'masiv' => $select, ]); } function report($a){//guest/test user/real $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = true; $URL = explode('/',urldecode($_->clier($_SERVER['REQUEST_URI']))); $URL1 = $URL[count($URL) - 1]; // $_->pre($URL); try{ if(!isset($URL[2]))throw new Exception("bad request!"); $_id = $URL[2]; if(!$_id)throw new Exception("bad request!"); $_id = explode('|',$_->main_xesh_2($_id,2)); $_page = $_id[0]; $_id = $_id[1]; }catch(Exception $ex){ die($ex->getMessage()); } if($_page == 1)$table_name = ''; elseif($_page == 2)$table_name = '_test_for_users'; elseif($_page == 3)$table_name = '_test_for_guests'; //echo $_->main_xesh_2('1|599'); //echo $_->main_xesh_2('2|456'); //echo "game_tours_statistic".$table_name; $sql = "select t.id,t.user_id,t.sagani,t.klasi,t.question_count,t.total_cost,t.answered_cost,t.score_count,t.date_start,t.date, t2.sagani as _sagani,t2.klasi as _klasi,t2.date_start as _date_start,t2.date_end as _date_end,t2.cost as _cost, t2.tours_duration as _tours_duration,t2.question_max_count as _question_max_count,t2.date as _date,t2.cost_plan as _cost_plain,t2.status as _status, t2.description as _description from game_tours_statistic$table_name t join olimpiad_menu t2 where t.id = $_id and t.sagani = t2.sagani and t.klasi = t2.klasi and t2.date_end > t.date"; //echo "<br/>".$sql."<br/>"; $select_tours = $_->join_select($sql); // $_->pre($select_tours); $obj = new stdClass(); $obj->c_type = "big"; $obj->sql = " and user_id = ".$select_tours['user_id']." and true_answer != 22 and date >= ".$select_tours['date_start']." and date <=".$select_tours['date']." and sagani = ".$select_tours['sagani']." "; $select_rows = $_->select("*","game_raw_statistic".$table_name,$obj); $select_rows = (isset($select_rows['body']) && count($select_rows['body']))?$select_rows['body']:''; //$_->pre($select_rows); //$select_tours = $_->select("*","game_tours_statistic".$table_name,"small",["id",$_id]); if($select_rows){ $length = count($select_rows); $rows_array = []; for($i = 0; $i < $length; $i++) $rows_array[] = $select_rows[$i]['theme']; $sql = "select tema,id from temebi where id in(".join(',',$rows_array).")"; $temebi = $_->join_select($sql,'big'); //$_->pre($temebi); $length2 = count($temebi); for($i = 0; $i < $length; $i++) for($j = 0; $j < $length2; $j++){ if($temebi[$j]['id'] == $select_rows[$i]['theme']) $select_rows[$i]['theme_name'] = $temebi[$j]['tema']; } } $sagani_array = ['1' => 0,'0' => 1,'6' => 2,'2' => 3,'5' => 4,'4' => 5,'7' => 6,'3' => 7,'8' => 'ena1','9' => 'ena2']; $select_tours['sagani_name'] = $_->ini('sagani')[$select_tours['sagani']]; $select_tours['sagani_img'] = $sagani_array[$select_tours['sagani']]; $select_tours['rows'] = $select_rows; $select_tours['user'] = $_->select("*","user_register","small",["id",$select_tours['user_id']]); if($select_tours['user']) $_->_position($select_tours,$select_tours['user']); else $_->_position_guest($select_tours); //$_->pre($_SERVER); $fb = [ 'url' => 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], 'image' => 'http://'.$_SERVER['SERVER_NAME'].'/img/item/fb/'.$select_tours['sagani_img'].'.jpg', 'description' => $select_tours['user']['name'].' '.$select_tours['user']['last_name'].'-ს საბოლოო შედეგია: '.$select_tours['answered_cost'], 'title' => $select_tours['_description'].', '.$_->ini('sagani')[$select_tours['sagani']].', '.$select_tours['klasi'].'-ე კლასი', 'site_name' => $_SERVER['SERVER_NAME'] ]; // $_->pre($select_tours); return $this->render('report', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, 'user_user' => $table_name, 'url' => $_->lang_url, 'cdebi' => ($_->_game_id)?$_->user_balance('cdebi'):'', 'status' => ($_->_game_id)?$_->game_user('status'):'', 'masiv' => $select_tours, 'fb' => $fb ]); } function _position(&$select_tours,$user){ $_ = $this; $obj = new stdClass(); $obj->c_type = 'select_count'; //global position $obj->sql = " and answered_cost > ".$select_tours['answered_cost']." and user_id != ".$user['id']." and sagani = ".$select_tours['sagani']." GROUP BY user_id "; $select_tours['position'] = $_->select("count(id)","game_tours_statistic",$obj); // $select_tours['position_sql'] = $obj->sql; $select_tours['region_name'] = $user['regioni']; $select_tours['raion_name'] = $user['raioni']; $select_tours['school_name'] = $_->select("json_name","alls.school","small",["id",$user['skola']]); $obj->sql = " and answered_cost > ".$select_tours['answered_cost']." and user_id != ".$user['id']." and sagani = ".$select_tours['sagani']." "; $sql = $obj->sql; //region position $obj->sql = $sql." and user_id in(".$_->_in_select("select id from user_register where regioni = '".$user['regioni']."'").") GROUP BY user_id "; // echo $obj->sql; $select_tours['position_regioni'] = $_->select("count(id)","game_tours_statistic",$obj); //$select_tours['position_region_sql'] = $obj->sql; //raion position $obj->sql = $sql." and user_id in(".$_->_in_select("select id from user_register where raioni = '".$user['raioni']."'").") GROUP BY user_id "; $select_tours['position_raioni'] = $_->select("count(id)","game_tours_statistic",$obj); //$select_tours['position_raion_sql'] = $obj->sql; //school position $obj->sql = $sql." and user_id in(".$_->_in_select("select id from user_register where skola = '".$user['skola']."'").") GROUP BY user_id "; $select_tours['position_skola'] = $_->select("count(id)","game_tours_statistic",$obj); //$select['position_school_sql'] = $obj->sql; //$_->pre($_->_in_select("select * from user_register where regioni = 'თბილისი'")); $select_tours['position'] = ($select_tours['position'])?$select_tours['position']+1:1; $select_tours['position_regioni'] = ($select_tours['position_regioni'])?$select_tours['position_regioni']+1:1; $select_tours['position_raioni'] = ($select_tours['position_raioni'])?$select_tours['position_raioni']+1:1; $select_tours['position_skola'] = ($select_tours['position_skola'])?$select_tours['position_skola']+1:1; } function _position_guest(&$select_tours){ $_ = $this; $select_tours['position'] = ''; $select_tours['position_regioni'] = ''; $select_tours['position_raioni'] = ''; $select_tours['position_skola'] = ''; $select_tours['region_name'] = ''; $select_tours['raion_name'] = ''; $select_tours['school_name'] = ''; // $obj = new stdClass(); $obj->c_type = 'select_count'; //global position $obj->sql = " and answered_cost > ".$select_tours['answered_cost']." and sagani = ".$select_tours['sagani']." GROUP BY user_id "; $select_tours['position'] = $_->select("count(id)","game_tours_statistic",$obj); // $select_tours['position_sql'] = $obj->sql; $json_select = $_->select("*","share","small",["page_id",$select_tours['id']]); if(!$json_select)return; $select_tours['user']['name'] = $json_select['name']; $select_tours['user']['last_name'] = ''; $select_tours['region_name'] = $json_select['regioni']; $select_tours['raion_name'] = $json_select['raioni']; $select_tours['school_name'] = $_->select("json_name","alls.school","small",["id",$json_select['school']]); $obj->sql = " and answered_cost > ".$select_tours['answered_cost']." and sagani = ".$select_tours['sagani']." "; $sql = $obj->sql; //region position $obj->sql = $sql." and user_id in(".$_->_in_select("select id from user_register where regioni = '".$json_select['regioni']."'").") GROUP BY user_id "; // echo $obj->sql; $select_tours['position_regioni'] = $_->select("count(id)","game_tours_statistic",$obj); //$select_tours['position_region_sql'] = $obj->sql; //raion position $obj->sql = $sql." and user_id in(".$_->_in_select("select id from user_register where raioni = '".$json_select['raioni']."'").") GROUP BY user_id "; $select_tours['position_raioni'] = $_->select("count(id)","game_tours_statistic",$obj); //$select_tours['position_raion_sql'] = $obj->sql; //school position $obj->sql = $sql." and user_id in(".$_->_in_select("select id from user_register where skola = '".$json_select['school']."'").") GROUP BY user_id "; $select_tours['position_skola'] = $_->select("count(id)","game_tours_statistic",$obj); //$select['position_school_sql'] = $obj->sql; //$_->pre($_->_in_select("select * from user_register where regioni = 'თბილისი'")); $select_tours['position'] = ($select_tours['position'])?$select_tours['position']+1:1; $select_tours['position_regioni'] = ($select_tours['position_regioni'])?$select_tours['position_regioni']+1:1; $select_tours['position_raioni'] = ($select_tours['position_raioni'])?$select_tours['position_raioni']+1:1; $select_tours['position_skola'] = ($select_tours['position_skola'])?$select_tours['position_skola']+1:1; } function _in_select($sql,$column = "id"){ $_ = $this; $select = $_->join_select($sql,"big"); $arr = [0]; if($select && count($select)){ $length = count($select); for($i = 0; $i < $length; $i++){ $arr[] = $select[$i][$column]; } }return join(',',$arr); } function _news_view(){ $_ = $this; $obj = new stdClass(); $obj->c_type = "big"; $obj->sql = " order by id desc limit 5"; $select = $_->select("*","news",$obj); $select = (isset($select['body']) && $select['body'])?$select['body']:''; return $select; } function order_by($array,$key,$value){ $_ = $this; $length = count($array); $masiv = []; for($i = 0; $i < $length; $i++){ if($array[$i][$key] == $value) $masiv[] = $array[$i]; } return $masiv; } function group_by($array,$key){ $_ = $this; $length = count($array); $mas = []; $masiv = []; for($i = 0; $i < $length; $i++){ if(!in_array($array[$i][$key], $mas)) $masiv[] = $array[$i]; $mas[] = $array[$i][$key]; } return $masiv; } function inserted_in_klases_array($array){ $length = count($array); $masiv = []; for($i = 0; $i < $length; $i++){ $masiv[$array[$i]['sagani'].'|'.$array[$i]['klasi']][] = $array[$i]; }return $masiv; } function return_only_user_3($array){ $_ = $this; $length = count($array); $masiv = []; $array1 = []; for($i = 0; $i < $length; $i++){ if(isset($array[$i]['user_id']) && !in_array($array[$i]['user_id'],$masiv)){ $masiv[] = $array[$i]['user_id']; $array1[] = $array[$i]; } } return $array1; } function global_sort($masiv){ $_ = $this; if(!count($masiv))return; foreach($masiv as $key => $value){ if(isset($masiv[$key])) $masiv = $_->return_only_user_3($masiv[$key]); } } function return_only_user(&$array,$user_id,$configuration){ $_ = $this; $raiting_array = $_->inserted_in_klases_array($array); $raiting_array1 = $_->global_sort($raiting_array); //$_->global_sort($raiting_array1); //$_->pre($raiting_array); $length = count($array); $masiv = []; for($i = 0; $i < $length; $i++){ if($array[$i]['user_id'] == $user_id){ $array[$i]['raiting'] = $_->reiting_sort($raiting_array[$array[$i]['sagani'].'|'.$array[$i]['klasi']]); $mas_mas = $raiting_array[$array[$i]['sagani'].'|'.$array[$i]['klasi']]; $_->mmm($mas_mas); $array[$i]['my_raiting'] = $_->my_raiting($mas_mas,$array[$i]['klasi']); $masiv[] = $array[$i]; } }$array = $masiv; } function return_only_user_2($array,$sagani_klasi_name,$sagani_klasi){ $_ = $this; if(!$_->_game_id)return []; $length = count($array); $masiv = []; for($i = 0; $i < $length; $i++){ if($array[$i]['user_id'] == $_->_game_id && $array[$i][$sagani_klasi_name] == $sagani_klasi){ $masiv[] = $array[$i]; } }return $masiv; } function _in_array($array,$key,$value){ $length = count($array); if(gettype($key) == 'array'){ for($i = 0; $i < $length; $i++){ if($array[$i][$key[0]] == $value[0] && $array[$i][$key[1]] == $value[1])return true; } }else{ for($i = 0; $i < $length; $i++){ if($array[$i][$key] == $value)return true; } } return false; } function mmm(&$array,$keys = 'user_id'){ $_ = $this; //$_->pre($array); // echo '-------------------------'; $length = count($array); $mas = []; foreach($array as $key => $value){ if(in_array($value[$keys], $mas))array_slice($array,$key,1); $mas[] = $value[$keys]; } //sort($array); // if(self::$i == 1) //$_->pre($array); //$_->maines_sort_4($array,'answered_cost'); //if(self::$i == 1) // $_->pre($array); } function group_by_sagani_klasi(&$array,$sagani_klasi,$mas,$_user,$config,$boolean = 1,$boolean2 = 1){ $_ = $this; $masiv = []; if($boolean2 == 1){ $first = 'sagani'; $second = 'klasi'; }else{ $first = 'klasi'; $second = 'sagani'; } $original = $array; $raiting_array = $_->inserted_in_klases_array($array); //$_->pre($raiting_array); $length = count($original); $arrays = ['1' => 0,'0' => 1,'6' => 2,'2' => 3,'5' => 4,'4' => 5,'7' => 6,'3' => 7,'8' => 'ena1','9' => 'ena2']; //if($boolean)$_->pre($raiting_array); // $_->pre($config); if($boolean && count($config) && $first == 'sagani'){ //$_->pre($raiting_array); for($i = 0; $i < count($config); $i++){ $mm[$i]['sagani_name'] = $_->ini('sagani')[$config[$i]['sagani']]; $mm[$i]['sagani_image'] = $arrays[$config[$i]['sagani']]; $mm[$i]['raiting'] = '';//$_->reiting_sort($raiting_array[$config[$i]['sagani'].'|'.$config[$i]['klasi']]); $mm[$i]['sagani'] = $config[$i]['sagani']; $mm[$i]['klasi'] = $config[$i]['klasi']; $mm[$i]['answered_cost'] = 0; $mm[$i]['question_count'] = 0; } if(count($mm)) for($i = 0; $i < count($mm); $i++) if(!$_->_in_array($array, ['sagani','klasi'], [$mm[$i]['sagani'],$mm[$i]['klasi']])) array_push($array, $mm[$i]); } //$_->pre($array); for($i = 0; $i < $length; $i++){ if($boolean){ $array[$i]['sagani_name'] = $_->ini('sagani')[$array[$i]['sagani']]; $array[$i]['sagani_image'] = $arrays[$array[$i]['sagani']]; $mas_mas = $raiting_array[$array[$i]['sagani'].'|'.$array[$i]['klasi']]; //$_->mmm($mas_mas); // $_->pre($mas_mas); $array[$i]['raiting'] = $_->reiting_sort_2($mas_mas,$array[$i]['klasi']); //if() if(isset($array[$i]['user_id'])){ $array[$i]['my_raiting'] = '---'; if(isset($original[$i]['sagani']) && isset($original[$i]['klasi'])){ $mas_mas = $raiting_array[$original[$i]['sagani'].'|'.$original[$i]['klasi']]; $_->mmm($mas_mas); //$_->pre($mas_mas); $array[$i]['my_raiting'] = $_->my_raiting($mas_mas,$original[$i]['klasi']); } } $array[$i]['maines'] = ''; if(isset($array[$i][$first]) && $array[$i][$first] != $sagani_klasi)unset($array[$i]); if(isset($array[$i][$second]) && in_array($array[$i][$second], $masiv))unset($array[$i]); if(isset($array[$i][$second]) && !in_array($array[$i][$second], $mas))unset($array[$i]); } $masiv[] = (isset($array[$i][$second]))?$array[$i][$second]:''; } sort($array); if($boolean){ //$_->pre($array); $length = count($array); $length2 = count($_user); for($i = 0; $i < $length; $i++){ for($j = 0; $j < $length2; $j++){ if($array[$i]['sagani'] == $_user[$j]['sagani'] && $array[$i]['klasi'] == $_user[$j]['klasi']) $array[$i]['maines'] = $_user[$j]; } }//$_->pre($array); } } function group_by_klasi(&$array,$klasi,$boolean = 1){ $_ = $this; $masiv = []; $length = count($array); for($i = 0; $i < $length; $i++){ if($boolean){ if(isset($array[$i]['klasi']) && $array[$i]['klasi'] != $klasi)unset($array[$i]); if(isset($array[$i]['sagani']) && in_array($array[$i]['sagani'], $masiv))unset($array[$i]); } $masiv[] = (isset($array[$i]['sagani']))?$array[$i]['sagani']:''; }sort($array); } function my_raiting($array,$klasi){ $_ = $this; if(!$_->_game_id)return 0; $id = '---'; $date = 0; $cost = 0; //$_->pre($array); // echo "<br/><br/><hr/><hr/>"; $length = count($array); $final = $_->only_final($array, $klasi, 170); // $_->pre($final); $length2 = count($final); if(count($final)){ for($i = 0; $i < $length2; $i++){ if(isset($final[$i]['user_id']) && $final[$i]['user_id'] == $_->_game_id){ return $i+1; } // $ud = $final[$i]['answered_cost']; } } // for($i = 0; $i < $length; $i++){ // if(isset($array[$i]['final_'.$klasi])) // if(isset($array[$i]['user_id']) && $array[$i]['final_'.$klasi] < 0 && $array[$i]['user_id'] == $_->_game_id) // return $i+1; // } return '---'; } function find_in_config_2(&$array,$array2,$array3){ $_ = $this; $length = count($array); $length2 = count($array2); $masiv = []; for($i = 0; $i < $length; $i++){ for($j = 0; $j < $length2; $j++){ if($array[$i]['sagani'] == $array2[$j]['sagani'] && $array[$i]['klasi'] == $array2[$j]['klasi']){ $array[$i]['raiting'] = $array2[$j]; } } } // if(!count($masiv) || count($masiv) < count($array2)){die; // $raiting_array = $_->inserted_in_klases_array($array3); // for($j = 0; $j < $length2; $j++){ // $masiv[$j] = $array2[$j]; // $masiv[$j]['raiting'] = $_->reiting_sort($raiting_array[$array2[$j]['sagani'].'|'.$array2[$j]['klasi']]); // $masiv[$j]['my_raiting'] = '---'; // $masiv[$j]['answered_cost'] = '---'; // $masiv[$j]['question_count'] = '---'; // // } // // } //$_->pre($masiv); //$array = $masiv; } function find_in_config(&$array,$array2){ $length = count($array); $length2 = count($array2); for($i = 0; $i < $length; $i++){ for($j = 0; $j < $length2; $j++){ //$array[$i]['raiting'] = $_->reiting_sort($array[$i]); if($array[$i]['sagani'] == $array2[$j]['sagani'] && $array[$i]['klasi'] == $array2[$j]['klasi']){ $array[$i]['question_max_count'] = $array2[$j]['question_max_count']; $array[$i]['tours_duration'] = $array2[$j]['tours_duration']; } } } } private function raiting_return(&$sels,$sels_2){ $first_size = count($sels); $second_size = count($sels_2); for($i = 0; $i < $first_size; $i++){ $sels[$i]['maines'] = (!$sels[$i]['answered_cost'])?100:$sels[$i]['answered_cost']; $sels[$i]['html'] = ''; for($j = 0; $j < $second_size; $j++){ if(isset($sels_2[$j]) && $sels[$i]['klasi'] == $sels_2[$j]['klasi'] && $sels[$i]['sagani'] == $sels_2[$j]['sagani']){ $sels_2[$j]['human_date'] = date("d/m/Y H:i",$sels_2[$j]['date']); $sels[$i]['html'] .= $this->make_raiting($sels_2[$j],$sels[$i]['answered_cost']); } } } } private function make_raiting($a,$b){ $value = (!$b)?$b:(((100/$b)*$a['answered_cost'])*1);//$b+(100-$b);//($b > 80)?$a['answered_cost']:floor($a['answered_cost']*1.2); $value = $a['answered_cost']; $value = ($a['answered_cost'] < 0)?0:$value; $html = ' <tr><td valign="bottom" height="20"> <div class="progres_grafik" style="height:20px; width:'.$value.'%;"> <div class="progres_cost">'.$a['answered_cost'].' ქ, '.date("i:s",$a['date'] - $a['date_start']).' წ,</div> <div class="progres_date">'.$a['human_date'].'</div> </div> <div class="report_button button_5" onclick="location.href=\'/რეპორტი/'.$this->main_xesh_2('1|'.$a['id']).'\'">რეპორტი</div> </td></tr>'; return $html; } // private function make_raiting($a,$b){ // $value = (!$b)?$b:(((100/$b)*$a['answered_cost'])*1);//$b+(100-$b);//($b > 80)?$a['answered_cost']:floor($a['answered_cost']*1.2); // $html = ' <td valign="bottom" height="90"> // <label title="'.$a['human_date'].'"></label> // <div title="'.$a['answered_cost'].' ქულა '.$a['human_date'].'" class="progres_grafik" style="height:'.$value.'%"></div> // </td>'; // return $html; // } // public function maines_sort(&$arr,$kasi = 'klasi'){ $size = count($arr); for($i = 0; $i < $size; $i++){ for($j = 0; $j < $size-1-$i; $j++){ if($arr[$j+1][$kasi] < $arr[$j][$kasi]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $tmp; } } }//return $arr; } public function maines_sort_4(&$arr,$kasi = 'klasi'){ $size = count($arr); for($i = 0; $i < $size; $i++){ for($j = 0; $j < $size-1-$i; $j++){ if($arr[$j+1][$kasi] > $arr[$j][$kasi]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $tmp; } } }//return $arr; } public function maines_sort3($arr,$kasi = 'klasi'){ $length = count($arr); $max = 0; for($i = 0; $i < $length; $i++){ if($arr[$i]['user_id'] != $klasi)continue; $max = ($arr[$i]['date'] > $max)?$arr[$i]['date']:$max; }return $arr; } public function maines_sort_2(&$arr){ $_ = $this; $return = []; $size = count($arr); $array = []; for($i = 0; $i < $size; $i++){ if(!in_array($arr[$i]['klasi'].'|'.$arr[$i]['sagani'],$array)) $return[] = $arr[$i]; $array[] = $arr[$i]['klasi'].'|'.$arr[$i]['sagani']; }$arr = $return; } function contact($a){ $_ = $this; $bool = ($_->_game_id)?true:false; $bool_status = ($_->_game_id && $_->game_user('status'))?true:false; return $this->render('contact', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, 'available_sagani' => $_->available_sagani(), '_news' => $_->_news_view(), 'url' => $_->lang_url]); } function main_math($params){ $question_count = $params['question_count']; $question_max_count = $params['question_max_count']; $tours_duration = $params['tours_duration']; $date = $params['date']; $date_start = $params['date_start']; if($question_count >= $question_max_count) return (!isset($params['times']))?date('i:s',($date - $date_start)):$date - $date_start; else return (!isset($params['times']))?date('i:s',$tours_duration):$tours_duration; } function test_sponsors($parans){ $_ = $this; if(!$_->_game_id)die; $bool = ($_->_game_id)?true:false; $bool_status = ($_->_game_id && $_->game_user('status'))?true:false; $sponsors = $_->return_sponsors(); // $_->pre($sponsors); return $this->render('test_sponsors', ["user_is_available" => $bool, "user_info" => ($_->_game_id)?$_->game_user():'', "user_is_available_status" => $bool_status, 'available_sagani' => $_->available_sagani(), 'url' => $_->lang_url, 'select' => $sponsors]); } }//END CLASS///// ?>