Un même lien de menu pour accéder à un article différent en fonction de l'accés

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Un même lien de menu pour accéder à un article différent en fonction de l'accés

    Bonjour,
    Pour une association qui prête du matériel apicole à ses adhérents, je ne trouve pas la solution :
    J'ai un menu "Adhésion" et je voudrais afficher un article différent en fonction du niveau d'accès de l'internaute :
    - Pour un accès "public" (sans compte) j'affiche donc un article dédié l'invitant à ouvrir un compte,
    - Pour un accès "enregistré" (qui a ouvert un compte et a donc le niveau "enregistré") je voudrais afficher un article spécifique l'invitant à adhérer à l'association,
    - Pour un accès "adhérent" (qui a donc le niveau "enregistré" et le niveau "adhérent" ) je voudrais afficher un article spécifique lui indiquant ses droits d'adhérent.
    Et bien, je patauge avec les catégories et sous catégories, sans jamais arriver à un seul article avec le bon niveau d'accès.
    Alors si vous avez une idée je vous remercie d'avance.
    Cordialement
    Gilbert

  • #2
    Bonjour,

    Ce que je ferais, c'est trois liens de menus portant le même nom (ou un nom légèrement différent) mais un alias personnalisé, un pour les invités, un pour les enregistrés et un pour les adhérents, en jouant sur les groupes et droits d'accès. Mais ça ne fontionnera qu'en fonction du statut, avant identification pour les simples visiteurs (invités), après pour les enregistrés et adhérents.
    gilb33 aime ceci.
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Bonjour,
      Merci RobertG pour votre réponse.
      J'avais essayé cette solution, j'ai créé trois lien de menu au nom identique en changeant l'allias et avec un niveau de groupe différent.
      Au niveau public, c'est parfait.
      Au niveau "enregistré" j'ai deux liens de menu celui pour "enregistré" mais aussi celui pour "public".
      Et au niveau "adhérent" j'ai trois liens de menu.
      Ça me semble normal puisque les groupes supérieurs ont accès aux groupes inférieurs. (Ci joint la structure des groupes)
      Il faudrait dès que le niveau "enregistré" est atteint dé-publier le lien de menu "public"... Mais ça, je ne sais pas faire.
      Cordialement
      Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture d’écran du 2023-03-26 19-12-14.png 
