[PLUGIN]Adhésion (pour gérer les membres d'une association)

Jerry WhamJerry Wham Member
octobre 2013 modifié dans Plugins
Bonjour,

Voici un nouveau plugin qui permet de gérer des membres. Initialement prévu pour une association, il peut être facilement adaptable pour gérer des utilisateurs d'un site (j'y travaille).


Le principe de fonctionnement est de protéger des catégories, des pages statiques ou des articles en particulier à l'aide d'un mot de passe (un peu comme les plugins lockArticles et myPrivateStatic que j'ai utilisés comme base). C'est l'administrateur qui décide quelles parties du site doivent être protégées en cochant une case dans la page d'édition d'une catégorie, d'une page statique ou d'un article.


Par contre, le mot de passe est généré automatique lors de l'inscription d'un membre, une fois que cette inscription est validée par un administrateur ou un gestionnaire. Chaque membre a son propre mot de passe qui permet de débloquer l'affichage de toutes les pages protégées.


L'inscription au site dure au plus un an, soit en se basant sur l'année civile (la validation se terminera au 31 décembre donc moins d'un an si le membre adhère en cours d'année), soit en se basant sur l'année entière (la validation se terminera après un an plein). Ce paramètre est choisi dans la page de configuration du plugin.


La gestion des membres se fait dans la partie administration dans un onglet dédié. Un filtre permet de rechercher un membre en particulier. Tous les champs sont éditables.


Le formulaire d'identification est généré par le hook loginLogout :
<?php eval($plxShow->callHook('loginLogout')); ?>

Idéalement, il se place dans la sidebar.


Le plugin peut fonctionner avec le plugin gutuma pour l'envoi de newsletters aux membres qui le désirent, et avec le plugin openstreetmap pour la localisation des membres sur une carte.


Une feuille de style (dans le dossier du plugin) permet d'adapter les éléments (formulaires, messages...) au thème que vous utiliserez.


Enjoy :p

TELECHARGEMENT : adhesion.

HISTORIQUE :

07/03/2013 : V 1.2 : première version partagée

02/10/2013 : V 1.3 mise à jour majeure pour une utilisation avec pluxml 5.2
Scission du fichier des adhérents en plusieurs fichiers séparés.
Indépendance de gutuma.

02/10/2013 : V1.4 Correction de bugs de connexion. Toutes mes confuses...

07/10/2013 : V1.5 Correction et prise en charge de la protection des articles en mode archives et tags
«1345

Réponses

  • Ça m'a l'air intéressant. Est-ce que l'admin peut choisir le mot de passe, ou est-ce que l'utilisateur peut modifier le sien ?
  • Jerry WhamJerry Wham Member
    novembre 2012 modifié
    Non, ni l'un ni l'autre. Le mot de passe est généré aléatoirement. Tu peux voir comment en lisant la méthode defPassword ligne 1206 du fichier adhesion.php


    Chaque utilisateur a son propre mot de passe.


    Bon après, c'est perfectible et ce n'est pas non plus fait pour protéger des données comme celles de la NASA, mais je pense que ça doit être chiant à craquer quand même !
  • Merci Jerry pour ces précisions.


    Ligne 1206... c'est-à-dire, en regardant ton fichier, pas encore à la moitié !
    Avec en plus l'intégration de Gutuma, ça fait un plugin bien complet... et du boulot là-dedans !
  • Tres intéressant... ;)
  • You're welcome.
  • Je n'ai pas encore regardé, mais il est vrai que c'est un aspect qui est de plus en plus important de nos jours. Dés que j'aurai du temps, je testerai la bête ;)
  • tres tres bonne idée Mr !!mais y a qqc choses qui manques !!

    pour l'info y a un double button "devenir adherant"
  • @brar2010 : c'est un oubli de ma part, merci pour la remarque. Je vais corriger ça.


    En attendant, au niveau de la page de configuration, il faut paramétrer le plugin pour qu'il ne l'affiche pas (Afficher le menu de la page d'adhésion : mettre à non)
  • Dès que j'ai du temps j'essaie!
  • Bonjour tous, :)

    Je découvre le plugin Adhésion et bien sûr, je teste. Sympa ce truc. ;)

    Mon soucis du moment est que la page de configuration me demande l'Emplacement du fichier des adhérents (fichier xml).
    Bien sûr, je ne sais pas ce qu'est ce fichier ni surtout comment on le fabrique.

    Pouvez-vous m'éclairer ?
  • Bon, finalement, j'ai fais une nouvelle install sur la nouvelle version de pluxml 5.1.7 et trouvé dans les paramétrages du plug "Adhésion" le chemin en question : data/configuration/


    En fait, lors de la première install, le champs "Emplacement du fichier des adherents (fichier xml) :" n'était pas renseigné comme il l'aurait du.


    Du coup, ça va...Pour le moment. ;)
  • Bonsoir,

    je vais l'installer et le tester sur le site que je suis en train de créer pour mon association.
    En fait j'ai besoin de deux espaces privés: l'un pour les élus et l'un pour les formateurs ( documents à télécharger, echanges via un blog privé ou forum, envoi de newsletter).
    Comment je peux gérer deux espaces privés?
    Quelle démarche me conseilles-tu?

    Cordialement
  • Après l'avoir installé, je me retrouve avec trois boutons devenir adhérent.
    Lorsqu'un adhérent est enregistré, comment fait-il pour accéder à son espace?

    Cordialement
  • 3 boutons? Pour en supprimer un, voir la remarque de brar2010 et ma réponse juste en dessous.


    Pour que l'adhérent accède à l'espace public, il faut faire un appel de hook dans le thème à l'endroit où tu veux que le formulaire s'affiche.
    <?php eval($plxShow->callHook('loginLogout')); ?>
    

    Relis mon premier post.


    Le plugin n'est pas fait pour gérer deux espaces différents.


    Attention également à la version de pluxml utilisée. Actuellement, seule la 5.1.6 est supportée vu que le plugin utilise gutuma qui ne fonctionne toujours pas avec la 5.1.7 (ça vient, j'y travaille).
  • Très intéressant. Je vais essayer de m'y pencher pendant mes congés qui arrivent enfin...
  • Attention. Je viens de m'apercevoir que pluxml fait sauter les droits en écriture d'un fichier et que les demandes d'adhésion ne sont pas enregistrées systématiquement.

    Pour résoudre le problème, après la ligne 1606 du fichier adhesion.php, ajoutez :
    chmod(PLX_ROOT.$this->getParam('adherents').'plugin.adhesion.adherents.xml',0777);
    
  • StéphaneStéphane Member, Former PluXml Project Manager
    tout bon serveur bien paramétré devrait gérer des droits 0644 sur des fichiers pour du web. si tu es obligé de mettre 0777 c'est accorder trop de droits et c'est du aux restrictions de ton hébergeur (qui sur le coup à moins de restrictions en donnant des droits 0777 au lieu de 0644)

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    ps: si tu utilises la fonction plxUtils::write, il y a dans cette fonction un chmod(0644) sur le fichier qui vient d'etre écrit

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • chrisschriss Member
    mars 2013 modifié
    bonjour,

    j'ai 2 questions à poser sur ce plugin (adhesion)
    1 - pour le code postal n'est il pas possible de mettre au moins [del]6 chiffres[/del] ou lettres ( eh oui au canada le CP est de ce type là: J5C 1J4.

    - J'ai trouvé pour 6 chiffres :) , mais pas pour les lettres :(

    2 - Pour le tel. ne pourrait-il pas rester dans la Page d'administration des adhérents comme l'a écrit l'adhérent, Je m'explique, ici les # de tel. sont sous cette forme: 458 111 2233 et je le trouve donc dans la page d'administration sous la forme française 45 81 11 22 33. Pour moi ce n'est pas gênant mais pour l'asso pour qui je travaille, si.
  • Jerry WhamJerry Wham Member
    mars 2013 modifié
    chriss a écrit:
    bonjour,

    j'ai 1 question à posé sur ce plugin (adhesion)
    Pour le code postal n'est il pas possible de mettre au moins 6 chiffres ou lettres ( eh oui au canada le CP est de ce type là: J5C 1J4.
    Ligne 77 du fichier form.adhesion.html, à la place de
    $cp=intval($_POST['cp_'.$id]);
    
    mets
    $cp=trim(plxUtils::strCheck($_POST['cp_'.$id]));
    

    Tu pourras entrer du texte. Par contre, ça ne validera pas le format. Il faudrait faire une regex spécifique pour le code postal du canada, du style vite fait
    preg_match('/([a-bA-Z]{1}[0-9]{1}[a-bA-Z]{1}\s[0-9]{1}[a-bA-Z]{1}[0-9]{1})/i,trim(plxUtils::strCheck($_POST['cp_'.$id])));
    

    Et faire ensuite les tests qui vont bien...


    Pour le téléphone, il faut modifier les lignes 668 et 673, 1273 et 1285, 1513 et 1819 pour ne pas utiliser la méthode de formatage, ainsi que les lignes 47 et 79 du fichier form.adhesion.html pour ne pas supprimer les espaces.

    Inspire toi de la méthode ligne 1005 pour l'adapter au format que tu souhaites utiliser.
  • chrisschriss Member
    mars 2013 modifié
    bonjour,
    Jerry Wham a écrit:

    Tu pourras entrer du texte. Par contre, ça ne validera pas le format. Il faudrait faire une regex spécifique pour le code postal du canada, du style vite fait
    preg_match('/([a-bA-Z]{1}[0-9]{1}[a-bA-Z]{1}\s[0-9]{1}[a-bA-Z]{1}[0-9]{1})/i,trim(plxUtils::strCheck($_POST['cp_'.$id])));
    
    Merci beaucoup!....juste pour le code précédent je le mets où?
    Pour le téléphone, il faut modifier les lignes 668 et 673, 1273 et 1285, 1513 et 1819 pour ne pas utiliser la méthode de formatage, ainsi que les lignes 47 et 79 du fichier form.adhesion.html pour ne pas supprimer les espaces.

    Inspire toi de la méthode ligne 1005 pour l'adapter au format que tu souhaites utiliser.
    si j'ai bien compris, j,ai modifier dans ces lignes "formatFrenchPhoneNumber" par "formatCanadianPhoneNumber" cela n,a pas fonctionné je l'ai donc remplacé par "formatCanadaPhoneNumber" toujours la même erreur
    "Fatal error: Call to undefined method adhesion::formatCanadaPhoneNumber() in /home/u138357601/public_html/tests/pluxml/plugins/adhesion/adhesion.php on line 1273"
  • chriss a écrit:
    bonjour,
    Jerry Wham a écrit:

    Tu pourras entrer du texte. Par contre, ça ne validera pas le format. Il faudrait faire une regex spécifique pour le code postal du canada, du style vite fait
    preg_match('/([a-bA-Z]{1}[0-9]{1}[a-bA-Z]{1}\s[0-9]{1}[a-bA-Z]{1}[0-9]{1})/i,trim(plxUtils::strCheck($_POST['cp_'.$id])));
    
    Merci beaucoup!....juste pour le code précédent je le mets où?
    Pour le téléphone, il faut modifier les lignes 668 et 673, 1273 et 1285, 1513 et 1819 pour ne pas utiliser la méthode de formatage, ainsi que les lignes 47 et 79 du fichier form.adhesion.html pour ne pas supprimer les espaces.

    Inspire toi de la méthode ligne 1005 pour l'adapter au format que tu souhaites utiliser.
    si j'ai bien compris, j,ai modifier dans ces lignes "formatFrenchPhoneNumber" par "formatCanadianPhoneNumber" cela n,a pas fonctionné je l'ai donc remplacé par "formatCanadaPhoneNumber" toujours la même erreur
    "Fatal error: Call to undefined method adhesion::formatCanadaPhoneNumber() in /home/u138357601/public_html/tests/pluxml/plugins/adhesion/adhesion.php on line 1273"

    Désolé, je pensais que tu codais un petit peu. Laisse-moi jusqu'à dimanche, je ferai les modif.

    L'erreur que tu as est que tu n'as pas défini la fonction formatCanadaPhoneNumber. Je te ferai les modif également.
  • chrisschriss Member
    mars 2013 modifié
    Jerry Wham a écrit:

    Désolé, je pensais que tu codais un petit peu. Laisse-moi jusqu'à dimanche, je ferai les modif.

    L'erreur que tu as est que tu n'as pas défini la fonction formatCanadaPhoneNumber. Je te ferai les modif également.

    non c,est moi qui suis désolé... Pas de problème pour l'attente! je vais cela bénévolement pour un ami. :cool:

    je code en html5 et le css3 mais pas là. Mais cela va me permettre de mieux comprendre.

    merci quand même.
  • chrisschriss Member
    Salut Jerry,

    Bon ne te fatigues pas, j'ai présenté mon projet pour les MdP et les personnes trouvent cela bien compliqué... Il faut dire qu'il y a beaucoup de personnes agées, et ils veulent cela plus simple...
    Merci, quand même! :(
  • C'est quoi des MdP ? Mots de passe ? On peut les simplifier...
  • chrisschriss Member
    Jerry Wham a écrit:
    C'est quoi des MdP ? Mots de passe ? On peut les simplifier...

    oui, excuse... !!
    Je me doute... Mais je ne sais pas si je vais faire ce site.... cela devient compliqué, pas pour le codage, mais en relation humaine, je fait cela pour l'asso de la femme d'un ami.... et ils ne savent pas si je pourrais accéder au serveur. Donc je suis dans l'attente !! (grrr dire que j,ai passé 4 jours presque à plein temps)
  • k610ik610i Member
    Bonjour Jerry,

    As-tu replongé (*plouf*) sur ce sujet pour que ce soit compatible avec pluxml 5.1.7 ? :)
    Merci !!
  • Salut k610i,

    Non, je ne m'y suis pas replongé. Et j'ai également un petit bug avec gutuma que je n'ai pas eu le temps de résoudre. Dès que je peux, je te tiens informée. ;)
  • Mise à jour du plugin et dépôt des sources sur github (@jerrywham-pluxml5-2). Voir la description en premier post.
  • Merci Jerry, mais dans le fichier infos.xml, le numéro de version et la date ne sont pas bons (pour le n° de version, j'avais déjà 1.2 pour la mouture précédente).
    Et si tu pouvais mettre les numéros de version dans l'historique du plugin, sur le premier post, ça permettrait aussi de mieux se repérer.
Connectez-vous ou Inscrivez-vous pour répondre.