/****************************************************************************************/
/* Association Liégeoise des Géomètres-Experts - Union professionnelle fondée en 1889 */
/* Membre de l'Union Belge des Géomètres */
/****************************************************************************************/
/* Conception et programation par Jacques Houbart */
/* Design par Geoffrey Bougnet */
/****************************************************************************************/
/* Fichier sendmail.php -- Version 1.01 -- Février 2004 - */
/* Page PHP d'envoi d'un message par mail */
/****************************************************************************************/
define('Geometres_Site',TRUE);
define("USE_DB",TRUE);
include_once("Common.php");
include_once (HTML_LANG_PATH.'lang_search_user.php');
include_once (HTML_LANG_PATH.'lang_form.php');
include_once (HTML_INC_PATH.'InputValidation.php');
/* Cette page est appelée en popup avec les arguments
CallerForm= nom du formulaire de retour,
CtrlLat et CtrlLng = controles dans le formulaire ou renvoyer les valeurs du point (input type=hidden ....)
CtrlData=controle dans le formulaire ou renvoyer la valeur à afficher (input type=text ....)
PointLat et PointLng = La valeur initiale
CityID = ID de la DB pour indiquer la cité
*/
$ErrrorMsg='';
if ($_POST['mode']=='Search')
{
if (!$_POST['Localite_ID']&& !$_POST['Search_Name'])
{
$ErrrorMsg.=WriteError('Error_Search_NoCritere');
}
elseif ($_POST['Search_Name'] && strlen($_POST['Search_Name'])<3)
{
$ErrrorMsg.=WriteError('Error_Search_TooShort');
}
elseif ($_POST['Localite_ID']&& (!$_POST['Search_Proxy']))
{
$ErrrorMsg.=WriteError('Error_Search_Mode');
}
}
else
{ //Default initialisation
$_POST['Search_ProOnly']=true;
}
if (($ErrrorMsg=='')&&($_POST['mode']=='Search'))
{
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%% Block d'exécution de la recheche
//###################################################################################################################
//## Création des requêtes
if (!$_POST['Localite_ID']) // Recherche sur nom
{
// ***************************************************************************
// Recherche par nom
$req0="SELECT `u`.*, `s`.*,`a`.*,`c`.*
FROM `users` `u`, `global_salut` `s`, `users_associations` `a`, `global_country` `c`
WHERE
(`u`.`LnkSalut` = `s`.`Salut_id`) AND
(`u`.`LnkAssociation` = `a`.`AssocID`) AND
(`u`.`Adr1_Country` = `c`.`ISO3166_Code`)";
if ($_POST['Search_Option']==3) // Recherche soundex
{
// $req0.="AND (u.`SoundKey` = '".soundex($_POST['Search_Name']). "' OR u.`MetaKey` LIKE '".metaphone($_POST['Search_Name'])."%') ";
$req0.="AND (u.`SoundKey` = '".soundex($_POST['Search_Name']). "') ";
$SearchMessage=sprintf($site_lang['Search_Result_Snd'],$_POST['Search_Name'],soundex($_POST['Search_Name']),metaphone($_POST['Search_Name']));
}
else if ($_POST['Search_Option']==2) // Recherche % texte %
{
$req0.="AND u.`Nom` LIKE '%".$_POST['Search_Name']."%' ";
$SearchMessage=sprintf($site_lang['Search_Result_InTxt'],$_POST['Search_Name']);
}
else // Recherche texte
{
$req0.="AND u.`Nom` LIKE '".$_POST['Search_Name']."%' ";
$SearchMessage=sprintf($site_lang['Search_Result_Txt'],$_POST['Search_Name']);
}
$req0.=" ORDER BY u.`Nom`, u.`Prenom`";
}
elseif (($_POST['Search_Proxy']=="L")||($_POST['Search_Proxy']=="C")) //Localite /commune
{
// ***************************************************************************
// Recherche par localité
$req1="SELECT * FROM `global_localites` WHERE `Localite_ID` =".$_POST['Localite_ID']. " LIMIT 1";
if (!($query0=$db->sql_query($req1))) { die_error("Erreur de lecture de la base de donnée - Recherche Membre Proxy Localite Message"); }
$record1=$db->sql_fetchrow($query0);
if ($_POST['Search_Proxy']=="L")
{ // Recherche sur localité
$req0="SELECT `u`.*, `s`.*,`a`.*,`c`.*
FROM `users` `u`, `global_salut` `s`, `users_associations` `a`, `global_country` `c`
WHERE
(`u`.`LnkSalut` = `s`.`Salut_id`) AND
(`u`.`LnkAssociation` = `a`.`AssocID`) AND
(`u`.`Adr1_Country` = `c`.`ISO3166_Code`) AND
(u.`Adr1_Lnk_Localite` = '".$_POST['Localite_ID']. "') ";
$SearchMessage=sprintf($site_lang['Search_Result_Entite'],$record1['Localite'],$record1['CP_Localite'],$record1['Commune']);
}
else // if ($_POST['Search_Proxy']=="C")
{ // Recherche sur Commune
$CodePoste=$record1['CP_Commune'];
$req0="SELECT `u`.*, `s`.*,`a`.*,`c`.*
FROM `users` `u`, `global_salut` `s`, `users_associations` `a`, `global_country` `c`, `global_localites` `g`
WHERE
(`u`.`LnkSalut` = `s`.`Salut_id`) AND
(`u`.`LnkAssociation` = `a`.`AssocID`) AND
(`u`.`Adr1_Country` = `c`.`ISO3166_Code`) AND
(`u`.`Adr1_Lnk_Localite` = `g`.`Localite_ID`) AND
(`g`.`CP_Commune` = ".$CodePoste.")";
$CommuneName=$record1['Commune'];
$req1="SELECT * FROM `global_localites` WHERE `CP_Commune` = '".$CodePoste."'";
if (!($query0=$db->sql_query($req1))) { die_error("Erreur de lecture de la base de donnée - Recherche Membre Proxy Localite Message"); }
$CommuneList=array();
while ($record1=$db->sql_fetchrow($query0)){$CommuneList[]=$record1['Localite'];}
$SearchMessage=sprintf($site_lang['Search_Result_Commune'],$CommuneName,implode(', ',$CommuneList));
}
$req0.=$_POST['Search_ProOnly']?"AND (u.`Professional` ='Yes')":'';
$req0.=" ORDER BY u.`Nom`, u.`Prenom`";
}
elseif ($_POST['Search_Proxy']=="P")
{
// ***************************************************************************
// Distance
// $req1="SELECT * FROM `global_localites` WHERE `Localite_ID` =".$_POST['Localite_ID']. " LIMIT 1";
// if (!($query0=$db->sql_query($req1))) { die_error("Erreur de lecture de la base de donnée - Recherche Membre Proxy Localite Message"); }
// $record1=$db->sql_fetchrow($query0);
$req1="SELECT * FROM `global_localites` WHERE `Localite_ID` =".$_POST['Localite_ID']. " LIMIT 1";
if (!($query0=$db->sql_query($req1))) { die_error("Erreur de lecture de la base de donnée - Recherche Membre Proxy Geo"); }
$record1=$db->sql_fetchrow($query0);
$Lng=deg2rad($record1['Longitude']);
$Lat=deg2rad($record1['Latitude']);
// Calcul hors requête pour optimiser la recherche
$Cos_Lat=Cos($Lat);
$Sin_Lat=Sin($Lat);
$req0="SELECT `u`.*, `s`.*,`a`.*,`c`.*,
(6366*acos(".$Cos_Lat."*cos(RADIANS(`u`.`Latitude`))*cos(RADIANS(`u`.`Longitude`)-".$Lng.")+".$Sin_Lat."*sin(RADIANS(`u`.`Latitude`)))) as `Distance`
FROM `users` `u`, `global_salut` `s`, `users_associations` `a`, `global_country` `c`
WHERE
(`u`.`LnkSalut` = `s`.`Salut_id`) AND
(`u`.`LnkAssociation` = `a`.`AssocID`) AND
(`u`.`Adr1_Country` = `c`.`ISO3166_Code`)";
$req0.=$_POST['Search_ProOnly']?"AND (u.`Professional` ='Yes')":'';
$req0.=" ORDER BY Distance ASC, u.`Nom`, u.`Prenom` LIMIT 10";
$SearchMessage=sprintf($site_lang['Search_Result_Dist'],$record1['Localite'],$record1['CP_Localite'],$record1['Commune'],$record1['Longitude'],$record1['Latitude']);
}
else
{
die_error("Erreur interne : Option non implémentée Search_Proxy=".$_POST['Search_Proxy'].". Contacter l'administrateur");
}
//###################################################################################################################
//## Execution de la requete et adffichage des membres
include_once (HTML_INC_PATH.'NoSpamMail.php');
InitSecureMailHeader();
include (HTML_INC_PATH."PageHeader.php");
$SiteTemplate->set_filenames(array('Search_body' => 'user_search_body.tpl'));
$SiteTemplate->assign_block_vars('UserList_Section',array());
if (!($query0=$db->sql_query($req0))) { die_error("Erreur de lecture de la base de donnée - Recherche Membre req=".$req0); }
if ($record=$db->sql_fetchrow($query0))
{
do
{
$UserLanguage=$record['Lang'];
$Adresse=$record['Adr1_Site']?$record['Adr1_Site'].'
':'';
$Adresse.=$record['Adr1_Rue'].', '.$record['Adr1_Num'].($record['Adr1_Bte']?'/'.$record['Adr1_Bte']:'').'
';
$Adresse.=$record['Adr1_Etage']?$record['Adr1_Etage'].'
':'';
$Adresse.=$record['Adr1_CP'].' '.$record['Adr1_Localite'].'
';
$Adresse.=($record['Adr1_Localite']!=$record['Adr1_Localite'])?'('.$record['Adr1_Commune'].')
':'';
$Adresse.=$record['ISO3166_'.$UserLanguage];
$Contact='
| '.$site_lang['Label_Tel'].' | '.$record['Tel'].' |
| '.$site_lang['Label_Fax'].' | '.$record['Fax'].' |
| '.$site_lang['Label_GSM'].' | '.$record['GSM'].' |
| '.$site_lang['Label_Mail'].' | '.GetSecureMailJavaScriptEventImg($record['Alias'].'@'.($UserLanguage=='NL'?'Landmeter-Expert.org':'Geometre-Expert.org')).' |
| '.$site_lang['Label_Sky'].' | |
| '.$site_lang['Label_ICQ'].' | |
| '.$site_lang['Label_WebSite'].' | '.$record['URL'].' |