Move and factorize code:
[platal.git] / include / validations.inc.php
index a00b346..12ec281 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2007 Polytechnique.org                              *
+ *  Copyright (C) 2003-2008 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -21,7 +21,8 @@
 
 define('SIZE_MAX', 32768);
 
-require_once dirname(__FILE__) . '/../classes/xdb.php';
+global $globals;
+require_once $globals->spoolroot . '/core/classes/xdb.php';
 
 /**
  * Iterator class, that lists objects through the database
@@ -116,7 +117,7 @@ abstract class Validate
                 $this->uid, $this->type, $this, $this->stamp);
 
         global $globals;
-        update_NbValid();
+        $globals->updateNbValid();
         return true;
     }
 
@@ -146,20 +147,20 @@ abstract class Validate
             $success =  XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?} AND stamp={?}',
                                       $this->uid, $this->type, $this->stamp);
         }
-        update_NbValid();
+        $globals->updateNbValid();
         return $success;
     }
 
     // }}}
     // {{{ function handle_formu()
 
-    /** fonction à réaliser en cas de valistion du formulaire
+    /** fonction à réaliser en cas de validation du formulaire
      */
     public function handle_formu()
     {
         if (Env::has('delete')) {
             $this->clean();
-            $this->trig('requete supprimée');
+            $this->trigSuccess('Requête supprimée');
             return true;
         }
 
@@ -167,7 +168,7 @@ abstract class Validate
         if (Env::has('edit')) {
             if ($this->handle_editor()) {
                 $this->update();
-                $this->trig('requête mise à jour');
+                $this->trigSuccess('Requête mise à jour');
                 return true;
             }
             return false;
@@ -202,7 +203,7 @@ abstract class Validate
             $mailer->send();
 
             $this->update();
-            $this->trig('commentaire ajouté');
+            $this->trigSuccess('Commentaire ajouté');
             return true;
         }
 
@@ -210,10 +211,10 @@ abstract class Validate
             if ($this->commit()) {
                 $this->sendmail(true);
                 $this->clean();
-                $this->trig('mail envoyé');
+                $this->trigSuccess('Mail de validation envoyé');
                 return true;
             } else {
-                $this->trig('erreur lors de la validation');
+                $this->trigError('Erreur lors de la validation');
                 return false;
             }
         }
@@ -222,10 +223,10 @@ abstract class Validate
             if (Env::v('comm')) {
                 $this->sendmail(false);
                 $this->clean();
-                $this->trig('mail envoyé');
+                $this->trigSuccess('Mail de refus envoyé');
                 return true;
             } else {
-                $this->trig('pas de motivation pour le refus !!!');
+                $this->trigError('pas de motivation pour le refus !!!');
             }
         }
 
@@ -256,10 +257,19 @@ abstract class Validate
     // }}}
     // {{{ function trig()
 
-    protected function trig($msg)
+    protected function trigError($msg)
     {
-        global $page;
-        $page->trig($msg);
+        Platal::page()->trigError($msg);
+    }
+
+    protected function trigWarning($msg)
+    {
+        Platal::page()->trigWarning($msg);
+    }
+
+    protected function trigSuccess($msg)
+    {
+        Platal::page()->trigSuccess($msg);
     }
 
     // }}}
@@ -313,6 +323,17 @@ abstract class Validate
     }
 
     // }}}
+    // {{{ function get_typed_requests_count()
+
+    /** same as get_typed_requests() but return the count of available requests.
+     */
+    static public function get_typed_requests_count($uid, $type)
+    {
+        $res = XDB::query('SELECT COUNT(data) FROM requests WHERE user_id={?} and type={?}', $uid, $type);
+        return $res->fetchOneCell();
+    }
+
+    // }}}
     // {{{ function _mail_body
 
     abstract protected function _mail_body($isok);