1 |
<?php |
<?php |
2 |
//$Id$ |
//$Id$ |
3 |
//gen openMairie le 02/09/2011 11:08 |
//gen openMairie le 28/06/2012 16:26 |
4 |
require_once (PATH_OPENMAIRIE."dbformdyn.class.php"); |
require_once ("../obj/om_dbform.class.php"); |
5 |
|
|
6 |
class evenement_gen extends dbForm { |
class evenement_gen extends om_dbform { |
7 |
var $table="evenement"; |
var $table="evenement"; |
8 |
var $clePrimaire="evenement"; |
var $clePrimaire="evenement"; |
9 |
var $typeCle="N"; |
var $typeCle="N"; |
10 |
var $retourformulaire; |
var $retourformulaire; |
11 |
|
|
12 |
function setvalF($val) { |
function setvalF($val) { |
13 |
//affectation valeur formulaire |
//affectation valeur formulaire |
14 |
$this->valF['evenement'] = $val['evenement']; |
if(!is_numeric($val['evenement'])) |
15 |
$this->valF['libelle'] = $val['libelle']; |
unset($this->valF['evenement']); |
16 |
$this->valF['nature'] = $val['nature']; |
else |
17 |
$this->valF['action'] = $val['action']; |
$this->valF['evenement'] = $val['evenement']; |
18 |
$this->valF['etat'] = $val['etat']; |
$this->valF['libelle'] = $val['libelle']; |
19 |
$this->valF['delai'] = $val['delai']; |
$this->valF['nature'] = $val['nature']; |
20 |
$this->valF['accord_tacite'] = $val['accord_tacite']; |
$this->valF['action'] = $val['action']; |
21 |
$this->valF['delai_notification'] = $val['delai_notification']; |
$this->valF['etat'] = $val['etat']; |
22 |
$this->valF['avis'] = $val['avis']; |
if(!is_numeric($val['delai'])) |
23 |
$this->valF['lettretype'] = $val['lettretype']; |
$this->valF['delai']= null; |
24 |
$this->valF['consultation'] = $val['consultation']; |
else |
25 |
} |
$this->valF['delai'] = $val['delai']; |
26 |
|
$this->valF['accord_tacite'] = $val['accord_tacite']; |
27 |
//================================================= |
if(!is_numeric($val['delai_notification'])) |
28 |
//cle primaire automatique [automatic primary key] |
$this->valF['delai_notification']= null; |
29 |
//================================================== |
else |
30 |
|
$this->valF['delai_notification'] = $val['delai_notification']; |
31 |
function setId(&$db) { |
$this->valF['avis'] = $val['avis']; |
32 |
//numero automatique |
$this->valF['lettretype'] = $val['lettretype']; |
33 |
$this->valF[$this->table] = $db->nextId(DB_PREFIXE.$this->table); |
$this->valF['consultation'] = $val['consultation']; |
34 |
} |
} |
35 |
|
|
36 |
function setValFAjout($val) { |
//================================================= |
37 |
//numero automatique -> pas de controle ajout cle primaire |
//cle primaire automatique [automatic primary key] |
38 |
} |
//================================================== |
39 |
|
|
40 |
function verifierAjout() { |
function setId(&$db) { |
41 |
//numero automatique -> pas de verfication de cle primaire |
//numero automatique |
42 |
} |
$this->valF[$this->table] = $db->nextId(DB_PREFIXE.$this->table); |
43 |
|
} |
44 |
//==================================== |
|
45 |
// verifier avant validation [verify] |
function setValFAjout($val) { |
46 |
//===================================== |
//numero automatique -> pas de controle ajout cle primaire |
47 |
|
} |
48 |
|
|
49 |
|
function verifierAjout() { |
50 |
|
//numero automatique -> pas de verfication de cle primaire |
51 |
|
} |
52 |
|
|
53 |
|
//==================================== |
54 |
|
// verifier avant validation [verify] |
55 |
|
//===================================== |
56 |
/** |
/** |
57 |
* Methode verifier |
* Methode verifier |
58 |
*/ |
*/ |
67 |
} |
} |
68 |
|
|
69 |
|
|
70 |
//========================== |
//========================== |
71 |
// Formulaire [form] |
// Formulaire [form] |
72 |
//========================== |
//========================== |
73 |
|
|
74 |
function setType(&$form,$maj) { |
function setType(&$form,$maj) { |
75 |
//type |
//type |
76 |
if ($maj==0){ //ajout |
if ($maj==0){ //ajout |
77 |
$form->setType('evenement','hidden');// cle automatique |
$form->setType('evenement','hidden');// cle automatique |
78 |
$form->setType('libelle','text'); |
$form->setType('libelle','text'); |
79 |
if($this->retourformulaire=='nature') |
if($this->retourformulaire=='nature') |
80 |
$form->setType('nature','hiddenstatic'); |
$form->setType('nature','hiddenstatic'); |
81 |
else |
else |
82 |
$form->setType('nature','select'); |
$form->setType('nature','select'); |
83 |
if($this->retourformulaire=='action') |
if($this->retourformulaire=='action') |
84 |
$form->setType('action','hiddenstatic'); |
$form->setType('action','hiddenstatic'); |
85 |
else |
else |
86 |
$form->setType('action','select'); |
$form->setType('action','select'); |
87 |
if($this->retourformulaire=='etat') |
if($this->retourformulaire=='etat') |
88 |
$form->setType('etat','hiddenstatic'); |
$form->setType('etat','hiddenstatic'); |
89 |
else |
else |
90 |
$form->setType('etat','select'); |
$form->setType('etat','select'); |
91 |
$form->setType('delai','text'); |
$form->setType('delai','text'); |
92 |
$form->setType('accord_tacite','text'); |
$form->setType('accord_tacite','text'); |
93 |
$form->setType('delai_notification','text'); |
$form->setType('delai_notification','text'); |
94 |
if($this->retourformulaire=='avis') |
if($this->retourformulaire=='avis') |
95 |
$form->setType('avis','hiddenstatic'); |
$form->setType('avis','hiddenstatic'); |
96 |
else |
else |
97 |
$form->setType('avis','select'); |
$form->setType('avis','select'); |
98 |
$form->setType('lettretype','text'); |
$form->setType('lettretype','text'); |
99 |
if($this->retourformulaire=='consultation') |
if($this->retourformulaire=='consultation') |
100 |
$form->setType('consultation','hiddenstatic'); |
$form->setType('consultation','hiddenstatic'); |
101 |
else |
else |
102 |
$form->setType('consultation','select'); |
$form->setType('consultation','select'); |
103 |
}// fin ajout |
}// fin ajout |
104 |
if ($maj==1){ //modifier |
if ($maj==1){ //modifier |
105 |
$form->setType('evenement','hiddenstatic'); |
$form->setType('evenement','hiddenstatic'); |
106 |
$form->setType('libelle','text'); |
$form->setType('libelle','text'); |
107 |
if($this->retourformulaire=='nature') |
if($this->retourformulaire=='nature') |
108 |
$form->setType('nature','hiddenstatic'); |
$form->setType('nature','hiddenstatic'); |
109 |
else |
else |
110 |
$form->setType('nature','select'); |
$form->setType('nature','select'); |
111 |
if($this->retourformulaire=='action') |
if($this->retourformulaire=='action') |
112 |
$form->setType('action','hiddenstatic'); |
$form->setType('action','hiddenstatic'); |
113 |
else |
else |
114 |
$form->setType('action','select'); |
$form->setType('action','select'); |
115 |
if($this->retourformulaire=='etat') |
if($this->retourformulaire=='etat') |
116 |
$form->setType('etat','hiddenstatic'); |
$form->setType('etat','hiddenstatic'); |
117 |
else |
else |
118 |
$form->setType('etat','select'); |
$form->setType('etat','select'); |
119 |
$form->setType('delai','text'); |
$form->setType('delai','text'); |
120 |
$form->setType('accord_tacite','text'); |
$form->setType('accord_tacite','text'); |
121 |
$form->setType('delai_notification','text'); |
$form->setType('delai_notification','text'); |
122 |
if($this->retourformulaire=='avis') |
if($this->retourformulaire=='avis') |
123 |
$form->setType('avis','hiddenstatic'); |
$form->setType('avis','hiddenstatic'); |
124 |
else |
else |
125 |
$form->setType('avis','select'); |
$form->setType('avis','select'); |
126 |
$form->setType('lettretype','text'); |
$form->setType('lettretype','text'); |
127 |
if($this->retourformulaire=='consultation') |
if($this->retourformulaire=='consultation') |
128 |
$form->setType('consultation','hiddenstatic'); |
$form->setType('consultation','hiddenstatic'); |
129 |
else |
else |
130 |
$form->setType('consultation','select'); |
$form->setType('consultation','select'); |
131 |
}// fin modifier |
}// fin modifier |
132 |
if ($maj==2){ //supprimer |
if ($maj==2){ //supprimer |
133 |
$form->setType('evenement','hiddenstatic'); |
$form->setType('evenement','hiddenstatic'); |
134 |
$form->setType('libelle','hiddenstatic'); |
$form->setType('libelle','hiddenstatic'); |
135 |
$form->setType('nature','hiddenstatic'); |
$form->setType('nature','hiddenstatic'); |
136 |
$form->setType('action','hiddenstatic'); |
$form->setType('action','hiddenstatic'); |
137 |
$form->setType('etat','hiddenstatic'); |
$form->setType('etat','hiddenstatic'); |
138 |
$form->setType('delai','hiddenstatic'); |
$form->setType('delai','hiddenstatic'); |
139 |
$form->setType('accord_tacite','hiddenstatic'); |
$form->setType('accord_tacite','hiddenstatic'); |
140 |
$form->setType('delai_notification','hiddenstatic'); |
$form->setType('delai_notification','hiddenstatic'); |
141 |
$form->setType('avis','hiddenstatic'); |
$form->setType('avis','hiddenstatic'); |
142 |
$form->setType('lettretype','hiddenstatic'); |
$form->setType('lettretype','hiddenstatic'); |
143 |
$form->setType('consultation','hiddenstatic'); |
$form->setType('consultation','hiddenstatic'); |
144 |
}//fin supprimer |
}//fin supprimer |
145 |
} |
} |
146 |
|
|
147 |
function setOnchange(&$form,$maj) { |
function setOnchange(&$form,$maj) { |
148 |
//javascript controle client |
//javascript controle client |
149 |
$form->setOnchange('evenement','VerifNum(this)'); |
$form->setOnchange('evenement','VerifNum(this)'); |
150 |
$form->setOnchange('delai','VerifNum(this)'); |
$form->setOnchange('delai','VerifNum(this)'); |
151 |
$form->setOnchange('delai_notification','VerifNum(this)'); |
$form->setOnchange('delai_notification','VerifNum(this)'); |
152 |
} |
} |
153 |
|
/** |
154 |
function setTaille(&$form,$maj) { |
* Methode setTaille |
155 |
//taille des champs affiches (text) |
*/ |
156 |
$form->setTaille('evenement',4); |
function setTaille(&$form, $maj) { |
157 |
$form->setTaille('libelle',47); |
$form->setTaille("evenement", 11); |
158 |
$form->setTaille('nature',20); |
$form->setTaille("libelle", 30); |
159 |
$form->setTaille('action',14); |
$form->setTaille("nature", 10); |
160 |
$form->setTaille('etat',20); |
$form->setTaille("action", 20); |
161 |
$form->setTaille('delai',4); |
$form->setTaille("etat", 20); |
162 |
$form->setTaille('accord_tacite',20); |
$form->setTaille("delai", 11); |
163 |
$form->setTaille('delai_notification',4); |
$form->setTaille("accord_tacite", 10); |
164 |
$form->setTaille('avis',20); |
$form->setTaille("delai_notification", 11); |
165 |
$form->setTaille('lettretype',11); |
$form->setTaille("avis", 20); |
166 |
$form->setTaille('consultation',20); |
$form->setTaille("lettretype", 30); |
167 |
} |
$form->setTaille("consultation", 10); |
168 |
|
} |
169 |
function setMax(&$form,$maj) { |
|
170 |
//longueur max en saisie (text) |
/** |
171 |
$form->setMax('evenement',4); |
* Methode setMax |
172 |
$form->setMax('libelle',47); |
*/ |
173 |
$form->setMax('nature',20); |
function setMax(&$form, $maj) { |
174 |
$form->setMax('action',14); |
$form->setMax("evenement", 11); |
175 |
$form->setMax('etat',20); |
$form->setMax("libelle", 70); |
176 |
$form->setMax('delai',4); |
$form->setMax("nature", 2); |
177 |
$form->setMax('accord_tacite',20); |
$form->setMax("action", 20); |
178 |
$form->setMax('delai_notification',4); |
$form->setMax("etat", 20); |
179 |
$form->setMax('avis',20); |
$form->setMax("delai", 11); |
180 |
$form->setMax('lettretype',11); |
$form->setMax("accord_tacite", 3); |
181 |
$form->setMax('consultation',20); |
$form->setMax("delai_notification", 11); |
182 |
} |
$form->setMax("avis", 20); |
183 |
|
$form->setMax("lettretype", 60); |
184 |
function setLib(&$form,$maj) { |
$form->setMax("consultation", 3); |
185 |
//libelle des champs |
} |
186 |
$form->setLib('evenement',_('evenement')); |
|
187 |
$form->setLib('libelle',_('libelle')); |
|
188 |
$form->setLib('nature',_('nature')); |
function setLib(&$form,$maj) { |
189 |
$form->setLib('action',_('action')); |
//libelle des champs |
190 |
$form->setLib('etat',_('etat')); |
$form->setLib('evenement',_('evenement')); |
191 |
$form->setLib('delai',_('delai')); |
$form->setLib('libelle',_('libelle')); |
192 |
$form->setLib('accord_tacite',_('accord_tacite')); |
$form->setLib('nature',_('nature')); |
193 |
$form->setLib('delai_notification',_('delai_notification')); |
$form->setLib('action',_('action')); |
194 |
$form->setLib('avis',_('avis')); |
$form->setLib('etat',_('etat')); |
195 |
$form->setLib('lettretype',_('lettretype')); |
$form->setLib('delai',_('delai')); |
196 |
$form->setLib('consultation',_('consultation')); |
$form->setLib('accord_tacite',_('accord_tacite')); |
197 |
} |
$form->setLib('delai_notification',_('delai_notification')); |
198 |
|
$form->setLib('avis',_('avis')); |
199 |
function setSelect(&$form, $maj,&$db,$debug) { |
$form->setLib('lettretype',_('lettretype')); |
200 |
if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc")) |
$form->setLib('consultation',_('consultation')); |
201 |
include ("../sql/".$db->phptype."/".$this->table.".form.inc"); |
} |
202 |
if($maj<2){ |
|
203 |
// nature |
function setSelect(&$form, $maj,&$db,$debug) { |
204 |
$contenu=array(); |
if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php")) |
205 |
$res = $db->query($sql_nature); |
include ("../sql/".$db->phptype."/".$this->table.".form.inc.php"); |
206 |
if (database::isError($res)) |
elseif(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc")) |
207 |
die($res->getMessage().$sql_nature); |
include ("../sql/".$db->phptype."/".$this->table.".form.inc"); |
208 |
else{ |
if($maj<2){ |
209 |
if ($debug == 1) |
// nature |
210 |
echo " la requete ".$sql_nature." est executee<br>"; |
$contenu=array(); |
211 |
$contenu[0][0]=''; |
$res = $db->query($sql_nature); |
212 |
$contenu[1][0]=_('choisir')." "._('nature'); |
// Logger |
213 |
$k=1; |
$this->addToLog("setSelect()[gen/obj]: db->query(\"".$sql_nature."\");", VERBOSE_MODE); |
214 |
while ($row=& $res->fetchRow()){ |
if (database::isError($res)) |
215 |
$contenu[0][$k]=$row[0]; |
die($res->getMessage().$sql_nature); |
216 |
$contenu[1][$k]=$row[1]; |
else{ |
217 |
$k++; |
if ($debug == 1) |
218 |
} |
echo " la requete ".$sql_nature." est executee<br>"; |
219 |
$form->setSelect('nature',$contenu); |
$contenu[0][0]=''; |
220 |
}// fin error db |
$contenu[1][0]=_('choisir')." "._('nature'); |
221 |
// action |
$k=1; |
222 |
$contenu=array(); |
while ($row=& $res->fetchRow()){ |
223 |
$res = $db->query($sql_action); |
$contenu[0][$k]=$row[0]; |
224 |
if (database::isError($res)) |
$contenu[1][$k]=$row[1]; |
225 |
die($res->getMessage().$sql_action); |
$k++; |
226 |
else{ |
} |
227 |
if ($debug == 1) |
$form->setSelect('nature',$contenu); |
228 |
echo " la requete ".$sql_action." est executee<br>"; |
}// fin error db |
229 |
$contenu[0][0]=''; |
// action |
230 |
$contenu[1][0]=_('choisir')." "._('action'); |
$contenu=array(); |
231 |
$k=1; |
$res = $db->query($sql_action); |
232 |
while ($row=& $res->fetchRow()){ |
// Logger |
233 |
$contenu[0][$k]=$row[0]; |
$this->addToLog("setSelect()[gen/obj]: db->query(\"".$sql_action."\");", VERBOSE_MODE); |
234 |
$contenu[1][$k]=$row[1]; |
if (database::isError($res)) |
235 |
$k++; |
die($res->getMessage().$sql_action); |
236 |
} |
else{ |
237 |
$form->setSelect('action',$contenu); |
if ($debug == 1) |
238 |
}// fin error db |
echo " la requete ".$sql_action." est executee<br>"; |
239 |
// etat |
$contenu[0][0]=''; |
240 |
$contenu=array(); |
$contenu[1][0]=_('choisir')." "._('action'); |
241 |
$res = $db->query($sql_etat); |
$k=1; |
242 |
if (database::isError($res)) |
while ($row=& $res->fetchRow()){ |
243 |
die($res->getMessage().$sql_etat); |
$contenu[0][$k]=$row[0]; |
244 |
else{ |
$contenu[1][$k]=$row[1]; |
245 |
if ($debug == 1) |
$k++; |
246 |
echo " la requete ".$sql_etat." est executee<br>"; |
} |
247 |
$contenu[0][0]=''; |
$form->setSelect('action',$contenu); |
248 |
$contenu[1][0]=_('choisir')." "._('etat'); |
}// fin error db |
249 |
$k=1; |
// etat |
250 |
while ($row=& $res->fetchRow()){ |
$contenu=array(); |
251 |
$contenu[0][$k]=$row[0]; |
$res = $db->query($sql_etat); |
252 |
$contenu[1][$k]=$row[1]; |
// Logger |
253 |
$k++; |
$this->addToLog("setSelect()[gen/obj]: db->query(\"".$sql_etat."\");", VERBOSE_MODE); |
254 |
} |
if (database::isError($res)) |
255 |
$form->setSelect('etat',$contenu); |
die($res->getMessage().$sql_etat); |
256 |
}// fin error db |
else{ |
257 |
// avis |
if ($debug == 1) |
258 |
$contenu=array(); |
echo " la requete ".$sql_etat." est executee<br>"; |
259 |
$res = $db->query($sql_avis); |
$contenu[0][0]=''; |
260 |
if (database::isError($res)) |
$contenu[1][0]=_('choisir')." "._('etat'); |
261 |
die($res->getMessage().$sql_avis); |
$k=1; |
262 |
else{ |
while ($row=& $res->fetchRow()){ |
263 |
if ($debug == 1) |
$contenu[0][$k]=$row[0]; |
264 |
echo " la requete ".$sql_avis." est executee<br>"; |
$contenu[1][$k]=$row[1]; |
265 |
$contenu[0][0]=''; |
$k++; |
266 |
$contenu[1][0]=_('choisir')." "._('avis'); |
} |
267 |
$k=1; |
$form->setSelect('etat',$contenu); |
268 |
while ($row=& $res->fetchRow()){ |
}// fin error db |
269 |
$contenu[0][$k]=$row[0]; |
// avis |
270 |
$contenu[1][$k]=$row[1]; |
$contenu=array(); |
271 |
$k++; |
$res = $db->query($sql_avis); |
272 |
} |
// Logger |
273 |
$form->setSelect('avis',$contenu); |
$this->addToLog("setSelect()[gen/obj]: db->query(\"".$sql_avis."\");", VERBOSE_MODE); |
274 |
}// fin error db |
if (database::isError($res)) |
275 |
// consultation |
die($res->getMessage().$sql_avis); |
276 |
$contenu=array(); |
else{ |
277 |
$res = $db->query($sql_consultation); |
if ($debug == 1) |
278 |
if (database::isError($res)) |
echo " la requete ".$sql_avis." est executee<br>"; |
279 |
die($res->getMessage().$sql_consultation); |
$contenu[0][0]=''; |
280 |
else{ |
$contenu[1][0]=_('choisir')." "._('avis'); |
281 |
if ($debug == 1) |
$k=1; |
282 |
echo " la requete ".$sql_consultation." est executee<br>"; |
while ($row=& $res->fetchRow()){ |
283 |
$contenu[0][0]=''; |
$contenu[0][$k]=$row[0]; |
284 |
$contenu[1][0]=_('choisir')." "._('consultation'); |
$contenu[1][$k]=$row[1]; |
285 |
$k=1; |
$k++; |
286 |
while ($row=& $res->fetchRow()){ |
} |
287 |
$contenu[0][$k]=$row[0]; |
$form->setSelect('avis',$contenu); |
288 |
$contenu[1][$k]=$row[1]; |
}// fin error db |
289 |
$k++; |
// consultation |
290 |
} |
$contenu=array(); |
291 |
$form->setSelect('consultation',$contenu); |
$res = $db->query($sql_consultation); |
292 |
}// fin error db |
// Logger |
293 |
}// fin maj |
$this->addToLog("setSelect()[gen/obj]: db->query(\"".$sql_consultation."\");", VERBOSE_MODE); |
294 |
}// fin select |
if (database::isError($res)) |
295 |
|
die($res->getMessage().$sql_consultation); |
296 |
//================================== |
else{ |
297 |
// sous Formulaire [subform] |
if ($debug == 1) |
298 |
//================================== |
echo " la requete ".$sql_consultation." est executee<br>"; |
299 |
|
$contenu[0][0]=''; |
300 |
function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db,$DEBUG=null){ |
$contenu[1][0]=_('choisir')." "._('consultation'); |
301 |
$this->retourformulaire = $retourformulaire; |
$k=1; |
302 |
if($validation==0) { |
while ($row=& $res->fetchRow()){ |
303 |
if($retourformulaire =='nature') |
$contenu[0][$k]=$row[0]; |
304 |
$form->setVal('nature', $idxformulaire); |
$contenu[1][$k]=$row[1]; |
305 |
if($retourformulaire =='action') |
$k++; |
306 |
$form->setVal('action', $idxformulaire); |
} |
307 |
if($retourformulaire =='etat') |
$form->setSelect('consultation',$contenu); |
308 |
$form->setVal('etat', $idxformulaire); |
}// fin error db |
309 |
if($retourformulaire =='avis') |
}// fin maj |
310 |
$form->setVal('avis', $idxformulaire); |
}// fin select |
311 |
if($retourformulaire =='consultation') |
|
312 |
$form->setVal('consultation', $idxformulaire); |
//================================== |
313 |
}// fin validation |
// sous Formulaire [subform] |
314 |
}// fin setValsousformulaire |
//================================== |
315 |
|
|
316 |
//================================== |
function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db,$DEBUG=null){ |
317 |
// cle secondaire [secondary key] |
$this->retourformulaire = $retourformulaire; |
318 |
//================================== |
if($validation==0) { |
319 |
|
if($retourformulaire =='nature') |
320 |
|
$form->setVal('nature', $idxformulaire); |
321 |
|
if($retourformulaire =='action') |
322 |
|
$form->setVal('action', $idxformulaire); |
323 |
|
if($retourformulaire =='etat') |
324 |
|
$form->setVal('etat', $idxformulaire); |
325 |
|
if($retourformulaire =='avis') |
326 |
|
$form->setVal('avis', $idxformulaire); |
327 |
|
if($retourformulaire =='consultation') |
328 |
|
$form->setVal('consultation', $idxformulaire); |
329 |
|
}// fin validation |
330 |
|
}// fin setValsousformulaire |
331 |
|
|
332 |
|
//================================== |
333 |
|
// cle secondaire [secondary key] |
334 |
|
//================================== |
335 |
/** |
/** |
336 |
* Methode clesecondaire |
* Methode clesecondaire |
337 |
*/ |
*/ |