Wiki allow [[~alias]] ==> Prenom NOM Xxxxx (aka Surnom)
[platal.git] / include / profil / update_adresses.inc.php
index cf4a150..d6f5213 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2004 Polytechnique.org                              *
+ *  Copyright (C) 2003-2006 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************/
 
-
+global $adresses;
 reset($adresses);
 
-foreach($adresses as $adrid => $adr){
+function insert_new_tel($adrid, $tel) {
+    if ($tel['tel'] == "")
+        return;
+    XDB::execute( "INSERT INTO tels SET tel_type = {?}, tel_pub = {?},
+                  tel = {?}, uid = {?}, adrid = {?}, telid = {?}",
+                  $tel['tel_type'], $tel['tel_pub'], $tel['tel'],
+                  S::v('uid', -1), $adrid, $tel['telid']);
+}
 
-  if($adr['nouvelle'] != 'new'){ // test si on vient de creer cette adresse dans verif_adresse.inc.php
-  
-    //construction des bits
-    $statut = "";
-    if ($adr["secondaire"])    $statut .= 'res-secondaire,';
-    if ($adr["courrier"])      $statut .= 'courrier,';
-    if ($adr["active"])        $statut .= 'active,';
-    if ($adr["temporaire"])    $statut .= 'temporaire,';
-    if (! empty($statut)) $statut = substr($statut, 0, -1);
+foreach ($adresses as $adrid => $adr) {
 
-    if ($adr["nouvelle"] == 'ajout') {
-    //nouvelle adresse
-      $globals->xdb->execute("INSERT INTO adresses SET
-                        adr1 = {?},
-                        adr2 = {?},
-                        adr3 = {?},
-                        postcode = {?},
-                        city = {?},
-                        cityid = {?},
-                        country = {?},
-                        region = {?},
-                        tel = {?},
-                        fax = {?},
-                        pub = {?},
-                        tel_pub = {?},
-                        datemaj = NOW(),
-                        statut = {?},
-                        uid = {?}, adrid = {?}",
-                        $adr['adr1'],
-                        $adr['adr2'],
-                        $adr['adr3'],
-                        $adr['postcode'],
-                        $adr['city'],
-                        $adr['cityid'],
-                        $adr['country'],
-                        $adr['region'],
-                        $adr['tel'],
-                        $adr['fax'],
-                        $adr['pub'],
-                        $adr['tel_pub'],
-                        $statut,
-                        Session::getInt('uid', -1), $adrid);
-    }
-    
-    else{ 
-      //c'est une mise à jour
-      $globals->xdb->execute(
-                   "UPDATE adresses SET
-                                adr1 = {?},
-                                adr2 = {?},
-                                adr3 = {?},
-                                postcode = {?},
-                                city = {?},
-                                cityid = {?},
-                                country = {?},
-                                region = {?},
-                                tel = {?},
-                                fax = {?},
-                                pub = {?},
-                                tel_pub = {?},
-                                datemaj = NOW(),
-                                statut = {?}
-                                WHERE uid = {?} AND adrid = {?}",
-                                $adr['adr1'],
-                                $adr['adr2'],
-                                $adr['adr3'],
-                                $adr['postcode'],
-                                $adr['city'],
-                                $adr['cityid'],
-                                $adr['country'],
-                                $adr['region'],
-                                $adr['tel'],
-                                $adr['fax'],
-                                $adr['pub'],
-                                $adr['tel_pub'],
-                                $statut,
-                                Session::getInt('uid', -1), $adrid
-                   );
-    }// fin nouvelle / ancienne adresse
-  }//fin if nouvellement crée
+    if ($adr['nouvelle'] != 'new') {
+        // test si on vient de creer cette adresse dans verif_adresse.inc.php
+
+        //construction des bits
+        $statut = "";
+        if ($adr["secondaire"])    $statut .= 'res-secondaire,';
+        if ($adr["courrier"])      $statut .= 'courrier,';
+        if ($adr["active"])        $statut .= 'active,';
+        if ($adr["temporaire"])    $statut .= 'temporaire,';
+        if (! empty($statut)) $statut = substr($statut, 0, -1);
+
+        if ($adr["nouvelle"] == 'ajout') {
+            //nouvelle adresse
+            XDB::execute("INSERT INTO adresses SET adr1 = {?}, adr2 = {?},
+                         adr3 = {?}, postcode = {?}, city = {?}, cityid = {?},
+                         country = {?}, region = {?}, regiontxt = {?},
+                         pub = {?}, datemaj = NOW(), statut = {?}, uid = {?},
+                         adrid = {?}", $adr['adr1'], $adr['adr2'],
+                         $adr['adr3'], $adr['postcode'], $adr['city'],
+                         $adr['cityid'], $adr['country'], $adr['region'],
+                         $adr['regiontxt'], $adr['pub'], $statut,
+                         S::v('uid', -1), $adrid);
+            $telsvalues = "";                   
+            foreach ($adr['tels'] as $tel) {
+                insert_new_tel($adrid, $tel);
+            }
+        } else { 
+            //c'est une mise à jour
+            XDB::execute("UPDATE adresses SET adr1 = {?}, adr2 = {?},
+                         adr3 = {?}, postcode = {?}, city = {?}, cityid = {?},
+                         country = {?}, region = {?}, regiontxt = {?},
+                         pub = {?}, datemaj = NOW(), statut = {?}
+                         WHERE uid = {?} AND adrid = {?}", $adr['adr1'],
+                         $adr['adr2'], $adr['adr3'], $adr['postcode'],
+                         $adr['city'], $adr['cityid'], $adr['country'],
+                         $adr['region'], $adr['regiontxt'], $adr['pub'],
+                         $statut, S::v('uid', -1), $adrid);
+            foreach ($adr['tels'] as $tel) {
+                if ($tel['new_tel']) {
+                    insert_new_tel($adrid, $tel);
+                } else {
+                    if ($tel['tel'] != "") {
+                        XDB::execute(
+                            "UPDATE tels SET
+                            tel_type = {?},
+                            tel_pub = {?},
+                            tel = {?}
+                            WHERE
+                            uid = {?} AND
+                            adrid = {?} AND
+                            telid = {?}",
+                            $tel['tel_type'],
+                            $tel['tel_pub'],
+                            $tel['tel'],
+                            S::v('uid', -1),
+                            $adrid,
+                            $tel['telid']);
+                    } else {
+                        XDB::execute(
+                            "DELETE FROM tels WHERE
+                            uid = {?} AND
+                            adrid = {?} AND
+                            telid = {?}",
+                            S::v('uid', -1),
+                            $adrid,
+                            $tel['telid']);
+                    }
+                }
+            }
+        }// fin nouvelle / ancienne adresse
+    }//fin if nouvellement crée
 }//fin foreach
+
+
+//on vire les adresses vides :
+if(isset($adresses)){ // s'il y en a
+  reset($adresses);
+  foreach($adresses as $adrid => $adr){
+    // on vire les tels vides
+    foreach ($adr['tels'] as $telid => $tel) {
+      if ($tel['tel'] == '') unset($adresses[$adrid]['tels'][$telid]);
+    }
+    if(is_adr_empty($adrid)){
+       delete_address($adrid);
+    }
+  }
+}
+
 ?>