Happy New Year!!!
[platal.git] / modules / profile / mentor.inc.php
index fbc06ec..06b1ac9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2007 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -42,8 +42,7 @@ class ProfileSecteurs implements ProfileSetting
         } else if (!is_array($value)) {
             $value = array();
         } else if (count($value) > 10) {
-            global $page;
-            $page->trig("Le nombre de secteurs d'expertise est limité à 10");
+            Platal::page()->trigError("Le nombre de secteurs d'expertise est limité à 10");
             $success = false;
         }
         ksort($value);
@@ -90,8 +89,7 @@ class ProfileCountry implements ProfileSetting
         } else if (!is_array($value)) {
             $value = array();
         } else if (count($value) > 10) {
-            global $page;
-            $page->trig("Le nombre de secteurs d'expertise est limité à 10");
+            Platal::page()->trigError("Le nombre de secteurs d'expertise est limité à 10");
             $success = false;
         }
         ksort($value);
@@ -124,33 +122,35 @@ class ProfileMentor extends ProfilePage
         $this->settings['countries'] = new ProfileCountry();
     }
 
-    protected function fetchData()
+    protected function _fetchData()
     {
-        if (count($this->orig) > 0) {
-            $this->values = $this->orig;
-            return;
-        }
         $res = XDB::query("SELECT  expertise
                              FROM  mentor
                             WHERE  uid = {?}",
                           S::i('uid'));
-        $this->value['expertise'] = $res->fetchOneCell();
-        parent::fetchData();
+        $this->values['expertise'] = $res->fetchOneCell();
     }
 
-    protected function saveData()
+    protected function _saveData()
     {
-        parent::saveData();
         if ($this->changed['expertise']) {
-            XDB::execute("REPLACE INTO  mentor (uid, expertise)
-                                VALUES  ({?}, {?})",
-                         S::i('uid'), $this->values['expertise']);
+            $expertise = trim($this->values['expertise']);
+            if (empty($expertise)) {
+                XDB::execute("DELETE FROM  mentor
+                                    WHERE  uid = {?}",
+                             S::i('uid'));
+                $this->values['expertise'] = null;
+            } else {
+                XDB::execute("REPLACE INTO  mentor (uid, expertise)
+                                    VALUES  ({?}, {?})",
+                             S::i('uid'), $expertise);
+                $this->values['expertise'] = $expertise;
+            }
         }
     }
 
-    public function prepare(PlatalPage &$page, $id)
+    public function _prepare(PlPage &$page, $id)
     {
-        parent::prepare($page, $id);
         $page->assign('secteurs_sel', XDB::iterator("SELECT  id, label
                                                        FROM  emploi_secteur"));
     }