Outils pour utilisateurs

Outils du site


agora_project

Différences

Ci-dessous, les différences entre deux révisions de la page.


agora_project [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +Les adhérents sont entrés en tant que contact (module contact) dans un dossier particulier. Ici, nous avons créé un dossier "Adhérents" qui a l'identifiant 4.
 +
 +
 +===== ajout de la date d'adhésion =====
 +
 +Un champ date est ajouté à la fiche du contact :
 +
 +=== modification de la base de donnée ===
 +
 +Soit un champ est ajouté à la base manuellement (ou par une interface type PhpMyAdmin), soit il est possible d'utiliser un fichier ''includes/mise_a_jour.inc.php''. C'est cette dernière solution qui a été choisie.
 +
 +Ajout à la ligne 31, après ''AJOUT DU CHAMP "COMPETENCES" ET "HOBBIES" DANS LA TABLE "gt_utilisateur" & "gt_contact"'' :
 +
 +  // AJOUT DU CHAMP "ADHESION" DANS LA TABLE "gt_contact"
 +       db_test_champ_exist("gt_contact", "adhesion", "ALTER TABLE gt_contact ADD adhesion DATE AFTER siteweb");
 +
 +=== Modification de la fiche contact ===
 +
 +Dans le fichier ''module_contact/contact.php'', ajout l.54 :
 +
 +  if($contact_tmp["adhesion"]!="")
 +    echo "<tr><td class=\"lib_user\"><img src=\"".path_templates."module_utilisateurs/user_fonction.png\" /> ".$trad["divers"]["adhesion"]." </td><td>".strftime("%e %b %Y",strtotime($contact_tmp["adhesion"]))."</td></tr>";
 +
 +=== Modification de l'édition du contact ===
 +
 +Dans le fichier ''module_contact/contact_edit.php'', insertion l.21 de 
 +
 +  adhesion=".db_insert($_POST["adhesion"]).",'' :
 +  $corps_sql = " civilite=".db_insert($_POST["civilite"]).",
 +  nom=".db_insert($_POST["nom"]).",
 +  prenom=".db_insert($_POST["prenom"]).",
 +  adresse=".db_insert($_POST["adresse"]).",
 +  codepostal=".db_insert($_POST["codepostal"]).",
 +  ville=".db_insert($_POST["ville"]).",
 +  pays=".db_insert($_POST["pays"]).",
 +  telephone=".db_insert($_POST["telephone"]).",
 +  telmobile=".db_insert($_POST["telmobile"]).",
 +  fax=".db_insert($_POST["fax"]).",
 +  mail=".db_insert($_POST["mail"]).",
 +  siteweb=".db_insert($_POST["siteweb"]).",
 +  adhesion=".db_insert($_POST["adhesion"]).",
 +  competences=".db_insert($_POST["competences"]).",
 +  hobbies=".db_insert($_POST["hobbies"]).",
 +  fonction=".db_insert($_POST["fonction"]).",
 +  societe_organisme=".db_insert($_POST["societe_organisme"]).",
 +  commentaire=".db_insert($_POST["commentaire"]).", raccourci=".db_insert(@$_POST["raccourci"],"bool")." ";
 +
 +Ajout l.101 :
 +  aff_champ(@$contact_tmp, "adhesion");
 +
 +=== Affichage de la date d'adhésion ===
 +
 +On choisit de faire afficher la date d'adhésion sur l'affichage par liste et par bloc. De plus, les adhérents non à jour de cotisation sont indiqués en rouge, et ceux dont l'adhésion expire dans les 10 jours sont en orange.
 +
 +Dans le fichier ''module_contact/index.php'', insertion l.24 de '', adhesion=".db_insert($contact_tmp["adhesion"])."'' :
 +
 +  db_query("UPDATE  gt_utilisateur  SET  civilite=".db_insert($contact_tmp["civilite"]).",
 +  photo=".db_insert($photo_tmp).",
 +  societe_organisme=".db_insert($contact_tmp["societe_organisme"]).",
 +  fonction=".db_insert($contact_tmp["fonction"]).",
 +  adresse=".db_insert($contact_tmp["adresse"]).",
 +  codepostal=".db_insert($contact_tmp["codepostal"]).",
 +  ville=".db_insert($contact_tmp["ville"]).",
 +  pays=".db_insert($contact_tmp["pays"]).",
 +  telephone=".db_insert($contact_tmp["telephone"]).",
 +  telmobile=".db_insert($contact_tmp["telmobile"]).",
 +  fax=".db_insert($contact_tmp["fax"]).",
 +  siteweb=".db_insert($contact_tmp["siteweb"]).",
 +  adhesion=".db_insert($contact_tmp["adhesion"]).",
 +  competences=".db_insert($contact_tmp["competences"]).",
 +  hobbies=".db_insert($contact_tmp["hobbies"]).",
 +  commentaire=".db_insert($contact_tmp["commentaire"])."  WHERE  id_utilisateur=".db_insert($id_user_tmp));
 +
 +Ajout l.93 :
 +  /// CONTACT A JOUR DE COTISATION ?
 +  if ($contact_tmp["adhesion"] < date("Y-m-j", mktime(0,0,0,date("m"),date("d"),date("Y")-1))) {
 +     $style = "color:red;";
 +  } elseif ($contact_tmp["adhesion"] < date("Y-m-j", mktime(0,0,0,date("m"),date("d")+10,date("Y")-1))) {
 +     $style = "color:orange;";
 +  } else {
 +    $style = "";
 +  }
 +
 +Ajout l.113 :
 +  if($contact_tmp["adhesion"]!="")
 +     echo strftime("%e %b %Y",strtotime($contact_tmp["adhesion"]))."<br />";
 +
 +Ajout l.138 :
 +  if($contact_tmp["adhesion"]!="")
 +    echo strftime("%e %b %Y",strtotime($contact_tmp["adhesion"]))."<img src=\"".path_templates."divers/separateur.gif\" />";
 +
 +=== Ajout d'un critère de tri ===
 +
 +Pour trier les contacts par date d'adhésion, modification du fichier ''module_contact/commun.inc.php''.
 +
 +Insertion l.7 de '',"adhesion@@asc","adhesion@@desc"'' :
 +  $config["tri_contact"] =
 +   modif_tri_defaut_personnes(array(
 +  "nom@@asc","nom@@desc", "prenom@@asc","prenom@@desc", "civilite@@asc","civilite@@desc",
 +  "date@@desc","date@@asc","codepostal@@asc","codepostal@@desc","ville@@asc","ville@@desc","pays@@asc","pays@@desc",
 +  "fonction@@asc","fonction@@desc","societe_organisme@@asc","societe_organisme@@desc","id_utilisateur@@asc","id_utilisateur@@desc","adhesion@@asc","adhesion@@desc"));
 +
 +=== fonction d'affichage d'un calendrier ===
 +
 +Pour être certain que la date soit au bon format, un calendrier s'affiche quand on clique sur l'édition du champ adhésion.
 +Dans le fichier ''fonctions/utilisateur.inc.php'', insertion l.255, après : 
 +  if ($cle_champ=="pass" or $cle_champ=="pass2") {
 +    $type_input = "password";
 +    $autocomplete = "Autocomplete=\"off\"";
 +  }
 +
 +De : 
 +  elseif ($cle_champ =="adhesion") {
 +    $type_input = "text";
 +    $value = @$user_tmp[$cle_champ];
 +    $debut_unix = (@$user_tmp["adhesion"]!="" ?  strtotime($user_tmp["adhesion"])  :  time();
 +    $calend = " <iframe id=\"calendrier_date_adhesion\" class=\"menu_flottant calendrier_flottant\"
 +               src=\"".path_includes."calendrier.inc.php?date_affiche=".$debut_unix."&date_selection=".$debut_unix."&champ_modif=adhesion\"
 +               frameborder=\"0\" scrolling=\"auto\"></iframe>";
 +     $calendrier = "cursor:pointer;\" onClick=\"afficher('calendrier_date_adhesion','bascule');\" readonly ";
 +  }
 +
 +=== Affichage du nombre d'adhérents à jour de cotisation ===
 +
 +Modification de la fonction qui affiche le nombre d'éléments d'un dossier pour compter le nombre d'adhérents à jour, seulement pour le dossier dont l'identifiant est 4.
 +
 +Dans ''fonctions/objet.inc.php'', Ajout l.467, après :
 +  $nb_elems_tmp    = db_valeur("SELECT count(*) FROM ".$objet_enfant["table_objet"]." WHERE id_dossier=".$id_objet." ".sql_affichage($objet_enfant,$id_objet));
 +
 +De :
 +  if ($id_objet==4) {
 +      $nb_adh_ajour = db_valeur("SELECT count(*) FROM ".$objet_enfant["table_objet"]."
 +      WHERE id_dossier=".$id_objet."
 +      AND TO_DAYS(NOW()) - TO_DAYS(adhesion) < 365 ".sql_affichage($objet_enfant,$id_objet));
 +  }
 +
 +Remplacer l.470 :
 +   $contenu_dossier = $nb_elems_tmp." ".(($nb_elems_tmp>1)?$trad["divers"]["elements"]:$trad["divers"]["element"]);
 +Par :
 +  if ($id_objet==4) {
 +    $contenu_dossier = $nb_elems_tmp." ".(($nb_elems_tmp>1)?$trad["divers"]["elements"]:$trad["divers"]["element"])."<br>".$nb_adh_ajour." adh&eacute;rent-es &agrave; jour de cotisation" ;
 +  } else {
 +    $contenu_dossier = $nb_elems_tmp." ".(($nb_elems_tmp>1)?$trad["divers"]["elements"]:$trad["divers"]["element"]);
 +  }
 +
 +
 +===== ajout de l'option bénévole =====
 +
 +Un nouveau champ booléan ''benevole'' est créé dans la table ''gt_contact''. Si le type BOOL n'est pas pris en compte (comme c'était le cas pour ma base de donnée mysql), il faut créer un champ TINYINT de longueur 1 (0 pour FAUX, 1 pour VRAI).
 +
 +=== Modification de la fiche contact ===
 +
 +Dans ''module_contact/contact.php'', ajout l.56 :
 +  if($contact_tmp["benevole"]==0) {
 +      echo "<tr><td class=\"lib_user\"><img src=\"".path_templates."module_utilisateurs/user_fonction.png\" /> ".$trad["divers"]["benevole"]." </td><td>Non</td></tr>";
 +  } else {
 +      echo "<tr><td class=\"lib_user\"><img src=\"".path_templates."module_utilisateurs/user_fonction.png\" /> ".$trad["divers"]["benevole"]." </td><td>Oui</td></tr>";
 +  }
 +
 +=== Modification de l'édition de la fiche contact ===
 +
 +Dans ''module_contact/contact_edit.php'', ajout l.20 :
 +  if ($_POST["benevole"]) {$valeur_benevole = "1";} else {$valeur_benevole = "0";}
 +
 +Insertion de '', benevole=".db_insert($valeur_benevole)."'' l.21 : 
 +  $corps_sql = " civilite=".db_insert($_POST["civilite"]).", nom=".db_insert($_POST["nom"]).", prenom=".db_insert($_POST["prenom"]).",
 +  adresse=".db_insert($_POST["adresse"]).", codepostal=".db_insert($_POST["codepostal"]).", ville=".db_insert($_POST["ville"]).", pays=".db_insert($_POST["pays"]).",
 +  telephone=".db_insert($_POST["telephone"]).", telmobile=".db_insert($_POST["telmobile"]).", fax=".db_insert($_POST["fax"]).", mail=".db_insert($_POST["mail"]).", siteweb=".db_insert($_POST["siteweb"]).",
 +  adhesion=".db_insert($_POST["adhesion"]).", benevole=".db_insert($valeur_benevole).", competences=".db_insert($_POST["competences"]).", hobbies=".db_insert($_POST["hobbies"]).",
 +  fonction=".db_insert($_POST["fonction"]).", societe_organisme=".db_insert($_POST["societe_organisme"]).", commentaire=".db_insert($_POST["commentaire"]).", raccourci=".db_insert(@$_POST["raccourci"],"bool")." ";
 +
 +Ajout l.102 :
 +  aff_champ(@$contact_tmp, "benevole");
 +
 +Modification de la fonction ''aff_champ'' dans ''fonctions/utilisateur.inc.php''.
 +Remplacer l.268 :
 +  echo "<td class=\"".$style_txt."\" style=\"width:40%;\">".$trad["divers"][$cle_champ]."</td>";
 +  echo "<td>".$calend."<input type=\"".$type_input."\" name=\"".$cle_champ."\" value=\"".$value."\" ".$autocomplete." style=\"width:100%; \" ".$calendrier." /></td>";
 +
 +par :
 +  if ($cle_champ =="benevole") {
 +                echo "<td class=\"".$style_txt."\" style=\"width:40%;\">".$trad["divers"][$cle_champ]."</td>";
 +                if ($value == "1") {
 +                        echo "<td><input type=\"checkbox\" name=\"benevole[]\" value=\"".$value." \"style=\"width:100%;\" checked=\"checked\" ; /></td>";
 +                } else {
 +                        echo "<td><input type=\"checkbox\" name=\"benevole[]\" value=\"".$value." \"style=\"width:100%;\" /></td>";
 +                }
 +        } else {
 +                echo "<td class=\"".$style_txt."\" style=\"width:40%;\">".$trad["divers"][$cle_champ]."</td>";
 +                echo "<td>".$calend."<input type=\"".$type_input."\" name=\"".$cle_champ."\" value=\"".$value."\" ".$autocomplete." style=\"width:100%; \" ".$calendrier." /></td>";
 +  }
 +
 +=== Ajout d'un critère de tri ===
 +Les bénévoles sont en premier sur la liste. Dans le fichier ''module_contact/commun.inc.php''
 +
 +Insertion l.7 de '',"benevole@@desc"'' :
 +
 +  $config["tri_contact"] =
 +  modif_tri_defaut_personnes(array(
 +  "nom@@asc","nom@@desc", "prenom@@asc","prenom@@desc", "civilite@@asc","civilite@@desc",
 +  "date@@desc","date@@asc","codepostal@@asc","codepostal@@desc","ville@@asc","ville@@desc","pays@@asc","pays@@desc",
 +  "fonction@@asc","fonction@@desc","societe_organisme@@asc","societe_organisme@@desc","id_utilisateur@@asc","id_utilisateur@@desc",
 +  "benevole@@desc","adhesion@@asc","adhesion@@desc"));
 +
 +===== Envoi de mail =====
 +
 +Pour l'envoi de mail, la sélection des adhérents à jour de cotisation se fait sur la base de la couleur du nom (rouge si l'adhérent est à jour, orange si l'adhésion est bientôt expirée). L'affichage doit donc être modifié dans le fichier ''module_mail/index.php''.
 +
 +Ajout l.185 :
 +  if ($contact_tmp["adhesion"] < date("Y-m-j", mktime(0,0,0,date("m"),date("d"),date("Y")-1))) {
 +    $style = "\"color:red;\"";
 +  } elseif ($contact_tmp["adhesion"] < date("Y-m-j", mktime(0,0,0,date("m"),date("d")+10,date("Y")-1))) {
 +    $style = "\"color:orange;\"";
 +  } else {
 +    $style = "\"\"";
 +  }
 +
 +==== aux adhérents à jour de cotisation ====
 +
 +Ajout de la fonction de sélection des adhésions à jour après la fonction ''function select_ensemble_users'' :
 +  //    SELECTIONNER TOUS LES CONTACTS A JOUR DE COTISATION
 +  function select_users_a_jour(id_espace_dossier)
 +  {
 +        for(var i=0; i < tab_ensembles_users[id_espace_dossier].length; i++)
 +        {
 +                id_tmp = tab_ensembles_users[id_espace_dossier][i];
 +                if(element("txt_"+id_tmp).getAttribute("style") != "color:red;") {
 +                        if(element("box_"+id_tmp).checked==false)       { element("box_"+id_tmp).checked = true;        element("txt_"+id_tmp).className = "lien_select"; }
 +                        else                                            { element("box_"+id_tmp).checked = false;       element("txt_"+id_tmp).className = "lien"; }
 +                }
 +        }
 +  }
 +
 +Ajout de l'icone permettant cette sélection, l.175 après : 
 + echo "<img src=\"".path_templates."divers/inverser_selection.png\"
 +  class=\"lien\" onclick=\"select_ensemble_users('".$id_dossier_tmp."');afficher_dynamic('".$id_dossier_tmp."',null,true);\" ".infobulle($trad["divers"]["inverser_selection"])." />";
 +
 +De :
 +  if ($id_dossier_tmp == "D4") {
 +    echo "<img src=\"".path_templates."divers/selection_ajour.png\"
 +   class=\"lien\" onclick=\"select_users_a_jour('".$id_dossier_tmp."');afficher_dynamic('".$id_dossier_tmp."',null,true);\" ".infobulle("adhésino |  jour")." />";
 +
 +==== dont l'adhésion expire dans les 10 jours ====
 +
 +Ajout de la fonction de sélection des adhésions dont l'expiration arrive à terme après la fonction ''function select_users_a_jour'' :
 +  //    SELECTIONNER TOUS LES CONTACTS NON A JOUR DE COTISATION DANS 10 JOURS
 +  function select_users_bientot_non_a_jour(id_espace_dossier)
 +  {
 +        for(var i=0; i < tab_ensembles_users[id_espace_dossier].length; i++)
 +        {
 +                id_tmp = tab_ensembles_users[id_espace_dossier][i];
 +                if(element("txt_"+id_tmp).getAttribute("style") == "color:orange;") {
 +                        if(element("box_"+id_tmp).checked==false)       { element("box_"+id_tmp).checked = true;        element("txt_"+id_tmp).className = "lien_select"; }
 +                        else                                            { element("box_"+id_tmp).checked = false;       element("txt_"+id_tmp).className = "lien"; }
 +                }
 +        }
 +  }
 +
 +
 +Ajout de l'icone permettant cette sélection, l.174 après : 
 +  if ($id_dossier_tmp == "D4") {
 +
 +De :
 +  echo "<img src=\"".path_templates."divers/selection_bientot_nonajour.png\"
 +   class=\"lien\" onclick=\"select_users_bientot_non_a_jour('".$id_dossier_tmp."');afficher_dynamic('".$id_dossier_tmp."',null,true);\" ".infobulle("expiration de l'adhésion dans 10 jours")." />";
 +
 +==== aux bénévoles ====
 +
 +De même, on ajoute une icone après les adhérents bénévoles.
 +
 +Ajout de la fonction de sélection des bénévoles l.60 :
 +  //    SELECTIONNER TOUS LES CONTACTS BENEVOLES
 +  function select_users_benevoles(id_espace_dossier)
 +  {
 +        for(var i=0; i < tab_ensembles_users[id_espace_dossier].length; i++){
 +                id_tmp = tab_ensembles_users[id_espace_dossier][i];
 +                if(element("txt_"+id_tmp).firstChild.nextSibling) {
 +                        if(element("txt_"+id_tmp).firstChild.nextSibling.nodeName == "IMG") {
 +                                if(element("box_"+id_tmp).checked==false){
 +                                        element("box_"+id_tmp).checked = true;
 +                                        element("txt_"+id_tmp).className = "lien_select";
 +                                } else {
 +                                        element("box_"+id_tmp).checked = false;
 +                                        element("txt_"+id_tmp).className = "lien"; 
 +                                }
 +                        }
 +                }
 +        }
 +  }
 +
 +
 +Dans le fichier ''module_mail/index.php'', ajout l.176 :
 +  echo "<img src=\"".path_templates."divers/benevolat-icon.png\"
 +  class=\"lien\" onclick=\"select_users_benevoles('".$id_dossier_tmp."');afficher_dynamic('".$id_dossier_tmp."',null,true);\" ".infobulle("bénévoles")." />";
 +
 +Ajout l.186 :
 +  if ($contact_tmp["benevole"] == 1) {$benev = "<img src=\"".path_templates."divers/benevolat-icon.png\"/>";} else {$benev = "";}
 +
 +Ajout l.189 :
 +  echo "<span class=\"lien\" id=\"txt_".$id_contact_tmp."\" onClick=\"check_txt_box(this.id,'".$id_contact_tmp."');\"
 +  style=".$style.">".$contact_tmp["prenom"]." ".$contact_tmp["nom"]." ".$benev." "."</span>";