10,7 → 10,7 |
// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> | |
// +--------------------------------------------------------------------------------+ |
// |
// $Id: annuaire_backoffice.fonct.php,v 1.8 2007-01-04 16:33:09 alexandre_tb Exp $ |
// $Id: annuaire_backoffice.fonct.php,v 1.9 2007-04-06 08:35:46 neiluj Exp $ |
|
|
/** function mkengine () |
20,9 → 20,8 |
* @return |
*/ |
|
include_once PAP_CHEMIN_API_PEAR.'Pager/Pager.php' ; |
include_once PAP_CHEMIN_API_PEAR.'HTML/Table.php'; |
include_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php'; |
include_once 'Pager/Pager.php' ; |
include_once 'HTML/Table.php'; |
|
function mkengine() |
{ |
54,8 → 53,10 |
'itemData' => $donnees |
) ; |
$pager = & Pager::factory($param_pager); |
|
|
|
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ; |
|
// Deux cas , soit on a cliqué sur rechercher, soit on a cliqué sur un lien |
foreach ($mes_vars as $key=>$value) { |
if (!$bouton) { // on a cliqué sur un lien |
70,56 → 71,91 |
$$value = $HTTP_POST_VARS[$value] ; |
} |
} |
} |
} |
// Comptage du nombre total de données dans la table (hors CACHER = 1) |
$requete_nbre_inscrit = "select count(*) as CPT from ".INS_ANNUAIRE; |
$resultat_nbre_inscrit = $GLOBALS['ins_db']->query($requete_nbre_inscrit) ; |
|
|
if ($resultat_nbre_inscrit->numRows() == 1) { |
$tmp_nb = $resultat_nbre_inscrit->fetchRow(DB_FETCHMODE_OBJECT); |
$nbr_total = $tmp_nb->CPT; |
if ($nbr_total > 0) $chaine = "parmi $nbr_total données"; |
else die("<B>Erreur</B> lors du comptage des structures ($nbr_total trouvées) : $query"); |
} |
else die("<B>Erreur</B> lors du comptage des structures : $query"); |
|
|
// fin comptage |
|
$ret = ''; |
$ret .= '<h1>'.AM_L_TITRE.'</h1>'."\n" ; |
$ret .= '<h1>'.AM_L_TITRE.' '.$chaine.'</h1>'."\n" ; |
// construction du moteur de str |
$ret .= '<div>'; |
|
// Le formulaire de recherche avec QuickForm |
$formulaire = new HTML_QuickForm('formulaire_recherche', 'post', str_replace('&', '&', $GLOBALS['ins_url']->getURL())); |
|
$formulaire->addElement('text', 'recherche', AM_L_RECHERCHER); |
|
$requete = 'select GC_ID, GC_NAME from gen_COUNTRY where GC_LOCALE="fr"'; |
$pays = &$GLOBALS['ins_db']->getAssoc ($requete); |
$ret .= '<form action="'.$GLOBALS['ins_url']->getURL().'" method="post">'."\n"; |
$ret .= '<table summary="recherche">'."\n"; |
|
$pays = array_merge (array('tous' => 'Tous les pays'), $pays); |
// ligne de recherche |
$ret .= "<tr>\n"; |
$ret .= "<td>".AM_L_RECHERCHER." :\n</td>\n<td>"; |
$ret .= form_mk_chaineI(isset ($_REQUEST['recherche']) ? stripslashes($_REQUEST['recherche']) : '', "recherche")." "; |
$ret .= '</td><td colspan="4">'.AM_L_PAYS." : \n" ; |
|
if (DB::isError($pays)) { |
return $pays->getMessage().'<br />'.$pays->getDebugInfo(); |
} |
// formulaire contenant les pays, avec par défaut soit le pays en cours |
// soit "tous les pays" |
$liste_pays = new ListeDePays($GLOBALS['ins_db']) ; |
$tableau_pays = $liste_pays->getListePays(INS_LANGUE_DEFAUT) ; |
|
$ret .= "<select name=\"pays\">\n" ; |
$ret .= "<option value=\"tous\">Tous les pays</option>\n" ; |
foreach ($tableau_pays as $codeIso => $labelPays) { |
$ret .= '<option value="'.$codeIso.'"' ; |
if (!empty($pays)) { |
if ($pays == $codeIso) $ret .= " selected" ; |
} |
$ret .= '>'.$labelPays.'</option>'."\n" ; |
} |
$ret .= "</select>\n" ; |
$ret .= "</td></tr>\n" ; |
|
$ret .= "<tr>\n"; |
$ret .= "<td>".AM_L_NOM." :\n</td><td>"; |
$ret .= form_mk_chaineI(isset ($_REQUEST['nom']) ? stripslashes($_REQUEST['nom']) : '', "nom")." </td>\n<td>" ; |
$ret .= AM_L_PRENOM." :</td>\n<td>".form_mk_chaineI(isset ($_REQUEST['prenom']) ? stripslashes($_REQUEST['prenom']) : '', "prenom")." </td>\n<td class=\"insLabel\">" ; |
$ret .= AM_L_VILLE." :</td>\n<td>".form_mk_chaineI(isset ($_REQUEST['ville']) ? stripslashes($_REQUEST['ville']) : '', "ville")." </td>" ; |
$ret .= "</tr><tr>\n" ; |
$ret .= "<td>".AM_L_DEPARTEMENT." : </td>\n<td>" ; |
|
// Construction du <select> des départements |
$requete_dpt = 'select '.INS_CHAMPS_ID_DEPARTEMENT.', '.INS_CHAMPS_NOM_DEPARTEMENT.' from '.INS_TABLE_DPT ; |
$resultat_dpt = $GLOBALS['ins_db']->query($requete_dpt) ; |
if (DB::isError($resultat_dpt)) { |
echo 'Echec de la requete<br />'.$requete_dpt.'<br />'.$resultat_dpt->getMessage(); |
} |
$ret .= "<select name=\"dept\">\n" ; |
$ret .= "<option value=\"tous\">tous</option>\n" ; |
while ($ligne_dpt = $resultat_dpt->fetchRow(DB_FETCHMODE_ASSOC)) { |
$ret .= '<option value="'.$ligne_dpt[INS_CHAMPS_ID_DEPARTEMENT].'"' ; |
if (isset ($_REQUEST['dept']) && $_REQUEST['dept'] == $ligne_dpt[INS_CHAMPS_ID_DEPARTEMENT]) $ret .= " selected" ; |
$ret .= '>'.$ligne_dpt[INS_CHAMPS_ID_DEPARTEMENT].' - '.$ligne_dpt[INS_CHAMPS_NOM_DEPARTEMENT].'</option>'."\n" ; |
} |
$ret .= "</select></td>\n" ; |
|
$ret .= '<td>'.AM_L_MAIL.' : </td><td colspan="3">'.form_mk_chaineI(isset ($_REQUEST['mail']) ? stripslashes($_REQUEST['mail']) : '', "mail")."</td>\n" ; |
$ret .= "</tr>" ; |
|
// Les statuts des inscrits |
|
$select = new HTML_QuickForm_select ('pays', AM_L_PAYS, $pays, array ('class' => 'projet_asso')) ; |
$formulaire->addElement($select) ; |
$formulaire->addElement('text', 'nom', AM_L_NOM); |
$formulaire->addElement('text', 'prenom', AM_L_PRENOM); |
$formulaire->addElement('text', 'ville', AM_L_VILLE); |
|
if (defined('INS_CHAMPS_NOM_DEPARTEMENT')) { |
$departement = & $GLOBALS['ins_db']->getAssoc('select GFD_ID, CONCAT(GFD_ID,\' - \',GFD_NAME) as GFD_NAME from gen_FRENCH_DPT'); |
$departement = array_merge (array ('tous' => 'Tous'), $departement); |
|
$select_dpt = new HTML_QuickForm_select ('departement', AM_L_DEPARTEMENT, $departement, array ('class' => 'projet_asso')) ; |
$formulaire->addElement($select_dpt); |
} |
$formulaire->addElement('text', 'mail', AM_L_MAIL); |
|
$grp = array(20 => 20, 50 => 50, 100 => 100) ; |
$select_grp = new HTML_QuickForm_select ('T_REPONSE', '', $grp, array ('class' => 'projet_asso')) ; |
$formulaire->addElement($select_grp); |
$formulaire->addElement('submit', 'bouton', AM_L_RECHERCHER); |
foreach ($mes_vars as $key=>$value) { |
if (isset($_POST[$value])) { |
$default[$value] = $_POST[$value] ; |
} |
} |
$formulaire->setDefaults($_POST); |
|
$ret .= '<br />'.$formulaire->toHTML(); |
|
$ret .= "<tr>\n"; |
$ret .= "<td>\n"; |
$ret .= AM_L_GRP_RES." : </td>" ; |
$ret .= '<td>'.$pager->getperpageselectbox (50 , 200, 50 , false ,'%d').'</td>'."\n" ; |
$ret .= '<td colspan="4">'."\n"; |
$ret .= "<input type=\"submit\" value=\"".AM_L_RECHERCHER."\" name =\"bouton\">\n"; |
$ret .= "</td></tr></table></form>\n"; |
|
$ret .= "\n<div>" ; |
|
// La liste des lettres de l'alphabet |
for ($i = 65 ; $i <91 ; $i++) { |
$GLOBALS['ins_url']->addQueryString('lettre', chr($i)) ; |
131,20 → 167,7 |
$GLOBALS['ins_url']->addQueryString ('lettre', 'tous') ; |
$ret .= " <a href=\"".$GLOBALS['ins_url']->getURL().'">'.AM_L_TOUS."</a>\n" ; |
$ret .= "</div>\n" ; |
|
// Comptage du nombre total de données dans la table (hors CACHER = 1) |
$requete_nbre_inscrit = "select count(*) as CPT from ".INS_ANNUAIRE; |
$resultat_nbre_inscrit = $GLOBALS['ins_db']->query($requete_nbre_inscrit) ; |
if ($resultat_nbre_inscrit->numRows() == 1) { |
$tmp_nb = $resultat_nbre_inscrit->fetchRow(DB_FETCHMODE_OBJECT); |
$nbr_total = $tmp_nb->CPT; |
$chaine = " sur $nbr_total entrées"; |
if ($nbr_total <= 0) $ret .= "<B>Erreur</B> lors du comptage des structures ($nbr_total trouvées) : $requete_nbre_inscrit"; |
} |
else $ret .= "<B>Erreur</B> lors du comptage des structures : $requete_nbre_inscrit"; |
// fin comptage |
|
$ret .= '<p class="zone_info">'.$nbr_final.' résultat(s)'.$chaine.'</p>' ; |
$ret .= '<div>'.$nbr_final.' résultat(s)</div>' ; |
$GLOBALS['ins_url']->removeQueryString('lettre') ; |
|
// Menu Ajouter un inscrit |
153,20 → 176,12 |
$data = $pager->getPageData(); |
|
$table = new HTML_Table(array ('class' => 'table_bazar')) ; |
if (defined('INS_CHAMPS_VILLE')) { |
$table->addRow(array( |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_NOM.'">Identité</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_MAIL.'">Adresse mail</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_VILLE.'">'.AM_L_VILLE.'</a>', |
'Pays ou Dpt (fr)' |
$table->addRow(array( |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_NOM.'">Identité</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_MAIL.'">Adresse mail</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_VILLE.'">'.AM_L_VILLE.'</a>', |
'Pays ou Dpt (fr)' |
), '', 'TH') ; |
} else { |
$table->addRow(array( |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_NOM.'">Identité</a>', |
'<a href="'.$GLOBALS['ins_url']->getURL().'&sort='.INS_CHAMPS_MAIL.'">Adresse mail</a>', |
'Pays ou Dpt (fr)' |
), '', 'TH') ; |
} |
|
$debut = isset($_REQUEST['pageID']) ? $_REQUEST['pageID'] : 1 ; |
for ($i = ($debut - 1) * $_REQUEST['setPerPage']; |
175,30 → 190,20 |
// On teste s'il y une valeur, si oui on ajoute la ligne |
if (isset ($data[$i])) { |
$urlPop = $GLOBALS['ins_url']->getURL().'&'.INS_CHAMPS_ID.'='.$data[$i][INS_CHAMPS_ID]; |
if (defined('INS_CHAMPS_VILLE')) { |
$ligne_inscrit = array ("<a href=\"$urlPop\">".$data[$i][INS_CHAMPS_NOM].' '.$data[$i][INS_CHAMPS_PRENOM]. |
$ligne_inscrit = array ("<a href=\"$urlPop\">".$data[$i][INS_CHAMPS_NOM].' '.$data[$i][INS_CHAMPS_PRENOM]. |
'</a>', $data[$i][INS_CHAMPS_MAIL], $data[$i][INS_CHAMPS_VILLE]) ; |
} else { |
$ligne_inscrit = array ("<a href=\"$urlPop\">".$data[$i][INS_CHAMPS_NOM].' '.$data[$i][INS_CHAMPS_PRENOM]. |
'</a>', $data[$i][INS_CHAMPS_MAIL]) ; |
} |
|
// Pour la france on met le département, sinon on laisse le nom du pays |
if ($data[$i][INS_CHAMPS_PAYS] != 'fr') { |
array_push ($ligne_inscrit, $data[$i][INS_CHAMPS_LABEL_PAYS]); |
} else { |
if (defined('INS_CHAMPS_NOM_DEPARTEMENT')) { |
$req_dpt = 'select '.INS_CHAMPS_NOM_DEPARTEMENT.' from '.INS_TABLE_DPT.",".INS_ANNUAIRE. |
" where ".INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'='.$data[$i][INS_CHAMPS_ID] ; |
$req_dpt .= " and ".INS_ANNUAIRE.'.'.INS_CHAMPS_DEPARTEMENT.'='.INS_TABLE_DPT.'.' |
.INS_CHAMPS_ID_DEPARTEMENT ; |
$resultat_dpt = $GLOBALS['ins_db']->query($req_dpt) ; |
if (DB::isError($resultat_dpt)) { |
echo $resultat_dpt->getMessage().$resultat_dpt->getDebugInfo(); |
} |
$ligne_dpt = $resultat_dpt->fetchRow(DB_FETCHMODE_ASSOC) ; |
array_push ($ligne_inscrit, $ligne_dpt[INS_CHAMPS_NOM_DEPARTEMENT]) ; |
} |
$req_dpt = 'select '.INS_CHAMPS_NOM_DEPARTEMENT.' from '.INS_TABLE_DEPARTEMENT.",".INS_ANNUAIRE. |
" where ".INS_ANNUAIRE.'.'.INS_CHAMPS_ID.'='.$data[$i][INS_CHAMPS_ID] ; |
$req_dpt .= " and ".INS_ANNUAIRE.'.'.INS_CHAMPS_ID_DEPARTEMENT.'='.INS_TABLE_DEPARTEMENT.'.' |
.INS_CHAMPS_ID_DEPARTEMENT ; |
$resultat_dpt = $GLOBALS['ins_db']->query($req_dpt) ; |
$ligne_dpt = $resultat_dpt->fetchRow(DB_FETCHMODE_ASSOC) ; |
array_push ($ligne_inscrit, $ligne_dpt[INS_CHAMPS_NOM_DEPARTEMENT]) ; |
} |
|
$table->addRow($ligne_inscrit) ; |
214,7 → 219,33 |
return $ret; |
} |
|
/** function form_mk_chaineI () Renvoie une balise de type <input> |
* |
* @param string l'attribut value de la balise |
* @param string l'attibut name de la balise |
* @param string la classe CSS |
* @return string HTML |
*/ |
function form_mk_chaineI($value="", $name, $class="insInputForm") |
{ |
return "<input type=\"text\" size=\"15\" value=\"$value\" name=\"$name\" class=\"$class\">"; |
} |
|
function form_mk_select($value="", $name="", $class="insInputForm") { |
$res = "<select name=\"$name\" class=\"$class\">\n" ; |
$res .= "<option value=\"1\"" ; |
if ($value == 1) $res .= " selected" ; |
$res .= ">Cotisants</option>\n" ; |
$res .= "<option value=\"2\"" ; |
if ($value == 2) $res .= " selected" ; |
$res .= ">Non cotisants</option>\n" ; |
$res .= "<option value=\"3\"" ; |
if ($value == 3 || $value == "") $res .= " selected" ; |
$res .= ">Tous</option>\n" ; |
$res .= "</select>\n" ; |
return $res ; |
} |
|
function mkquery() |
{ |
|
222,20 → 253,14 |
// l'état de la cotisation (jointure) |
|
// le tableau suivant contient tous les champs de la table annuaire_tela sur lesquels on peut effectuer une recherche |
if (defined('INS_CHAMPS_DEPARTEMENT')) { |
$fields_annu = array("nom" => INS_CHAMPS_NOM, "prenom" => INS_CHAMPS_PRENOM , "mail" => INS_CHAMPS_MAIL , |
"dept" => INS_CHAMPS_DEPARTEMENT, "pays" => INS_CHAMPS_PAYS ) ; |
} |
else { |
$fields_annu = array("nom" => INS_CHAMPS_NOM, "prenom" => INS_CHAMPS_PRENOM , "mail" => INS_CHAMPS_MAIL , |
"pays" => INS_CHAMPS_PAYS ) ; |
} |
if (defined('INS_CHAMPS_VILLE')) $fields_annu["ville"]=INS_CHAMPS_VILLE; |
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "pays", "sort", "T_REPONSE", "lettre", "statut") ; |
$fields_annu = array("nom" => INS_CHAMPS_NOM, "prenom" => INS_CHAMPS_PRENOM , "mail" => INS_CHAMPS_MAIL , "ville" => INS_CHAMPS_VILLE, |
"dept" => INS_CHAMPS_DEPARTEMENT, "pays" => INS_CHAMPS_PAYS ) ; |
|
$queries = "SELECT ".INS_ANNUAIRE.".*" ; |
$mes_vars = array ("recherche", "nom", "ville", "mail" ,"dept", "prenom", "cotisant", "pays", "sort", "T_REPONSE", "lettre","statut") ; |
|
$queries = "select ".INS_ANNUAIRE.".*" ; |
$queries .= ", ".INS_TABLE_PAYS.'.'.INS_CHAMPS_LABEL_PAYS ; |
$queries .= " FROM ".INS_ANNUAIRE ; |
$queries .= " from ".INS_ANNUAIRE ; |
$queries .= ",".INS_TABLE_PAYS ; |
|
// Construction en fonction des champs saisies |
242,7 → 267,7 |
|
// juste le champs "rechercher", on regarde partout |
|
$where = ' WHERE ' ; |
$where = ' where ' ; |
if (isset ($_REQUEST['recherche']) && $_REQUEST['recherche'] != "") { |
$where .= '('.INS_CHAMPS_NOM.' like "%'.$_REQUEST['recherche'].'%"' ; // le premier |
foreach($fields_annu as $key=>$value) { |
263,9 → 288,9 |
if ($key != "") { |
if ($key == "pays") { |
if (!isset($_REQUEST[$key]) || $_REQUEST[$key] == "tous") { |
$where .= ' '.INS_CHAMPS_PAYS." like '%'"." and "; |
$where .= " and ".INS_CHAMPS_PAYS." like '%'"; |
} else { |
$where .= " $valeur like \"%".$_REQUEST[$key]."%\""." and " ; |
$where .= " and $valeur like \"%".$_REQUEST[$key]."%\"" ; |
} |
} else { |
if ($key == "dept") { |
276,16 → 301,16 |
|
} else { |
if (isset ($_REQUEST[$key]) && $or_flag) { |
$where .= "$valeur like \"%".$_REQUEST[$key]."%\" and " ; ; |
$where .= "$valeur like \"%".$_REQUEST[$key]."%\"" ; |
} else { |
$where .= "$valeur like \"%%\" and " ; ; |
} |
$where .= "$valeur like \"%%\"" ; |
} |
if ($key != "ville") $where .= " and " ; |
} |
} |
$or_flag = true ; |
} |
} |
$where = substr($where, 0, strlen($where)-5); |
// ici le cas ou rien n'a été saisie du tout, on affiche tout |
if (!$or_flag) { |
$where .= INS_CHAMPS_NOM." like '%')" ; |
294,7 → 319,7 |
|
if (isset($_REQUEST['lettre'])) { |
if ($_REQUEST['lettre'] == 'tous') $_REQUEST['lettre'] = ''; |
$where = ' WHERE '.INS_CHAMPS_NOM.' LIKE "'.$_REQUEST['lettre'].'%"' ; |
$where = ' where '.INS_CHAMPS_NOM.' like "'.$_REQUEST['lettre'].'%"' ; |
} |
$where .= " and ".INS_ANNUAIRE.".".INS_CHAMPS_PAYS."=".INS_TABLE_PAYS.".".INS_CHAMPS_ID_PAYS."" ; |
|
309,7 → 334,7 |
if (!isset ($_REQUEST['lettre'])) $_REQUEST['lettre'] = '' ; |
|
|
$queries .= $where.' AND '.INS_CHAMPS_ID.'!=0'; |
$queries .= $where ; |
|
if (isset($_REQUEST['sort']) && $_REQUEST['sort'] != "") $queries .= ' order by '.$_REQUEST['sort'] ; |
return $queries; |
326,15 → 351,7 |
|
if (isset($_REQUEST['ajouter_v'])) { |
if ($formulaire->validate()) { |
$id_utilisateur = insertion($formulaire->getSubmitValues()) ; |
|
// Appel des actions desinscriptions des applications clientes |
$d = dir(GEN_CHEMIN_CLIENT); |
while (false !== ($repertoire = $d->read())) { |
if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php')) |
include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.inscription.inc.php' ; |
} |
$d->close(); |
insertion($formulaire->getSubmitValues()) ; |
if (INS_CHAMPS_LETTRE != '' && isset ($valeurs['lettre'])) { |
inscription_lettre(INS_MAIL_INSCRIPTION_LISTE) ; |
} |
343,4 → 360,4 |
} |
return $formulaire->toHTML(); |
} |
?> |
?> |