541 lines
15 KiB
PHP
541 lines
15 KiB
PHP
<?php
|
|
|
|
/**
|
|
* MILESTONE
|
|
*/
|
|
class milestone
|
|
{
|
|
private $ms_id;
|
|
private $ms_type_mt_id;
|
|
private $ms_training_mst_id = null;
|
|
private $ms_competition_msc_id = null;
|
|
private $ms_camp_msca_id = null;
|
|
private $ms_ranking_msr_id = null;
|
|
private $ms_user_kid_uk_id;
|
|
private $ms_sums; //text
|
|
|
|
private $season;
|
|
|
|
public function set_ms_data_by_id($_ms_id) {
|
|
global $sql;
|
|
$cat_assoc_array = $sql->assoc_array("select * from milestone where ms_id = " . $_ms_id);
|
|
$cat_array = $cat_assoc_array[0];
|
|
//alapadatok
|
|
foreach ($cat_array as $field => $value) {
|
|
$function_name = "set_" . $field;
|
|
$this->$function_name($value);
|
|
|
|
if ($field == 'ms_type_mt_id' && $value != null) {
|
|
$new_mt = new milestone_type();
|
|
$new_mt->set_mt_data_by_id($value);
|
|
$this->set_ms_type_mt_id($new_mt);
|
|
}
|
|
|
|
if ($field == 'ms_training_mst_id' && $value != null) {
|
|
$new_mst = new milestone_training();
|
|
$new_mst->set_mst_data_by_id($value);
|
|
$this->set_ms_training_mst_id($new_mst);
|
|
}
|
|
|
|
if ($field == 'ms_competition_msc_id' && $value != null) {
|
|
$new_msc = new milestone_competition();
|
|
$new_msc->set_msc_data_by_id($value);
|
|
$this->set_ms_competition_msc_id($new_msc);
|
|
}
|
|
|
|
if ($field == 'ms_camp_msca_id' && $value != null) {
|
|
$new_msca = new milestone_camp();
|
|
$new_msca->set_msca_data_by_id($value);
|
|
$this->set_ms_camp_msca_id($new_msca);
|
|
}
|
|
|
|
if ($field == 'ms_ranking_msr_id' && $value != null) {
|
|
$new_msr = new milestone_ranking();
|
|
$new_msr->set_msr_data_by_id($value);
|
|
$this->set_ms_ranking_msr_id($new_msr);
|
|
}
|
|
|
|
if ($field == 'ms_season' && $value != null) {
|
|
$new_mss = new milestone_season();
|
|
$new_mss->set_mss_data_by_id($value);
|
|
$this->set_ms_season($new_mss);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static function create_ms($_mt, $_season, $_uk, $_mst = null, $_msc = null, $_msca = null, $_msr = null, $_sums = null)
|
|
{
|
|
global $sql;
|
|
return $sql->insert_into('milestone', array(
|
|
'ms_type_mt_id' => $_mt,
|
|
'ms_season' => $_season,
|
|
'ms_user_kid_uk_id' => $_uk,
|
|
'ms_training_mst_id' => $_mst,
|
|
'ms_competition_msc_id' => $_msc,
|
|
'ms_ranking_msr_id' => $_msr,
|
|
'ms_camp_msca_id' => $_msca,
|
|
'ms_sums' => $_sums,
|
|
), false);
|
|
}
|
|
|
|
public function get_ms_month() {
|
|
if (null !== $this->ms_competition_msc_id) {
|
|
return $this->ms_competition_msc_id->get_msc_month();
|
|
}
|
|
elseif (null !== $this->ms_training_mst_id) {
|
|
return $this->ms_training_mst_id->get_mst_month();
|
|
}
|
|
elseif (null !== $this->ms_camp_msca_id) {
|
|
return $this->ms_camp_msca_id->get_msca_month();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_id()
|
|
{
|
|
return $this->ms_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_id($ms_id)
|
|
{
|
|
$this->ms_id = $ms_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_season()
|
|
{
|
|
return $this->ms_season;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_season
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_season($ms_season)
|
|
{
|
|
$this->ms_season = $ms_season;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_type_mt_id()
|
|
{
|
|
return $this->ms_type_mt_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_type_mt_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_type_mt_id($ms_type_mt_id)
|
|
{
|
|
$this->ms_type_mt_id = $ms_type_mt_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_training_mst_id()
|
|
{
|
|
return $this->ms_training_mst_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_training_mst_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_training_mst_id($ms_training_mst_id)
|
|
{
|
|
$this->ms_training_mst_id = $ms_training_mst_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_competition_msc_id()
|
|
{
|
|
return $this->ms_competition_msc_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_competition_msc_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_competition_msc_id($ms_competition_msc_id)
|
|
{
|
|
$this->ms_competition_msc_id = $ms_competition_msc_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_camp_msca_id()
|
|
{
|
|
return $this->ms_camp_msca_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_camp_msca_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_camp_msca_id($ms_camp_msca_id)
|
|
{
|
|
$this->ms_camp_msca_id = $ms_camp_msca_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_ranking_msr_id()
|
|
{
|
|
return $this->ms_ranking_msr_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_ranking_msr_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_ranking_msr_id($ms_ranking_msr_id)
|
|
{
|
|
$this->ms_ranking_msr_id = $ms_ranking_msr_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_user_kid_uk_id()
|
|
{
|
|
return $this->ms_user_kid_uk_id;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_user_kid_uk_id
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_user_kid_uk_id($ms_user_kid_uk_id)
|
|
{
|
|
$this->ms_user_kid_uk_id = $ms_user_kid_uk_id;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function get_ms_sums()
|
|
{
|
|
return $this->ms_sums;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $ms_sums
|
|
*
|
|
* @return self
|
|
*/
|
|
public function set_ms_sums($ms_sums)
|
|
{
|
|
$this->ms_sums = $ms_sums;
|
|
|
|
return $this;
|
|
}
|
|
|
|
private static function is_valid($str) {
|
|
return !preg_match('/([A-ZÁÉÚŐÓÜŰÖÍa-z0-9áéúőóüűöí\_\-\ \,\.\:\?\;])/', $str);
|
|
}
|
|
|
|
public static function upload_file($file)
|
|
{
|
|
global $sql;
|
|
|
|
|
|
$nameToSearch = trim(substr($_FILES['fileToUpload']['name'],0,-4));
|
|
|
|
$kid = $sql->single_variable('SELECT uk_id FROM user_kid WHERE uk_name = "' . $nameToSearch . '";');
|
|
|
|
if (!$kid) {
|
|
return 1; //nem talalhato gyerek
|
|
}
|
|
|
|
$sql->execute_query('DELETE milestone_training FROM milestone_training JOIN milestone ON ms_training_mst_id = mst_id WHERE ms_user_kid_uk_id = ' . $kid);
|
|
$sql->execute_query('DELETE milestone_competition FROM milestone_competition JOIN milestone ON ms_competition_msc_id = msc_id WHERE ms_user_kid_uk_id = ' . $kid);
|
|
$sql->execute_query('DELETE milestone_camp FROM milestone_camp JOIN milestone ON ms_camp_msca_id= msca_id WHERE ms_user_kid_uk_id = ' . $kid);
|
|
$sql->execute_query('DELETE milestone_ranking FROM milestone_ranking JOIN milestone ON ms_ranking_msr_id= msr_id WHERE ms_user_kid_uk_id = ' . $kid);
|
|
$sql->execute_query('DELETE milestone_season FROM milestone_season JOIN milestone ON ms_season = mss_id WHERE ms_user_kid_uk_id = ' . $kid);
|
|
|
|
|
|
$content = file($_FILES['fileToUpload']['tmp_name']); //makes array
|
|
$newcontent = [];
|
|
foreach ($content as $lineNo => $line) {
|
|
//$line = utf8_decode($line);
|
|
//$line = iconv("UTF-8", "UTF-8//IGNORE", $line);
|
|
$valid = self::is_valid($line);
|
|
if (!$valid) {
|
|
$correctedStr = preg_replace('/[^A-ZÁÉÚŐÓÜŰÖÍa-z0-9áéúőóüűöí\_\-\ \,\.\:\?\;]/', '', $line);
|
|
$newcontent[$lineNo] = $correctedStr;
|
|
}
|
|
else {
|
|
$newcontent[$lineNo] = $line;
|
|
}
|
|
|
|
//$line = mb_convert_encoding($line, 'UTF-8', 'UTF-8');
|
|
}
|
|
//x
|
|
//var_dump($newcontent);
|
|
//die();
|
|
//die();
|
|
|
|
/*
|
|
Szerkezet:
|
|
|
|
s 2018-2019 --> szezon: ez megy a fejlécbe, ami lenyílik
|
|
x edzés *
|
|
y verseny *
|
|
|
|
e 2018 10 --> edzés éééé-hh
|
|
dátum F
|
|
2 edzés F
|
|
1 csoportos *
|
|
1 külön *
|
|
|
|
v --> verseny
|
|
Dátum F
|
|
Diákolimpia F
|
|
Kiskunfélegyháza F
|
|
Korcsoport F
|
|
Helyezés F
|
|
Mérkőzések: *
|
|
Egyéni 1. hely *
|
|
Páros 2. hely *
|
|
|
|
t 2016-07 ---> tábor
|
|
2018. július 17-24.
|
|
Budapest, Hodos
|
|
|
|
r 2018-09 ---> ranglista
|
|
2018. szeptember - 39. hét
|
|
felnőtt női egyéni: 28. hely
|
|
felnőtt női páros: 24. hely
|
|
felnőtt női vegyes páros: 23. hely
|
|
U19 lány egyéni: 32. hely
|
|
U19 lány páros: 20. hely
|
|
U19 lány vegyes páros: 23. hely
|
|
U17 lány egyéni: 18. hely
|
|
U17 lány páros: 17. hely
|
|
U17 lány vegyes páros: 12. hely
|
|
|
|
A fájlt kötelező szezonnal kezdeni!
|
|
|
|
*/
|
|
|
|
$milestoneId = null;
|
|
//var_dump($newcontent);
|
|
for ($lineNo = 0; $lineNo < count($newcontent); ++$lineNo) {
|
|
//var_dump($lineNo);
|
|
$line = $newcontent[$lineNo];
|
|
|
|
//var_dump($line);
|
|
//var_dump(0 === $lineNo, substr($line, 0, 1));
|
|
|
|
//1. sor lekezelése: ha nem szezon, akkor hiba!
|
|
if (0 === $lineNo && 's' != substr($line, 0, 1)) {
|
|
return 3;
|
|
}
|
|
|
|
//ha nincs beállítva ms id, akkor új egység következik és beállítjuk
|
|
if (null === $milestoneId) {
|
|
$milestoneId = substr($line, 0, 1);
|
|
//var_dump($line);
|
|
//var_dump($milestoneId);
|
|
//$ms = new milestone();
|
|
//$mss_id = null;
|
|
$mst_id = 'null';
|
|
$msc_id = 'null';
|
|
$msca_id = 'null';
|
|
$msr_id = 'null';
|
|
$sums = 'null';
|
|
$type = 'null';
|
|
}
|
|
//var_dump($milestoneId);
|
|
switch ($milestoneId) {
|
|
case 's':
|
|
# SZEZON
|
|
$mss_text = "";
|
|
|
|
$j = $lineNo;
|
|
while(isset($newcontent[$j]) && !empty(trim($newcontent[$j]))) {
|
|
//ha még csak a szezon első sorát olvassuk, akkor csak az "s" után rész kell
|
|
if ($j == $lineNo) {
|
|
//$newcontent[$j] = substr($newcontent[$j], 2);
|
|
$j++;
|
|
continue;
|
|
}
|
|
$mss_text .= trim($newcontent[$j]) . '\n';
|
|
//++$lineNo;
|
|
$j++;
|
|
}
|
|
$lineNo = $j;
|
|
//var_dump($lineNo);
|
|
$mss_id = milestone_season::create_mss($mss_text);
|
|
|
|
break;
|
|
case 'e':
|
|
# EDZÉS
|
|
$type = 1;
|
|
|
|
$mst = new milestone_training;
|
|
|
|
++$lineNo;
|
|
$mst_date = trim($newcontent[$lineNo]);
|
|
//var_dump('date: ' . $mst_date);
|
|
|
|
++$lineNo;
|
|
$mst_count = trim($newcontent[$lineNo]);
|
|
|
|
$j = $lineNo + 1;
|
|
$mst_trainings = "";
|
|
while(isset($newcontent[$j]) && !empty(trim($newcontent[$j]))) {
|
|
$mst_trainings .= trim($newcontent[$j]) . '\n';
|
|
++$j;
|
|
}
|
|
$lineNo = $j;
|
|
//var_dump($mst_date, $mst_count, $mst_trainings);
|
|
$mst_id = milestone_training::create_mst($mst_date, $mst_count, $mst_trainings);
|
|
|
|
break;
|
|
|
|
case 't':
|
|
# TÁBOR
|
|
$type = 3;
|
|
|
|
++$lineNo;
|
|
$msca_date = trim($newcontent[$lineNo]);
|
|
|
|
++$lineNo;
|
|
$msca_place = trim($newcontent[$lineNo]);
|
|
|
|
$msca_id = milestone_camp::create_msca($msca_date, $msca_place);
|
|
|
|
break;
|
|
|
|
case 'v':
|
|
# VERSENY
|
|
$type = 2;
|
|
|
|
++$lineNo;
|
|
$msc_date = trim($newcontent[$lineNo]);
|
|
|
|
++$lineNo;
|
|
$msc_name = trim($newcontent[$lineNo]);
|
|
|
|
++$lineNo;
|
|
$msc_location = trim($newcontent[$lineNo]);
|
|
|
|
++$lineNo;
|
|
$msc_category = trim($newcontent[$lineNo]);
|
|
|
|
|
|
++$lineNo;
|
|
$msc_place = trim($newcontent[$lineNo]);
|
|
|
|
++$lineNo;
|
|
if (isset($newcontent[$lineNo]) && !empty(trim($newcontent[$lineNo]))) {
|
|
++$lineNo; //mérkőzések szöveg
|
|
$matches = '';
|
|
do {
|
|
$matches .= trim($newcontent[$lineNo]) . '\n';
|
|
++$lineNo;
|
|
} while (isset($newcontent[$lineNo]) && !empty(trim($newcontent[$lineNo])));
|
|
}
|
|
else {
|
|
$matches = 'null';
|
|
}
|
|
|
|
$msc_id = milestone_competition::create_msc($msc_date, $msc_name, $msc_category, $msc_location, $msc_place, $matches);
|
|
|
|
break;
|
|
|
|
case 'r':
|
|
# RANGLISTA
|
|
|
|
$type = 4;
|
|
|
|
//get season after 'r'
|
|
$msr_season = trim(substr($newcontent[$lineNo], 2));
|
|
|
|
++$lineNo;
|
|
$msr_date = trim($newcontent[$lineNo]);
|
|
|
|
++$lineNo;
|
|
$rankings = '';
|
|
do {
|
|
$rankings .= trim($newcontent[$lineNo]) . '\n';
|
|
++$lineNo;
|
|
} while (isset($newcontent[$lineNo]) && !empty(trim($newcontent[$lineNo])));
|
|
|
|
$msr_id = milestone_ranking::create_msr($msr_date, $rankings, $msr_season);
|
|
|
|
break;
|
|
|
|
default:
|
|
# code...
|
|
break;
|
|
}
|
|
|
|
//todo: ezeket a változókat mindenképp be kell állítani h ne legyenek undefined-ok
|
|
if ('null' != $type) {
|
|
self::create_ms($type, $mss_id, $kid, $mst_id, $msc_id, $msca_id, $msr_id, $sums);
|
|
}
|
|
$milestoneId = null;
|
|
//$lineNo++;
|
|
|
|
|
|
//ha üres sor, akkor:
|
|
//eddig adatok rögzítése az adatbázisban
|
|
//ID nullozása
|
|
|
|
|
|
|
|
} //endfor
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
?>
|