-
Notifications
You must be signed in to change notification settings - Fork 2
/
accessoires.class.php
154 lines (137 loc) · 4.18 KB
/
accessoires.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?php
if (file_exists('../root.php'))
include_once('../root.php');
?><?php
//Inclusion de la classe abstraite objet
include_once(root.'objet.class.php');
class Accessoire extends Objet
{
protected $puissance;
protected $description;
protected $effet;
protected $batimentReq;
protected $achetable;
/**
* Constructeur permettant la création d'un accessoire.
* Les valeurs par défaut sont celles de la base de donnée.
* Le constructeur accepte plusieurs types d'appels:
* -Accessoire() qui construit un objet "vide".
* -Accessoire($id) qui va chercher l'objet dont l'id est $id dans la base.
* -Accessoire($nom,...,$forceReq) qui construit un nouvel objet à partir des valeurs.
**/
function __construct($nom = '', $type = '', $prix = 0, $effet = 0, $batimentReq = 0, $description = '', $puissance = 0, $achetable = 'y')
{
//on verifie le nombre d'arguments
if( (func_num_args() == 1) && is_numeric($nom) )
{
$requeteSQL = mysql_query('SELECT nom, type, prix, effet, lvl_batiment, description, puissance, achetable FROM accessoire WHERE id = '.$nom);
if( mysql_num_rows($requeteSQL) > 0 )
{
$this->id = $nom;
list($this->nom, $this->type, $this->prix, $this->effet, $this->batimentReq, $this->description, $this->puissance, $this->achetable) =
mysql_fetch_row($requeteSQL);
$this->description = stripslashes($this->description);
}
else
$this->__construct();
}
else
{
parent::__construct($nom, $type, $prix);
$this->effet = $effet;
$this->batimentReq = $batimentReq;
$this->achetable = $achetable;
$this->puissance = $puissance;
$this->description = $description;
}
}
//Accesseurs
function getPuissance()
{
return $this->puissance;
}
function getDescription()
{
return $this->description;
}
function getEffet()
{
return $this->effet;
}
function getBatiment()
{
return $this->batimentReq();
}
/**
*Retourne un booleen
*True si achetable est 'y'.
*False sinon.
**/
function isAchetable()
{
return !strcmp($this->achetable, 'y');
}
//Modifieurs
function setPuissance($pow)
{
$this->puissance = $pow;
}
/**
* Les caractères spéciaux sont échappés lors de la sauvegarde par conséquent
* $description ne doit pas contenir de caractères échappés.s
**/
function setDescription($description)
{
$this->description = $description;
}
function setEffet($effet)
{
$this->effet = $effet;
}
/**
* La fonction prend comme argument un booleen.
**/
function setAchetable($bool)
{
$this->achetable = $bool ? 'y' : 'n';
}
//Fonctions de la classe abstraite
//Fonction d'ajout/modification
function sauver()
{
if( $this->id > 0 )
{
$requete = 'UPDATE TABLE armure SET '.$this->modifBase().', ';
$requete .= 'effet = "'.$this->effet.'", description = "'.addslashes($this->description).'", ';
$requete .= 'puissance = "'.$this->puissance.'", achetable = "'.$this->achetable.'", ';
$requete .= 'lvl_batiment = "'.$this->batimentReq.'" WHERE id = '.$this->id;
mysql_query($requete);
}
else
{
$requete = 'INSERT INTO accessoire (nom, type, prix, effet, lvl_batiment, description, puissance, achetable) VALUES(';
$requete .= $this->insertBase().', "'.$this->effet.'", "'.$this->batimentReq.'", "'.addslashes($this->description).'", "';
$requete .= $this->puissance.'", "'.$this->achetable.'")';
mysql_query($requete);
//Récuperation du dernier ID inséré.
list($this->id) = mysql_fetch_row(mysql_query('SELECT LAST_INSERT_ID()'));
}
}
//Fonction de suppression
function supprimer()
{
parent::supprimer('accessoire');
}
//Infobulle de l'accessoire
function infobulle()
{
$milieu = '<tr><td>Effet:</td><td>'.$this->description.'</td></tr>'
$milieu .= '<tr><td>Puissance nécessaire:</td></tr><tr><td>'.$this->puissance.'</td></tr>';
return bulleBase($milieu).'<br />';
}
function __toString()
{
return parent::__toString().', '.$this->effet.', '.$this->puissance.', '.$this->achetable.', '.$this->description.', '.$this->batimentReq;
}
}
?>