/[openfoncier]/trunk/obj/om_dbform.class.php
ViewVC logotype

Diff of /trunk/obj/om_dbform.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 514 by atreal, Wed Mar 28 07:19:34 2012 UTC revision 515 by mlimic, Wed Oct 17 16:22:13 2012 UTC
# Line 27  class om_dbform extends dbForm { Line 27  class om_dbform extends dbForm {
27       */       */
28      var $om_formulaire = "om_formulaire";      var $om_formulaire = "om_formulaire";
29    
30        
31        
32            /**
33         * Constructeur
34         *
35         * @param string $id
36         * @param object $db Objet de connexion DB
37         * @param boolean $DEBUG Mode debug (@deprecated)
38         */
39        function constructeur($id, &$db, $DEBUG = false) {
40            //print __FUNCTION__.'$this->REST: \"'.$this->REST.'\"  ';
41            if (defined('REST_REQUEST')) { // $this->REST
42                logger::instance()->display_log = false;
43            }
44            //
45            if (isset($GLOBALS["f"])) {
46                $this->f = $GLOBALS["f"];
47            }
48            // Le framework REST est utilisee
49            $this->errors = array();
50            
51            // Affectation de l'identifiant de base de donnees dans l'attribut db
52            // de l'objet
53            $this->db = $db;
54            // Inclusion du fichier de parametre de la table pour recuperer les
55            // trois parametres permettant de construire la requete de selection
56            // $champs - clause select
57            // $tableSelect - clause from
58            // $selection - clause where
59            //print gettype($this);
60            //print 'phptype \"'.$this->db_phptype.'\"';
61            //print 'table'.$this->table;
62            $fichier = "../sql/".$this->db->phptype."/".$this->table.".form.inc.php";
63            //print '  fichier '.$fichier;
64            if (file_exists($fichier)) {
65                include $fichier;
66            } else {
67                $fichier = "../sql/".$this->db->phptype."/".$this->table.".form.inc";
68                if (file_exists($fichier)) {
69                    include $fichier;
70                }
71            }
72            // Sauvegarde des actions contextuelles supplementaires
73            if (isset($portlet_actions)) {
74                $this->actions_sup = $portlet_actions;
75            }
76            //Si le flag $archivable est posé
77            //if(isset($archivable) and $archivable){
78            //    $this->archivable=TRUE;
79            //} else {
80            //    $this->archivable=FALSE;
81            //}
82            // Concatenation des champs pour constitution de la clause select
83            $listeChamp = "";
84            foreach ($champs as $elem) {
85                $listeChamp .= $elem.",";
86            }
87            // Suppresion de la derniere virgule
88            $listeChamp = substr($listeChamp, 0, strlen($listeChamp)-1);
89            // Initialisation de la variable selection
90            if (!isset($selection)) {
91                $selection = "";
92            }
93            // Concatenation de la requete de selection
94            $sql = " select ".$listeChamp." from ".$tableSelect." ";
95            // Si mode ajout
96            if ($id == "]") {
97                // Remplacement du 'and' par 'where' dans la varibale $selection
98                $selection = ltrim($selection);
99                if (strtolower(substr($selection, 0, 3)) == "and") {
100                    $selection = " where ".substr($selection, 4, strlen($selection));
101                }
102            } else { // Si mode modification ou suppression
103                // Clause where en fonction du type de la cle primaire
104                if ($this->typeCle == "A") {
105                    $sql .= " where ".$this->clePrimaire." like '".$id."' ";
106                } else {
107                    $sql .= " where ".$this->table.".".$this->clePrimaire." = ".$id." ";
108                }
109            }
110            $sql .= " ".$selection." ";
111            print '$sql:'.$sql.'   ';
112            // Execution de la requete
113            $res = $db->limitquery($sql, 0, 1);
114            // Logger
115            $this->addToLog("constructeur(): db->limitquery(\"".str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
116            // Si une erreur survient
117            if (database::isError($res, true)) {
118                //print '          %%%%%%%%%%%%%%%%%% ERRRRROR';
119                // Appel de la methode de recuperation des erreurs
120                $this->erreur_db($res->getDebugInfo(), $res->getMessage(), $tableSelect);
121            } else {
122                // Recuperation des informations sur la structure de la table
123                // ??? compatibilite POSTGRESQL (len = -1, type vide, flags vide)
124                $info = $res->tableInfo();
125                //print '@@@@@@@@@@ $info:';
126                //print_r($info);
127                // Initialisation de la cle a 0
128                $i = 0;
129                // Recuperation du nom de chaque champ dans l'attribut 'champs'
130                foreach ($info as $elem) {
131                    $this->champs[$i++] = $elem['name'];
132                }
133                // ??? Le $i devrait etre initialises a 0 pour chaque attribut suivant
134                // Recuperation de la taille de chaque champ dans l'attibut 'longueurMax'
135                foreach ($info as $elem) {
136                    $this->longueurMax[$i++] = $elem['len'];
137                }
138                // Recuperation du type de chaque champ dans l'attribut 'type'
139                // ??? Non utilise
140                foreach ($info as $elem) {
141                    $this->type[$i++] = $elem['type'];
142                }
143                // Recuperation du flag de chaque champ dans l'attribut 'flags'
144                // ??? Non utilise
145                foreach ($info as $elem) {
146                    $this->flags[$i++] = $elem['flags'];
147                }
148                // Recuperation de l'enregistrement resultat de la requete
149                while ($row =& $res->fetchRow()) {
150                    // Initialisation de la cle a 0
151                    $i = 0;
152                    // Recuperation de la valeur de chaque champ dans l'attribut 'val'
153                    foreach ($row as $elem) {
154                        $this->val[$i] = $elem;
155                        if (defined('REST_REQUEST')) { // $this->REST
156                            $this->valF[$this->champs[$i]] = $elem;
157                        }
158                        $i++;
159                    }
160                    //print 'constructor-valF'.$i;
161                    //print_r($this->valF);
162                }
163            }
164        }
165    
166    
167    
168        /**
169         * Cette methode permet d'executer l'ajout (MODE 'insert') de l'objet dans
170         * la base de donnees.
171         *
172         * @param array $val
173         * @param object $db Objet de connexion DB
174         * @param boolean $DEBUG Mode debug (@deprecated)
175         */
176        function ajouter($val, &$db = NULL, $DEBUG = false) {
177            //print 'val:';
178            //print_r($val);
179            // Logger
180            $this->addToLog("ajouter() - begin", EXTRA_VERBOSE_MODE);
181            // Mutateur de valF
182            $this->setValF($val);
183            // Mutateur de valF specifique a l'ajout
184            $this->setValFAjout($val);
185            // Verification de la validite des donnees
186            $this->verifier($val, $db, $DEBUG);
187            // Verification specifique au MODE 'insert' de la validite des donnees
188            $this->verifierAjout($val, $db);
189            // Verification du verrou
190            $this->testverrou();
191            //print '$this->valF';
192            // Si les verifications precedentes sont correctes, on procede a
193            // l'ajout, sinon on ne fait rien et on affiche un message d'echec
194            //print 'CORRECT:'.$this->correct;
195            if ($this->correct) {
196                // Appel au mutateur pour le calcul de la cle primaire (si la cle
197                // est automatique) specifique au MODE 'insert'
198                $this->setId($db);
199                // Execution du trigger 'before' specifique au MODE 'insert'
200                // Le premier parametre est vide car en MODE 'insert'
201                // l'enregistrement n'existe pas encore donc il n'a pas
202                // d'identifiant
203                $this->triggerajouter("", $db, $val, $DEBUG);
204                // Execution de la requete d'insertion des donnees de l'attribut
205                // valF de l'objet dans l'attribut table de l'objet
206                $res = $db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_INSERT);
207                // Si une erreur survient
208                if (database::isError($res, true)) {
209                    // Appel de la methode de recuperation des erreurs
210                    $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
211                    //print '    debuginfo:'.$res->getDebugInfo().'     ';
212                    //print '    debugmessage:'.$res->getMessage().'    ';
213                } else {
214                    // Log
215                    $this->addToLog(_("Requete executee"), VERBOSE_MODE);
216                    // Log
217                    if(isset($val[$this->clePrimaire])) // ***
218                        $id = $val[$this->clePrimaire];
219                    else
220                        $id=$this->id;
221                    $message = _("Enregistrement")." ".$this->valF[$this->clePrimaire]." ";
222                    $message .= _("de la table")." \"".$this->table."\" ";
223                    $message .= "[ ".$db->affectedRows()." ";
224                    $message .= _("enregistrement(s) ajoute(s)")." ]";
225                    $this->addToLog($message, VERBOSE_MODE);
226                    // Message de validation
227                    $this->addToMessage(_("Vos modifications ont bien ete enregistrees.")."<br/>");
228                    // Mise en place du verrou pour ne pas valider plusieurs fois
229                    // le meme formulaire
230                    $this->verrouille();
231                
232                    // Execution du trigger 'after' specifique au MODE 'insert'
233                    // Le premier parametre est vide car en MODE 'insert'
234                    // l'enregistrement n'existe pas encore donc il n'a pas
235                    // d'identifiant
236                    $this->triggerajouterapres("", $db, $val, $DEBUG);
237                }
238            } else {
239                // Message d'echec (saut d'une ligne supplementaire avant le
240                // message pour qu'il soit mis en evidence)
241                $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
242            }
243            // Logger
244            $this->addToLog("ajouter() - end", EXTRA_VERBOSE_MODE);
245        }
246    
247    
248        /**
249         *
250         * @param array $val
251         * @param object $db Objet de connexion DB
252         */
253        function verifierAjout($val = array(), &$db = NULL) {
254    
255            // Verifier [verify]
256            // la cle primaire est obligatoire
257            // [primary key is compulsory]
258            if ($this->valF[$this->clePrimaire] == "") {
259                //
260                $this->correct = false;
261                //
262                $this->addToMessage("<br/>");
263                $this->addToMessage( _("L'\"identifiant\" est obligatoire")."&nbsp;");
264                $this->addToMessage("[&nbsp;"._($this->clePrimaire)."&nbsp;]");
265            }
266            if ($this->typeCle == "A") {
267                $sql = "select count(*) from ".DB_PREFIXE.$this->table." ";    
268                $sql .= "where ".$this->clePrimaire."='".$this->valF[$this->clePrimaire]."' ";
269                $nb = $db->getone($sql);
270                $this->addToLog("verifierAjout(): db->getone(\"".$sql."\");", VERBOSE_MODE);
271                if (database::isError($nb)) {
272                    $this->erreur_db($nb->getDebugInfo(), $nb->getMessage(), '');
273                }else{
274                    if ($nb > 0) {
275                        $this->correct = false;
276                        $this->addToMessage($nb." ");
277                        $this->addToMessage( _("cle primaire existante"));
278                        $this->addToMessage(" ".$this->table."<br />");
279                    }
280                }
281            }
282        }
283    
284        
285        /**
286         * Cette methode permet d'executer la modification (MODE 'update') de
287         * l'objet dans la base de donnees.
288         *
289         * @param array $val
290         * @param object $db Objet de connexion DB
291         * @param boolean $DEBUG Mode debug (@deprecated)
292         */
293        function modifier($val = array(), &$db = NULL, $DEBUG = false) {
294            //print 'val:';
295            //print_r($val);
296    
297            // Logger
298            $this->addToLog("modifier() - begin", EXTRA_VERBOSE_MODE);
299            // Recuperation de la valeur de la cle primaire de l'objet
300            if(isset($val[$this->clePrimaire]))
301                $id = $val[$this->clePrimaire];
302            else
303                $id=$this->id;
304            // Appel au mutateur de l'attribut valF de l'objet
305            $this->setValF($val);
306            // Verification de la validite des donnees
307            $this->verifier($val, $db, $DEBUG);
308            // Verification du verrou
309            $this->testverrou();
310            // Si les verifications precedentes sont correctes, on procede a
311            // la modification, sinon on ne fait rien et on affiche un message
312            // d'echec
313            if ($this->correct) {
314                // Execution du trigger 'before' specifique au MODE 'update'
315                $this->triggermodifier($id, $db, $val, $DEBUG);
316                // Execution de la requête de modification des donnees de l'attribut
317                // valF de l'objet dans l'attribut table de l'objet
318                $res = $db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_UPDATE, $this->getCle($id));
319                // Si une erreur survient
320                if (database::isError($res, true)) {
321                    // Appel de la methode de recuperation des erreurs
322                    $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
323                    //print '      debugInfo:'.$res->getDebugInfo().'   ';
324                    //print '      debugMessage:'.$res->getMessage().'   ';
325                } else {
326                    // Log
327                    $this->addToLog(_("Requete executee"), VERBOSE_MODE);
328                    // Log
329                    $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
330                    $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
331                    $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";
332                    $message .= _("enregistrement(s) mis a jour")."&nbsp;]";
333                    $this->addToLog($message, VERBOSE_MODE);
334                    // Message de validation
335                    if ($db->affectedRows() == 0) {
336                        $this->addToMessage(_("Attention vous n'avez fait aucune modification.")."<br/>");
337                    } else {
338                        $this->addToMessage(_("Vos modifications ont bien ete enregistrees.")."<br/>");
339                    }
340                    // Mise en place du verrou pour ne pas valider plusieurs fois
341                    // le meme formulaire
342                    $this->verrouille();
343                
344                    // Execution du trigger 'after' specifique au MODE 'update'
345                    $this->triggermodifierapres($id, $db, $val, $DEBUG);
346                }
347            } else {
348                // Message d'echec (saut d'une ligne supplementaire avant le
349                // message pour qu'il soit mis en evidence)
350                $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
351            }
352            // Logger
353            $this->addToLog("modifier() - end", EXTRA_VERBOSE_MODE);
354        }
355    
356    
357        /**
358         * Cette methode permet d'executer la suppression (MODE 'delete') de
359         * l'objet dans la base de donnees.
360         *
361         * @param array $val
362         * @param object $db Objet de connexion DB
363         * @param boolean $DEBUG Mode debug (@deprecated)
364         */
365        function supprimer($val = array(), &$db = NULL, $DEBUG = false) {
366            // Logger
367            $this->addToLog("supprimer() - begin", EXTRA_VERBOSE_MODE);
368            // Recuperation de la valeur de la cle primaire de l'objet
369            if(isset($val[$this->clePrimaire]))
370                $id = $val[$this->clePrimaire];
371            else
372                $id=$this->id;
373            // Verification des contraintes d'integrite specifique au MODE 'delete'
374            $this->correct=true;
375            $this->cleSecondaire($id, $db, $val, $DEBUG);
376            //print '%%%%%%%% CORRECT:'.$this->correct.'  ';
377            // Verification du verrou
378            $this->testverrou();
379            // Si les verifications precedentes sont correctes, on procede a
380            // la suppression, sinon on ne fait rien et on affiche un message
381            // d'echec
382            if ($this->correct) {
383                // Execution du trigger 'before' specifique au MODE 'delete'
384                $this->triggersupprimer($id, $db, $val, $DEBUG);
385                // Construction de la requete de suppression de l'objet dans
386                // l'attribut table de l'objet
387                $sql = "delete from ".DB_PREFIXE.$this->table." where ".$this->getCle($id);
388                // Execution de la requete de suppression de l'objet
389                $res = $db->query($sql);
390                // Logger
391                $this->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
392                // Si une erreur survient
393                if (database::isError($res, true)) {
394                    // Appel de la methode de recuperation des erreurs
395                    $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
396                } else {
397                    // Log
398                    $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
399                    $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
400                    $message .= "[&nbsp;".$db->affectedRows()."&nbsp;";
401                    $message .= _("enregistrement(s) supprime(s)")."&nbsp;]";
402                    $this->addToLog($message, VERBOSE_MODE);
403                    // Message de validation
404                    $this->addToMessage(_("La suppression a ete correctement effectuee.")."<br/>");
405                    // Mise en place du verrou pour ne pas valider plusieurs fois
406                    // le meme formulaire
407                    $this->verrouille();
408                
409                    // Execution du trigger 'after' specifique au MODE 'delete'
410                    $this->triggersupprimerapres($id, $db, $val, $DEBUG);
411                }
412            } else {
413                // Message d'echec (saut d'une ligne supplementaire avant le
414                // message pour qu'il soit mis en evidence)
415                $this->addToMessage("<br/>"._("SUPPRESSION NON EFFECTUEE")."<br/>");
416            }
417            // Logger
418            $this->addToLog("supprimer() - end", EXTRA_VERBOSE_MODE);
419        }
420    
421        
422        
423        /**
424         * Methode de verification de l'unicite d'une valeur pour chaque elements du tableau unique_key,
425         * ainsi que l'unicite de la cle multiple unique_multiple_key.
426         *
427         * @param objet $db Objet Base de donnees
428         */
429        function checkUniqueKey() {
430            $unique=true;
431            //Verification des cles uniques
432            //print 'unique_key:';
433            //print_r($this->unique_key);
434            if(!empty($this->unique_key)) {
435                foreach ($this->unique_key as $constraint) {
436                    if(!is_array($constraint)) {
437                        if(!is_null ($this->valF[$constraint])) {
438                            if(!$this->isUnique($constraint,$this->valF[$constraint])) {
439                                $this->addToMessage( _("La valeur saisie dans le champ")." <span class=\"bold\">");
440                                $this->addToMessage( (!defined('REST_REQUEST')) ? $this->form->lib[$constraint] : $constraint); // $this->REST
441                                $this->addToMessage( "</span> "._("existe deja, veuillez saisir une nouvelle valeur.")."<br/>");
442                                $unique=false;
443                            }
444                        }
445                    } else {
446                        //Verification du groupe de champs uniques
447                        $oneIsNull=false;
448                        if(!empty($constraint)) {
449                            $valueMultiple=array();
450                            foreach($constraint as $field) {
451                                $valueMultiple[]=$this->valF[$field];
452                                if(is_null($this->valF[$field])) {
453                                    $oneIsNull=true;
454                                }
455                            }
456                            if(!$oneIsNull) {
457                                if(!$this->isUnique($constraint,$valueMultiple)) {
458                                    foreach($constraint as $field) {
459                                        $temp[] = (!defined('REST_REQUEST')) ? $this->form->lib[$field] : $constraint; // $this->REST
460                                    }
461                                    $this->addToMessage( _("Les valeurs saisies dans les champs")." <span class=\"bold\">".implode("</span>, <span class=\"bold\">",$temp)."</span> "._("existent deja, veuillez saisir de nouvelles valeurs.")."<br/>");
462                                    $unique=false;
463                                }
464                            }
465                        }
466                    }
467                }
468            }
469            if(!$unique) {
470                $this->correct = false;
471            }
472        }
473    
474    
475    
476        /**
477         * Methode permettant de requeter la base afin de definir la validite du champ unique
478         *
479         * @param string $champ nom du champ unique
480         * @param string $value valeur à inserer dans la colonne
481         */
482        function isUnique($champ,$value) {
483                    //Test sur un groupe de champs
484            if(is_array($champ) and is_array($value)) {
485                $sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".implode(" = ? AND ",$champ)." = ?";
486            } else {
487                    //Test sur un champ
488                $sql = 'SELECT count(*) FROM '.DB_PREFIXE.$this->table." WHERE ".$champ." = ?";
489            }
490            if($this->getParameter('maj')) {
491                $sql .= " AND ".$this->clePrimaire." \!= ".$this->valF[$this->clePrimaire];
492            }
493            //print '$sql:'.$sql.'  ';
494            //print 'login:'. $value;
495            $nb = $this->db->getone($sql,$value);
496            $this->addToLog("isUnique() : db->getone(\"".$sql."\");", VERBOSE_MODE);
497            if (database::isError($nb, true)) {
498                // Affichage de l'erreur
499                $this->erreur_db($nb->getDebugInfo(), $nb->getMessage(), '');
500                return true;
501            } else {
502                //Si superieur a 0, pas unique
503                if ($nb > 0) {
504                    return false;
505                } else {
506                    return true;
507                }
508            }
509        }
510    
511    
512    
513        /**
514         * Methode de verification des contraintes not null,
515         * affiche une erreur si nul.
516         *
517         * @param objet $db Objet Base de donnees
518         */
519        function checkRequired() {
520            foreach($this->required_field as $field) {
521                //Ne test la cle primaire car n'a pas de valeur a l'ajout
522                //print '$field:'.$field.'   ';
523                // la cle primaire est automatiquement cree
524                if ($field == $this->clePrimaire) {
525                    continue;
526                }
527    
528                $error = false;
529    
530                /* En ajout - verification des requis
531    
532                   Fonctionnement formel de la condition:
533    
534                    SI le champ n'existe pas (est 'unset')
535                    OU le champ est vide
536    
537                    ALORS le formulaire n'est pas correct
538    
539                    SINON le formulaire est correct
540    
541                  Explication:
542    
543                    Les champs verifies sont les champs requis. S'ils n'existent
544                    pas en ajout ou qu'ils sont vide, un message apparait a l'ecran
545                    avertissant l'utilisateur que certains champs doivent etre
546                    remplis.
547    
548                */
549                if ($this->getParameter('maj') == 0 and
550                    (!isset($this->valF[$field]) or $this->valF[$field] == '')) {
551                    //print 'ajout problem';
552                    $error = true;
553                    $this->correct = false;
554    
555                /* En modification - verification des requis
556    
557                   Fonctionnement formel de la condition:
558    
559                    SI le champ existe (est 'set')
560                    ET le champ est vide
561    
562                    ALORS le formulaire n'est pas correct
563    
564                    SINON le formulaire est correct
565    
566                  Explication:
567    
568                    Les champs verifies sont les champs requis. S'ils existent
569                    et qu'ils sont vides alors un message apparait a l'ecran
570                    avertissant l'utilisateur que certains champs doivent etre
571                    remplis. Si ces champs sont tous saisis, le formulaire est
572                    correctement soumis. Par contre, si l'un des champs requis
573                    n'existe pas au moment de verification (il aurait ete 'unset'),
574                    il ne sera pas verifie, n'entrainera pas de formulaire incorrect
575                    et ne sera pas insere dans la base de donnees.
576                    
577                    Faire un 'unset' permet de ne pas mettre a jour certaines
578                    donnees sensibles en base a chaque soumission de formulaire.
579                    
580                    Faire un 'unset' permet egalement d'outre passer cette condition
581                    en mode de modification. On suppose qu'a l'ajout une valeur
582                    a ete inseree dans un champ, et qu'il n'est plus necessaire
583                    de verifier si ce champ est vide puisque sa valeur ne sera
584                    pas modifiee en base. Elle sera donc conservee.
585    
586                */
587                } elseif ($this->getParameter('maj') == 1
588                           and isset($this->valF[$field])
589                           and $this->valF[$field] == '') {
590                    //print 'modif problem';
591                    $error = true;
592                    $this->correct = false;
593                }
594    
595                // ajout du message d'erreur
596                if ($error == true) {
597                    //$this->msg .= _('Le champ').' <span class="bold">'.($this->form->lib[$field]!=""?$this->form->lib[$field]:_($field)).'</span> '._('est obligatoire').".<br/>";
598                    $this->addToMessage( _('Le champ').' <span class="bold">'.((!defined('REST_REQUEST')) ? $this->form->lib[$field] :_($field)).'</span> '._('est obligatoire').".<br/>"); // $this->REST
599                }
600            }
601        }
602    
603    
604    
605    
606    
607        /**
608         *
609         */
610        function message() {
611            
612            // do not output anything in case of a REST request
613            if (defined('REST_REQUEST')) {
614                return;
615            }
616    
617            if ($this->msg != "") {
618    
619                //
620                $m = new message();
621    
622                //
623                if ($this->correct) {
624                    $class = "valid";
625                } else {
626                    $class = "error";
627                }
628                $m->displayMessage($class, $this->msg);
629    
630            }
631    
632        }
633    
634        
635    
636        /**
637         * Cette methode ne doit plus etre appelee, c'est 'message::isError($res)'
638         * qui s'occupe d'afficher le message d'erreur et de faire le 'die()'.
639         *
640         * @deprecated
641         */
642        function erreur_db($debuginfo, $messageDB, $table) {
643            print '$this->REST:\"'.$this->REST.'\"  ';
644            if (!defined('REST_REQUEST')) { // $this->REST
645                die(_("Erreur de base de donnees. Contactez votre administrateur."));
646            } else {
647                $this->errors['db_debuginfo'] = $debuginfo;
648                $this->errors['db_message'] = $messageDB;
649                $this->addToLog("Erreur de BD pour table ".$table ." avec message: \"".$messageDB.
650                                "\" et debug info \"".$debuginfo."\"", VERBOSE_MODE);
651            }
652        }
653    
654    
655        /**
656         *
657         */
658        function addToLog($message, $type = DEBUG_MODE) {
659            if (defined('REST_REQUEST')) { // dans le cas d'utilisation du REST  $this->REST
660                logger::instance()->log("REST request class ".get_class($this)." - ".$message, $type);
661            } else {
662                logger::instance()->log("class ".get_class($this)." - ".$message, $type);
663            }
664        }
665    
666        // }}}
667        
668        /**
669         * Cette methode vide les valeurs des erreurs du tableau errors.
670         */
671        function clearErrors() {
672            foreach (array_keys($this->errors) as $key) {
673                $this->errors[$key] = '';
674            }
675        }
676    
677    
678  }  }
679    
680  ?>  ?>

Legend:
Removed from v.514  
changed lines
  Added in v.515

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26