1
|
|
|
<?php |
2
|
|
|
namespace modules\bataille\app\controller; |
3
|
|
|
|
4
|
|
|
|
5
|
|
|
use core\App; |
6
|
|
|
use core\HTML\flashmessage\FlashMessage; |
7
|
|
|
|
8
|
|
|
class Profil { |
9
|
|
|
private $vacances; |
10
|
|
|
|
11
|
|
|
//-------------------------- BUILDER ----------------------------------------------------------------------------// |
12
|
|
|
public function __construct() { |
13
|
|
|
if ($this->getTestModeVacances() == 1) { |
14
|
|
|
if ($this->getDureeVacances() < 2) { |
15
|
|
|
FlashMessage::setFlash("Vous ne pouvez pas vous reconnecter sur votre compte car le mode vacances n'est pas actif depuis plus de 48h !"); |
16
|
|
|
$this->vacances = "<48"; |
17
|
|
|
return; |
18
|
|
|
} |
19
|
|
|
|
20
|
|
|
$this->vacances = ">48"; |
21
|
|
|
return; |
22
|
|
|
|
23
|
|
|
} |
24
|
|
|
|
25
|
|
|
$this->vacances = false; |
26
|
|
|
return; |
27
|
|
|
} |
28
|
|
|
//-------------------------- END BUILDER ----------------------------------------------------------------------------// |
29
|
|
|
|
30
|
|
|
|
31
|
|
|
//-------------------------- GETTER ----------------------------------------------------------------------------// |
32
|
|
|
public function getVacances(){ |
33
|
|
|
return $this->vacances; |
34
|
|
|
} |
35
|
|
|
|
36
|
|
|
/** |
37
|
|
|
* @return string |
38
|
|
|
* fonction qui test si le compte est en mode vacances ou pas |
39
|
|
|
*/ |
40
|
|
|
public function getTestModeVacances() { |
41
|
|
|
$dbc = App::getDb(); |
42
|
|
|
$vacances = 0; |
43
|
|
|
$query = $dbc->select("mode_vacances")->from("_bataille_infos_player")->where("ID_identite", "=", Bataille::getIdIdentite())->get(); |
44
|
|
|
|
45
|
|
|
if (count($query) > 0) { |
46
|
|
|
foreach ($query as $obj) { |
47
|
|
|
$vacances = $obj->mode_vacances; |
48
|
|
|
} |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
if ($vacances > 0) { |
52
|
|
|
return 1; |
53
|
|
|
} |
54
|
|
|
|
55
|
|
|
return 0; |
56
|
|
|
} |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* @return string |
60
|
|
|
* fonction qui renvoi la durée depuis lquelle le compte est en vacances |
61
|
|
|
*/ |
62
|
|
|
public function getDureeVacances() { |
63
|
|
|
$last_connexion = new \DateTime(Bataille::getLastConnexionPlayer()); |
64
|
|
|
$today = new \DateTime(); |
65
|
|
|
|
66
|
|
|
$interval = $today->diff($last_connexion); |
67
|
|
|
|
68
|
|
|
return $interval->format('%a'); |
69
|
|
|
} |
70
|
|
|
//-------------------------- END GETTER ----------------------------------------------------------------------------// |
71
|
|
|
|
72
|
|
|
|
73
|
|
|
//-------------------------- SETTER ----------------------------------------------------------------------------// |
74
|
|
|
/** |
75
|
|
|
* fonction qui permet d'activer le mode vacances |
76
|
|
|
*/ |
77
|
|
|
public static function setActiverModeVacances() { |
78
|
|
|
$dbc = App::getDb(); |
79
|
|
|
|
80
|
|
|
$dbc->update("mode_vacances", 1)->update("last_connexion", date("Y-m-d H:i:s"))->from("_bataille_infos_player")->where("ID_identite", "=", Bataille::getIdIdentite())->set(); |
81
|
|
|
} |
82
|
|
|
|
83
|
|
|
/** |
84
|
|
|
* fonction qui permet de finir le mode vacances |
85
|
|
|
*/ |
86
|
|
View Code Duplication |
public function setDesactiverModeVacances() { |
|
|
|
|
87
|
|
|
$dbc = App::getDb(); |
88
|
|
|
|
89
|
|
|
$dbc->update("mode_vacances", 0)->update("last_connexion", date("Y-m-d H:i:s"))->from("_bataille_infos_player")->where("ID_identite", "=", Bataille::getIdIdentite())->set(); |
90
|
|
|
|
91
|
|
|
$dbc->update("last_connexion", date("Y-m-d- H:i:s")) |
92
|
|
|
->update("last_check_nourriture", date("Y-m-d- H:i:s")) |
93
|
|
|
->from("_bataille_base") |
94
|
|
|
->where("ID_identite", "=", Bataille::getIdIdentite())->set(); |
95
|
|
|
} |
96
|
|
|
//-------------------------- END SETTER ----------------------------------------------------------------------------// |
97
|
|
|
} |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.