Affichages : 73 
Taille : 14,6 Ko 
ID : 2049575
      Gilbert

      Commentaire


      • #4
        Bonjour,

        Dans Joomla, au niveau des ACL, il y a 2 notions : le groupe d'utilisateurs et le niveau d'accès.

        Au niveau des menus, vous paramétrez le niveau d'accès. Donc, pour faire disparaître le menu public à la vue des "enregistrés" et plus, il faut mettre votre menu public en accès "invité".

        Ensuite, pour les 2 autres niveaux, il faut créer un nouveau niveau d'accès "adhérents" auquel vous associez votre groupe d'utilisateurs "adhérents". En y associant votre menu adhérent, il devrait disparaître du niveau "enregistré". Reste à faire disparaître le menu "enregistré" de la vision "adhérent". Je vais chercher un peu, mais cela se rapproche de la différenciation "Public" et "Invité".

        Pascal
        gilb33 aime ceci.
        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

        Commentaire


        • #5
          Bonjour,

          Pardon ! J'avais eu en effet un doute sur les données dédiées aux "enregistrés" quand on est connecté comme "adhérent", mas je n'ai pas testé (je l'ai souvent fait pour les deux niveaux invité et enregistré. Un groupe enfant a les droits de ses parents.
          J'avais aussi pensé à une solution de type "conditional content", mais le problème serait identique.

          Il faudrait donc que les eux groupes soient au même niveau, enfants de "enregistré", par exemple "non-adhérent" et "adhérent", avec définition de "non-adhérent" comme groupe par défaut après enregistrement, le lien actuel vers "enregistré" passant aux droits "non-adhérent".
          gilb33 aime ceci.
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Bonjour,
            Merci RobertG et Pascal pour vos réponses qui m'ont amené à faire deux nouveaux niveaux d’accès : "Accès adhérent-menu" et "Accès enregistré-menu" . J'ai ensuite créé deux groupes que j'ai placé directement sous public.​

            Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture d’écran du 2023-03-27 10-35-00.png 
Affichages : 72 
Taille : 21,9 Ko 
ID : 2049603

            J'ai créé un menu adhésion avec accès invité (et non pas public), un autre avec accès "enregistré-menu" et un troisième avec "adhérent-menu".
            Ainsi, tout fonctionne bien, j'ai toujours un seul menu adhésion. L'inconvénient, c'est que je ne vois pas comment ajouter deux groupes au moment de l'enregistrement du compte. Les paramètres ne permettent d'indiquer qu'un seul groupe "enregistré" dans mon cas......
            Pour la gestion de l'adhésion, je m'en débrouille avec un php qui ajoute l'accés "adhérent-menu" au moment de la validation du formulaire d'adhésion.
            Merci encore pour votre aide
            Cordialement
            Gilbert
            Dernière édition par gilb33 à 27/03/2023, 10h08
            Gilbert

            Commentaire


            • #7
              Il faut que lors de l'enregistrement, le groupe soit "enregistré-menu" et que lorsque tu valides l'adhésion, tu remplaces le groupe par "adhérent-menu", et pas que tu ajoutes ce groupe au compte de l'utilisateur. C'est soit l'un, soit l'autre, sinon l'adhérent aura aussi accès au lien pour l'enregistré-menu.
              gilb33 aime ceci.
              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

              Commentaire


              • #8
                moi, perso je ferais autrement.

                Il faut créer deux groupes avec comme parent enregistrés (groupe simple) un pour les utilisateurs standard et un autre pour les adherents (adherents).
                Les utilisateurs doivent être supprimés du groupe enregistré car le contenu de ce niveau d'accès est commun aux deux. Tu peux regler ceci directement le groupe utilisateur lors de la création du compte, donc tu peux directement le faire pointer sur le groupe utilisateur simple.


                Et ensuite, tes utilisateurs membre du groupe adherents ne doivent pas etre membre du groupe simple. Lors de la validation de l'adhesion, au niveau de l'utilisateur, tu clique sur l'onglet droits et tu changes le groupe utilisateur en le supprimant de l'un pour l'ajouter dans l'autre.

                tu crées le niveau d acces simple, avec comme groupe lié uniquement le groupe simple.
                Pour le groupe adherents, tu peux l'intégrer directement au niveau d'accès spécial ou créer un niveau d'accès spécifique avec comme seul groupe lié le groupe adhérent.
                Et comme ca ce qui est visible pour le groupe simple correspond au niveau d'accès simple et est invisible des adherents et des membres du groupe enregistré , et ce qui est visble pour le groupe adherent n'est visible que pour les adherents.

                Si tes utilisateurs ont accès à du contenu different selon le statut, tu peux directement gérer cela via les niveaux d'accès que tu viens de créer. Les droits du groupe enregistré couvre le contenu directement accèssible aux deux groupes.

                L'isolation des groupes étant à un niveau au dessus du niveau enregistré, cela simplifies l'attribution de droits spécifiques pour tes liens de menu
                Dans le cadre du menu, il n'y a aucun élément de menu en accès enregistré, donc rien de superflu n'apparais.

                Ca me rappelle la technique du menu caché sur les anciennes versions de joomla....

                Ca ne fonctionnes pas car vous laissez les utilisateurs membre du groupe enregistré...
                Dernière édition par lefabdu51 à 27/03/2023, 14h00
                gilb33 aime ceci.

                Commentaire


                • #9
                  Les deux groupes que j'ai crée:
                  le groupe simple
                  Cliquez sur l'image pour l'afficher en taille normale

Nom : groupe_simple.png 
Affichages : 64 
Taille : 32,4 Ko 
ID : 2049624
                  et le groupe adherents:
                  Cliquez sur l'image pour l'afficher en taille normale

Nom : groupe_adherent.png 
Affichages : 63 
Taille : 26,7 Ko 
ID : 2049625
                  les deux niveaux d'acces que j'ai crée / modifié:
                  Le niveau daccès simple :
                  Cliquez sur l'image pour l'afficher en taille normale

Nom : niveausimple.png 
Affichages : 70 
Taille : 37,1 Ko 
ID : 2049622
                  Et j'ai ajouté le groupe adherents au groupe spécial
                  Cliquez sur l'image pour l'afficher en taille normale

Nom : niveau-adherents.png 
Affichages : 64 
Taille : 41,5 Ko 
ID : 2049623
                  gilb33 aime ceci.

                  Commentaire


                  • #10
                    j ai crée un utilisateur simple, qui ne dois pas avoir accès au contenu adherents :

                    Cliquez sur l'image pour l'afficher en taille normale

Nom : utilisateur1.png 
Affichages : 57 
Taille : 37,9 Ko 
ID : 2049627

                    Et un utilisateur qui est adherent :
                    Cliquez sur l'image pour l'afficher en taille normale

Nom : utilisateur2.png 
Affichages : 62 
Taille : 40,9 Ko 
ID : 2049628
                    Aucun des deux utilisateurs n'est membre du groupe enregistré.

                    Commentaire


                    • #11
                      Et ensuite, j ai crée deux lien de menu avec chacun le niveau d'acces adequat.
                      Et la j ai bien la séparation des deux liens qui se fait, suivant si l'utilisateur est membre du groupe simple, et s'il est adherent.

                      une autre solution serait de mettre les groupes enfants de public.
                      Comme cela, tout ce qui n est pas lié spécifiquement à un groupe (simple ou adherent) sera innaccessible car par défaut le groupe public n a aucun droit sur la partie enregistrée..
                      LA par contre il faut attribuer les droits sur chaque composant individuellement. Pour le composant contenu, tu doit aller attribuer les droits a chaque groupe individuellement. Et ceci pour touts les éléments auquel chaque groupe doit avoir accès.

                      Commentaire


                      • #12
                        Bonjour,
                        RobertG et lefabdu51, un grand merci à vous, vous m'avez donné de bonnes idées.
                        Je vais essayer de comprendre vos solutions en vérifiant que les autres menus du site ne sont pas modifiés car implicitement, la hiérarchie public -> enregistré -> adhérent est partout utilisée.
                        Mon site est actuellement en 3.10 et je commence à le migrer en 4.2. Mais j'utilise beaucoup Fabrik et ils ne sont pas encore prêts pour fonctionner avec joomla 4. Je mettrais donc vos solutions en place dans ma nouvelle version J4.
                        Merci encore.
                        Cordialement
                        Gilbert
                        Gilbert

                        Commentaire


                        • #13
                          Bonjour,

                          Le principe est que tout enfant de "enregistré" a droit d'accès à ce qui est enregistré, avec en plus ce qui est dédié à cet enfant. Donc non-adhérent verra ce qui lui est réservé plus tout ce qui est pour "enregistré" et "public", une fois identifié. Même comportement pour ce qui concerne les membres du groupe "adhérent".
                          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                          Commentaire


                          • #14
                            RobertG : C'est pour cela que l'isolation doit être faite au dessus du niveau enregistré et sans que les membres des groupes ne soient pas membre du groupe enregistré....

                            Commentaire


                            • #15
                              Bonjour,
                              RobertG, lefabdu51 merci pour vos réponses.
                              Je suis arrivé à isoler le groupe "enregistré" et "adhérents" du public pour mon menu adhésion.... Avec vos conseils, je sais faire.
                              Mais la règle précisée par RobertG qui rappelle que tout enfant à les droits d'accès du parent, est bien utile dans d'autres menus du site et cette règle est bien pratique. Il faut donc que les adhérents et enregistrés soient chacun dans deux groupes différents. Pour les adhérents, je sais faire avec un php, mais pour les enregistrés, c'est le module joomla qui affecte à un seul groupe un enregistré.
                              Je vous souhaite une bonne journée
                              Cordialement
                              Gilbert

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X