37 |
* @param boolean $DEBUG Mode debug (@deprecated) |
* @param boolean $DEBUG Mode debug (@deprecated) |
38 |
*/ |
*/ |
39 |
function constructeur($id, &$db, $DEBUG = false) { |
function constructeur($id, &$db, $DEBUG = false) { |
|
//print __FUNCTION__.'$this->REST: \"'.$this->REST.'\" '; |
|
40 |
if (defined('REST_REQUEST')) { // $this->REST |
if (defined('REST_REQUEST')) { // $this->REST |
41 |
logger::instance()->display_log = false; |
logger::instance()->display_log = false; |
42 |
} |
} |
55 |
// $champs - clause select |
// $champs - clause select |
56 |
// $tableSelect - clause from |
// $tableSelect - clause from |
57 |
// $selection - clause where |
// $selection - clause where |
|
//print gettype($this); |
|
|
//print 'phptype \"'.$this->db_phptype.'\"'; |
|
|
//print 'table'.$this->table; |
|
58 |
$fichier = "../sql/".$this->db->phptype."/".$this->table.".form.inc.php"; |
$fichier = "../sql/".$this->db->phptype."/".$this->table.".form.inc.php"; |
|
//print ' fichier '.$fichier; |
|
59 |
if (file_exists($fichier)) { |
if (file_exists($fichier)) { |
60 |
include $fichier; |
include $fichier; |
61 |
} else { |
} else { |
103 |
} |
} |
104 |
} |
} |
105 |
$sql .= " ".$selection." "; |
$sql .= " ".$selection." "; |
106 |
print '$sql:'.$sql.' '; |
//print '$sql:'.$sql.' '; |
107 |
// Execution de la requete |
// Execution de la requete |
108 |
$res = $db->limitquery($sql, 0, 1); |
$res = $db->limitquery($sql, 0, 1); |
109 |
// Logger |
// Logger |
110 |
$this->addToLog("constructeur(): db->limitquery(\"".str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE); |
$this->addToLog("constructeur(): db->limitquery(\"".str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE); |
111 |
// Si une erreur survient |
// Si une erreur survient |
112 |
if (database::isError($res, true)) { |
if (database::isError($res, true)) { |
|
//print ' %%%%%%%%%%%%%%%%%% ERRRRROR'; |
|
113 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
114 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), $tableSelect); |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), $tableSelect); |
115 |
} else { |
} else { |
116 |
// Recuperation des informations sur la structure de la table |
// Recuperation des informations sur la structure de la table |
117 |
// ??? compatibilite POSTGRESQL (len = -1, type vide, flags vide) |
// ??? compatibilite POSTGRESQL (len = -1, type vide, flags vide) |
118 |
$info = $res->tableInfo(); |
$info = $res->tableInfo(); |
|
//print '@@@@@@@@@@ $info:'; |
|
|
//print_r($info); |
|
119 |
// Initialisation de la cle a 0 |
// Initialisation de la cle a 0 |
120 |
$i = 0; |
$i = 0; |
121 |
// Recuperation du nom de chaque champ dans l'attribut 'champs' |
// Recuperation du nom de chaque champ dans l'attribut 'champs' |
149 |
} |
} |
150 |
$i++; |
$i++; |
151 |
} |
} |
|
//print 'constructor-valF'.$i; |
|
|
//print_r($this->valF); |
|
152 |
} |
} |
153 |
} |
} |
154 |
} |
} |
164 |
* @param boolean $DEBUG Mode debug (@deprecated) |
* @param boolean $DEBUG Mode debug (@deprecated) |
165 |
*/ |
*/ |
166 |
function ajouter($val, &$db = NULL, $DEBUG = false) { |
function ajouter($val, &$db = NULL, $DEBUG = false) { |
|
//print 'val:'; |
|
|
//print_r($val); |
|
167 |
// Logger |
// Logger |
168 |
$this->addToLog("ajouter() - begin", EXTRA_VERBOSE_MODE); |
$this->addToLog("ajouter() - begin", EXTRA_VERBOSE_MODE); |
169 |
// Mutateur de valF |
// Mutateur de valF |
176 |
$this->verifierAjout($val, $db); |
$this->verifierAjout($val, $db); |
177 |
// Verification du verrou |
// Verification du verrou |
178 |
$this->testverrou(); |
$this->testverrou(); |
|
//print '$this->valF'; |
|
179 |
// Si les verifications precedentes sont correctes, on procede a |
// Si les verifications precedentes sont correctes, on procede a |
180 |
// l'ajout, sinon on ne fait rien et on affiche un message d'echec |
// l'ajout, sinon on ne fait rien et on affiche un message d'echec |
|
//print 'CORRECT:'.$this->correct; |
|
181 |
if ($this->correct) { |
if ($this->correct) { |
182 |
// Appel au mutateur pour le calcul de la cle primaire (si la cle |
// Appel au mutateur pour le calcul de la cle primaire (si la cle |
183 |
// est automatique) specifique au MODE 'insert' |
// est automatique) specifique au MODE 'insert' |
194 |
if (database::isError($res, true)) { |
if (database::isError($res, true)) { |
195 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
196 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
|
//print ' debuginfo:'.$res->getDebugInfo().' '; |
|
|
//print ' debugmessage:'.$res->getMessage().' '; |
|
197 |
} else { |
} else { |
198 |
// Log |
// Log |
199 |
$this->addToLog(_("Requete executee"), VERBOSE_MODE); |
$this->addToLog(_("Requete executee"), VERBOSE_MODE); |
200 |
// Log |
// Log |
|
if(isset($val[$this->clePrimaire])) // *** |
|
|
$id = $val[$this->clePrimaire]; |
|
|
else |
|
|
$id=$this->id; |
|
201 |
$message = _("Enregistrement")." ".$this->valF[$this->clePrimaire]." "; |
$message = _("Enregistrement")." ".$this->valF[$this->clePrimaire]." "; |
202 |
$message .= _("de la table")." \"".$this->table."\" "; |
$message .= _("de la table")." \"".$this->table."\" "; |
203 |
$message .= "[ ".$db->affectedRows()." "; |
$message .= "[ ".$db->affectedRows()." "; |
271 |
* @param boolean $DEBUG Mode debug (@deprecated) |
* @param boolean $DEBUG Mode debug (@deprecated) |
272 |
*/ |
*/ |
273 |
function modifier($val = array(), &$db = NULL, $DEBUG = false) { |
function modifier($val = array(), &$db = NULL, $DEBUG = false) { |
|
//print 'val:'; |
|
|
//print_r($val); |
|
274 |
|
|
275 |
// Logger |
// Logger |
276 |
$this->addToLog("modifier() - begin", EXTRA_VERBOSE_MODE); |
$this->addToLog("modifier() - begin", EXTRA_VERBOSE_MODE); |
298 |
if (database::isError($res, true)) { |
if (database::isError($res, true)) { |
299 |
// Appel de la methode de recuperation des erreurs |
// Appel de la methode de recuperation des erreurs |
300 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
|
//print ' debugInfo:'.$res->getDebugInfo().' '; |
|
|
//print ' debugMessage:'.$res->getMessage().' '; |
|
301 |
} else { |
} else { |
302 |
// Log |
// Log |
303 |
$this->addToLog(_("Requete executee"), VERBOSE_MODE); |
$this->addToLog(_("Requete executee"), VERBOSE_MODE); |
349 |
// Verification des contraintes d'integrite specifique au MODE 'delete' |
// Verification des contraintes d'integrite specifique au MODE 'delete' |
350 |
$this->correct=true; |
$this->correct=true; |
351 |
$this->cleSecondaire($id, $db, $val, $DEBUG); |
$this->cleSecondaire($id, $db, $val, $DEBUG); |
|
//print '%%%%%%%% CORRECT:'.$this->correct.' '; |
|
352 |
// Verification du verrou |
// Verification du verrou |
353 |
$this->testverrou(); |
$this->testverrou(); |
354 |
// Si les verifications precedentes sont correctes, on procede a |
// Si les verifications precedentes sont correctes, on procede a |
393 |
$this->addToLog("supprimer() - end", EXTRA_VERBOSE_MODE); |
$this->addToLog("supprimer() - end", EXTRA_VERBOSE_MODE); |
394 |
} |
} |
395 |
|
|
|
|
|
|
|
|
396 |
/** |
/** |
397 |
* Methode de verification de l'unicite d'une valeur pour chaque elements du tableau unique_key, |
* Methode de verification de l'unicite d'une valeur pour chaque elements du tableau unique_key, |
398 |
* ainsi que l'unicite de la cle multiple unique_multiple_key. |
* ainsi que l'unicite de la cle multiple unique_multiple_key. |
402 |
function checkUniqueKey() { |
function checkUniqueKey() { |
403 |
$unique=true; |
$unique=true; |
404 |
//Verification des cles uniques |
//Verification des cles uniques |
|
//print 'unique_key:'; |
|
|
//print_r($this->unique_key); |
|
405 |
if(!empty($this->unique_key)) { |
if(!empty($this->unique_key)) { |
406 |
foreach ($this->unique_key as $constraint) { |
foreach ($this->unique_key as $constraint) { |
407 |
if(!is_array($constraint)) { |
if(!is_array($constraint)) { |
451 |
* @param string $value valeur à inserer dans la colonne |
* @param string $value valeur à inserer dans la colonne |
452 |
*/ |
*/ |
453 |
function isUnique($champ,$value) { |
function isUnique($champ,$value) { |
454 |
//Test sur un groupe de champs |
//Test sur un groupe de champs |
455 |
if(is_array($champ) and is_array($value)) { |
if(is_array($champ) and is_array($value)) { |
456 |
$sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".implode(" = ? AND ",$champ)." = ?"; |
$sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".implode(" = ? AND ",$champ)." = ?"; |
457 |
} else { |
} else { |
458 |
//Test sur un champ |
//Test sur un champ |
459 |
$sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".$champ." = ?"; |
$sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".$champ." = ?"; |
460 |
} |
} |
461 |
if($this->getParameter('maj')) { |
if($this->getParameter('maj')) { |
462 |
$sql .= " AND ".$this->clePrimaire." \!= ".$this->valF[$this->clePrimaire]; |
$sql .= " AND ".$this->clePrimaire." \!= ".$this->valF[$this->clePrimaire]; |
463 |
} |
} |
|
//print '$sql:'.$sql.' '; |
|
|
//print 'login:'. $value; |
|
464 |
$nb = $this->db->getone($sql,$value); |
$nb = $this->db->getone($sql,$value); |
465 |
$this->addToLog("isUnique() : db->getone(\"".$sql."\");", VERBOSE_MODE); |
$this->addToLog("isUnique() : db->getone(\"".$sql."\");", VERBOSE_MODE); |
466 |
if (database::isError($nb, true)) { |
if (database::isError($nb, true)) { |
488 |
function checkRequired() { |
function checkRequired() { |
489 |
foreach($this->required_field as $field) { |
foreach($this->required_field as $field) { |
490 |
//Ne test la cle primaire car n'a pas de valeur a l'ajout |
//Ne test la cle primaire car n'a pas de valeur a l'ajout |
|
//print '$field:'.$field.' '; |
|
491 |
// la cle primaire est automatiquement cree |
// la cle primaire est automatiquement cree |
492 |
if ($field == $this->clePrimaire) { |
if ($field == $this->clePrimaire) { |
493 |
continue; |
continue; |
516 |
*/ |
*/ |
517 |
if ($this->getParameter('maj') == 0 and |
if ($this->getParameter('maj') == 0 and |
518 |
(!isset($this->valF[$field]) or $this->valF[$field] == '')) { |
(!isset($this->valF[$field]) or $this->valF[$field] == '')) { |
|
//print 'ajout problem'; |
|
519 |
$error = true; |
$error = true; |
520 |
$this->correct = false; |
$this->correct = false; |
521 |
|
|
554 |
} elseif ($this->getParameter('maj') == 1 |
} elseif ($this->getParameter('maj') == 1 |
555 |
and isset($this->valF[$field]) |
and isset($this->valF[$field]) |
556 |
and $this->valF[$field] == '') { |
and $this->valF[$field] == '') { |
|
//print 'modif problem'; |
|
557 |
$error = true; |
$error = true; |
558 |
$this->correct = false; |
$this->correct = false; |
559 |
} |
} |
583 |
if ($this->msg != "") { |
if ($this->msg != "") { |
584 |
|
|
585 |
// |
// |
|
$m = new message(); |
|
|
|
|
|
// |
|
586 |
if ($this->correct) { |
if ($this->correct) { |
587 |
$class = "valid"; |
$class = "valid"; |
588 |
} else { |
} else { |
589 |
$class = "error"; |
$class = "error"; |
590 |
} |
} |
591 |
$m->displayMessage($class, $this->msg); |
$this->f->displayMessage($class, $this->msg); |
592 |
|
|
593 |
} |
} |
594 |
|
|
603 |
* @deprecated |
* @deprecated |
604 |
*/ |
*/ |
605 |
function erreur_db($debuginfo, $messageDB, $table) { |
function erreur_db($debuginfo, $messageDB, $table) { |
|
print '$this->REST:\"'.$this->REST.'\" '; |
|
606 |
if (!defined('REST_REQUEST')) { // $this->REST |
if (!defined('REST_REQUEST')) { // $this->REST |
607 |
die(_("Erreur de base de donnees. Contactez votre administrateur.")); |
die(_("Erreur de base de donnees. Contactez votre administrateur.")); |
608 |
} else { |
} else { |
636 |
} |
} |
637 |
} |
} |
638 |
|
|
639 |
|
/** |
640 |
|
* Méthode pour convertir une date Y-m-d en d/m/Y |
641 |
|
*/ |
642 |
|
function dateDBToForm($date) { |
643 |
|
$date = new DateTime($this->valF['date_demande']); |
644 |
|
return $date->format('d/m/Y'); |
645 |
|
} |
646 |
|
|
647 |
} |
} |
648 |
|
|
649 |
?> |
?> |