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

Legend:
Removed from v.305  
changed lines
  Added in v.680

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26