<?php
/***************************************************************************
- * Copyright (C) 2003-2004 Polytechnique.org *
+ * Copyright (C) 2003-2007 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
require_once('geoloc.inc.php');
+global $adresses, $nb_adr_max, $nb_tel_max;
+
// on limite à 6 adresses personnelles par utilisateur
$nb_adr_max = 6; // ( = max(adrid possibles)
+// on limite à 4 numéros de téléphone par adresse
+$nb_tel_max = 4; // ( = max(telid possibles)
//les adresses sont stockées dans un tableau global indéxé par adrid;
function is_adr_empty($adrid){
$adr = &$GLOBALS['adresses'][$adrid];
+ $emptytel = count($adr['tels']) == 0;
+ if (!$emptytel) {
+ $emptytel = true;
+ foreach ($adr['tels'] as $t) if ($t['tel']) {
+ $emptytel = false;
+ break;
+ }
+ }
return (
($adr['adr1'] == '') && ($adr['adr2'] == '') && ($adr['adr3'] == '') &&
($adr['postcode'] == '') && ($adr['city'] == '') && ($adr['country'] == '00') &&
- ($adr['tel'] == '') && ($adr['fax'] == '')
+ ($emptytel)
);
}
function delete_address($adrid, $in_request_array = false){
- global $globals;
- $globals->xdb->execute("DELETE FROM adresses WHERE uid = {?} AND adrid = {?}",Session::getInt('uid', -1), $adrid);
- if($in_request_array == true){
- unset($_REQUEST['adrid'][$adrid]);
- }
- else{
- unset($GLOBALS['adresses'][$adrid]);
+ XDB::execute("DELETE FROM adresses WHERE uid = {?} AND adrid = {?}",
+ S::v('uid', -1), $adrid);
+ XDB::execute("DELETE FROM tels WHERE uid = {?} AND adrid = {?}",
+ S::v('uid', -1), $adrid);
+ if ($in_request_array == true){
+ unset($_REQUEST['adrid'][$adrid]);
+ } else{
+ unset($GLOBALS['adresses'][$adrid]);
}
}
//on verifie si on nous a demande une suppression
-$req_adrid_del = Env::getMixed('adrid_del', Array());
-for($i = 1; $i <= $nb_adr_max; $i++){
- if( isset( $req_adrid_del[$i] ) ) {
- delete_address($i,true);
- }
+$req_adrid_del = Env::v('adrid_del', Array());
+for ($i = 1; $i <= $nb_adr_max; $i++) {
+ if (isset($req_adrid_del[$i])) {
+ delete_address($i,true);
+ }
+}
+if (Env::i('deltel')) {
+ XDB::execute("DELETE FROM tels WHERE uid = {?} AND adrid = {?} AND telid = {?}",
+ S::v('uid', -1), Env::i('adrid'), Env::i('telid'));
}
//$sql_order = "ORDER BY (NOT FIND_IN_SET('active', statut)), FIND_IN_SET('temporaire', statut)";
$sql_order = '';
//recuperation des adrid
-$res = $globals->xdb->query("SELECT adrid FROM adresses WHERE uid = {?} AND NOT FIND_IN_SET('pro', statut) ".$sql_order, Session::getInt('uid', -1));
+$res = XDB::query("SELECT adrid FROM adresses WHERE uid = {?} AND NOT FIND_IN_SET('pro', statut) ".$sql_order, S::v('uid', -1));
$adrids = $res->fetchColumn();
//recuperation des donnees de la bd
-$res = $globals->xdb->iterRow(
+$res = XDB::iterRow(
"SELECT
FIND_IN_SET('res-secondaire', statut), FIND_IN_SET('courrier', statut),
FIND_IN_SET('active', statut), FIND_IN_SET('temporaire', statut),
adr1, adr2, adr3, postcode, city, cityid,
- a.country, region, regiontxt, tel, fax, pub, tel_pub,
+ a.country, region, regiontxt, pub,
gp.pays AS countrytxt, gp.display
FROM adresses AS a INNER JOIN geoloc_pays AS gp ON(gp.a2 = a.country)
WHERE uid = {?} AND NOT FIND_IN_SET('pro',statut) ".$sql_order
-, Session::getInt('uid', -1)
+, S::v('uid', -1)
);
$nb_adr = $res->total();
$adresses[$adrid]['secondaire'], $adresses[$adrid]['courrier'],
$adresses[$adrid]['active'], $adresses[$adrid]['temporaire'],
$adresses[$adrid]['adr1'], $adresses[$adrid]['adr2'], $adresses[$adrid]['adr3'], $adresses[$adrid]['postcode'], $adresses[$adrid]['city'], $adresses[$adrid]['cityid'],
- $adresses[$adrid]['country'], $adresses[$adrid]['region'], $adresses[$adrid]['regiontxt'], $adresses[$adrid]['tel'], $adresses[$adrid]['fax'],
+ $adresses[$adrid]['country'], $adresses[$adrid]['region'], $adresses[$adrid]['regiontxt'],
$adresses[$adrid]['pub'],
- $adresses[$adrid]['tel_pub'],$adresses[$adrid]['countrytxt'],$adresses[$adrid]['display']) = $res->next();
+ $adresses[$adrid]['countrytxt'],$adresses[$adrid]['display']) = $res->next();
$adresses[$adrid]['nouvelle'] = 'modif';
$adresses[$adrid]['numero_formulaire'] = -1;
require_once('geoloc.inc.php');
$adresses[$adrid]['txt'] = get_address_text($adresses[$adrid]);
}
+$restels = XDB::iterator(
+ "SELECT
+ t.adrid, telid, tel_type, t.tel_pub, t.tel
+ FROM tels AS t INNER JOIN adresses AS a ON(t.uid = a.uid AND t.adrid = a.adrid)
+ WHERE t.uid = {?} AND NOT FIND_IN_SET('pro',statut) ORDER BY t.adrid, tel_type DESC, telid"
+, S::v('uid', -1)
+);
+while ($tel = $restels->next()) {
+ $adrid = $tel['adrid'];
+ unset($tel['adrid']);
+ if (!isset($adresses[$adrid]['tels']))
+ $adresses[$adrid]['tels'] = array($tel);
+ else
+ $adresses[$adrid]['tels'][] = $tel;
+}
?>