Skip to main content

COP/SECOURS - Transformer un choix oui/non en multichoix

Nous rejoindre sur Discord

Sujet : L'objectif de ce plugin sera de vous permettre de changer une sélection oui/non par une valeur présente dans une liste prédéfinie (par exemple, pour les permis, changer oui/non par Voiture/Moto/Camion/etc....

Attention la mise en place de ce plugin est difficile et demande de l'attention. Si vous rencontrez un problème, n'hésitez pas à venir sur notre Discord et créez un ticket avec votre objectif et le problème que vous avez rencontré.

Étape 1 : Identifiez

La première étape consiste à identifier le champ que vous souhaitez modifier. Ensuite, une fois le champs identifié, il vous faudra appliquer les modifications adéquates.

Étape 2 : Modification de la base de données

Pour faire la modification dans la base de données, vous devez identifier la colonne contenant votre information (dans la majorité des cas, le type de la colonne sera ENUM). Une fois la colonne identifiée, exécutez la requête suivante pour faire la modification :

ALTER TABLE nom_table MODIFY nom_champ VARCHAR(128);

Exemple, pour modifier :

  • Le permis :
    • nom_table = personnes
    • nom_champ = permis
  • Le PPA
    • nom_table = personnes
    • nom_champ = ppa
  • Le sexe/genre
    • nom_table = personnes
    • nom_champ = sexe

Étape 3 : Modifier les champs de saisies

Une fois la base de données modifiée, il faut maintenant actualiser les champs de saisie des informations. Voici comment retrouver le fichier à modifier dans une page :

Récupérer l'URL : dans votre navigateur l'URL est présente dans la barre de recherche

Retouvez le code associé : tous les liens sont présents dans le répertoire routes, il vous suffit ensuite de retrouver votre URL

Flight::route('/ajouter/civil', function() {
  verif_connecter();
  Flight::view()->display('add/add_civil.twig');
});

Afficher la page : avec le code, l'élément Flight::view()->display('add/add_civil.twig'); permet de définir quelle page est associé à l'URL. Les pages sont présentes dans page pour l'intranet cop ou views pour l'intranet secours.

Trouver la liste : Pour trouver votre liste, vous devez rechercher l'élément suivant sur la pge : <select

<div>
  <label for="licence">Permis :</label>

  <select name="civil_licence" id="licence">
    <option value="0">Non</option>
    <option value="1">Oui</option>
  </select>
</div>

Modifiez les valeurs : La dernière étape consiste à remplacer les valeurs présentes dans la liste par celle que vous souhaitez. Pour cela, il suffit de modifier les option dans le select

<div>
  <label for="licence">Permis :</label>

  <select name="civil_licence" id="licence">
    <option value="Voiture">Voiture</option>
    <option value="Poids Lourd">Poids Lourd</option>
    <option value="Moto">Moto</option>
    <option value="Voiture/Moto">Voiture/Moto</option>
    <option value="Nouvelle valeur">Nouvelle valeur</option>
  </select>
</div>

Attention à ce que la valeur présente dans value soit identique à celle qui sera affichée !

Étape 4 : Modifier l'affichage

Lorsque vous aurez modifié tous les champs de saisie, il vous faudra alors modifier l'affichage de ces valeurs. Pour trouver la page à modifier, utilisez la même méthode que dans l'étape 3. Cependant, il est possible que l'information soit absente sur la page, mais sur une page importée (reconnaissable avec la présence de : {% include .... %}). Dans ce cas-là, il faudra vous rendre sur la page en question afin d'effectuer le changement.

Dans le cas de la modification du permis de conduire, la valeur se trouve dans /templates/fiche_civil.twig. Une fois sur la page, vous devez rechercher l'endroit où la valeur est affichée. Dans la majorité des cas, vous aurez quelque chose sous la forme suivante : <p><strong>Nom affichage :</strong>{% if civil.xxx == 1 %}Oui{% else %}Non{% endif %}</p>

Il suffit de le remplacer par :

<p><strong>Nom affichage :</strong>{{ civil.xxx }}</p>

Note : Nous sommes bien conscients que la mise en place d'un tel plugin peut être difficile avec une description de la sorte. Malheureusement, avec tous les champs éligibles à cette modification, il aurait été trop long d'écrire les modifications à faire pour chaque valeur. Si vous rencontrez un souci dans vos modifications, n'hésitez surtout pas à venir demander de l'aide !