module inaccessible aux utilisateurs enregistrés.

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

  • module inaccessible aux utilisateurs enregistrés.

    Bonjour à tous,

    ___J'utilise joomla 1.5 et community builder 1.1 ainsi qu'un template YOOtheme qui dispose d'un menu et d'un submenu(switch) J'uilise mon menu pour afficher mon menu() et mon submenu pour afficher le login de CB qui est assez esthetique. Le probleme c'est qu'une fois connecté le bouton deconnexion apparait tout seul sur le sub menu et ce n'est pas super d'autant qu'a cette place j'aimerais afficher le user menu ou j'ai en plus creer un item "deconnexion". Ma question est donc :"comment fait pour qu'un module ne soit affichable qu'aux utilisateurs non-enregistrés? Les classes de base de joomla ne proposent pas ça mais j'ai cru comprendre qu'il n'était pas possible d'en créer d'autres. Quelqun a-t-il une solution ou une astuce?

    Merci d'avance.

  • #2
    C'est dans l'index php du template que vous pouvez accomplir ceci.

    Par example, ce code n'affichera la position de module user6 que si l'utilisateur n'est pas enregistré:
    Code:
    <?php 
    		$user		= & JFactory::getUser();
    		if ($user->get('gid') < 18) : ?>
    			<div id="une_id">
    				<jdoc:include type="modules" name="user6" />
    			</div>
    <?php endif; ?>
    Jean-Marie Simonet / infograf768
    Joomla co-fondateur. Joomla Production Working Group.
    Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

    Commentaire


    • #3
      Merci pour votre réponse !

      Cela fait avance mon probleme mais il m'en reste un.En fait j'aimerais qu'un module specifique soit accessible aux users enregistrés et un autre module aux users non enregistrés mais sur la même position.Est-ce que cela se regle aussi dans index.php?

      Cordialement

      Commentaire


      • #4
        Par contre je ne vois pas ou faire la modif,voila mon code:

        Code PHP:
        <div id="submenu">
                                                        <?php if($this->countModules('submenu')) { ?>
                                                        <jdoc:include type="modules" name="submenu" />
                                                        <?php ?>

        Commentaire


        • #5
          Envoyé par narfi Voir le message
          Merci pour votre réponse !

          Cela fait avance mon probleme mais il m'en reste un.En fait j'aimerais qu'un module specifique soit accessible aux users enregistrés et un autre module aux users non enregistrés mais sur la même position.Est-ce que cela se regle aussi dans index.php?

          Cordialement
          Dans le cas d'un module particulier le code serait
          Code:
          <jdoc:include type="module" name="nom_du_module" />
          Remarquez que dans ce cas "module" est au singulier.

          Pour votre cas précis:
          Code:
          <div id="submenu">
          <?php if($this->countModules('submenu')) { ?>
          <jdoc:include type="modules" name="submenu" />
          <?php } ?>
          C'est assez mal codé car le div existe, même quand il n'y a pas de module à afficher.

          Est-ce que le code complet est ?:
          Code:
          <div id="submenu">
          <?php if($this->countModules('submenu')) { ?>
          <jdoc:include type="modules" name="submenu" />
          <?php } ?>
          </div>
          Jean-Marie Simonet / infograf768
          Joomla co-fondateur. Joomla Production Working Group.
          Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

          Commentaire


          • #6
            Si oui, le code serait
            Code:
            <?php if($this->countModules('submenu')) : ?>
            <div id="submenu">
            <jdoc:include type="modules" name="submenu" />
            <?php 
            		$user		= & JFactory::getUser();
            		if ($user->get('gid') < 18) : ?>
            		<div id="mon_id">
            		<jdoc:include type="module" name="nom_du_module" />
            		</div>
            <?php endif; ?>
            </div>
            <?php endif; ?>
            Dans ce cas, si aucun module n'est assigné à la position "submenu", le module "nom_du_module" lui aussi ne sera pas présent sur la page.

            Vous pouvez aussi enlever les divs autour du module spécifique pour lui appliquer les CSS de submenu.
            Jean-Marie Simonet / infograf768
            Joomla co-fondateur. Joomla Production Working Group.
            Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

            Commentaire


            • #7
              J'ai remplacé

              Code:
                 <?php } ?>
              											
              											<div id="submenu">
              												<?php if($this->countModules('submenu')) { ?>
              												<jdoc:include type="modules" name="submenu" />
              												<?php } ?>
              											</div>
              										</div>
              Par
              Code:
              <?php } ?>
              											
              									<?php if($this->countModules('submenu')) : ?>
              <div id="submenu">
              <jdoc:include type="modules" name="submenu" />
              <?php 
              		$user		= & JFactory::getUser();
              		if ($user->get('gid') < 18) : ?>
              		<div id="submenu">
              		<jdoc:include type="module" name="mod_cblogin" />
              		</div>
              <?php endif; ?>
              </div>
              <?php endif; ?>
              j'avoue que ne suis pas un expert du codage.

              quand le module cblogin est activé, utilsateur non enregistré, deux modules apparaissent, quand l'user est enregistré un des deux disparait mais il en reste un. Je suis désolé je suis sur que c'est moi qui ne comprend pas tout, j'ai essayer en activant le module mais en en ne l'affichant sur aucune page, pas de resultats.

              Commentaire


              • #8
                donc voila un screen avec le module cblogin activé sur le submenu ainsi que le module usermenu activé en acces enregistré uniquement egalement sur le sub menu



                donc on peut voir qu'il y a un doublon de module

                en activant les deux modules j'obtiens une erreur de connexion



                enfin voila ce que ça donne une fois connecté





                Voila j'avoue que je m'y perd un peu et qu'en plus je ne comprend pas vraiment le code

                en tout cas un enorme merci pour votre aide !

                Commentaire


                • #9
                  1. appeler le module par "mod_cblogin" me semble bizarre.
                  Le nom est peut-être simplement "cblogin". Vérifier en regardant le nom du fichier php du module.
                  donc le code serait dans ce cas:
                  Code:
                  <jdoc:include type="module" name="cblogin" />
                  2. Ensuite, il ne faut pas assigner ce module à la position "submenu" car évidemment, il sera présent dans les deux cas.
                  Lui donner une position fictive non présente dans le template.

                  3. Vous faites un doublon de div avec la même id. Pas bon. Si vous n'avez pas besoin d'un deuxième div, ne le mettez pas, comme je le disais plus haut,
                  donc le code:
                  Code:
                  <?php if($this->countModules('submenu')) : ?>
                  <div id="submenu">
                  <jdoc:include type="modules" name="submenu" />
                  <?php 
                  		$user		= & JFactory::getUser();
                  		if ($user->get('gid') < 18) : ?>
                  		
                  		<jdoc:include type="module" name="cblogin" />
                  		
                  <?php endif; ?>
                  </div>
                  <?php endif; ?>
                  Dernière édition par infograf768 à 24/06/2008, 07h46
                  Jean-Marie Simonet / infograf768
                  Joomla co-fondateur. Joomla Production Working Group.
                  Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

                  Commentaire


                  • #10
                    bonjour,merci pour les eclaircissements.desormait ça marche a moitié.C'est a dire que quand le module cblogin est activé en position submenu deux modules apparaissent donc et quand je me connecte le module appelé disparait, donc ça marche. Mais donc quand je veux mettre le module dans une position fictive rien n'apparait ! hors le module est activé et il devrait bien apparaitre en position submenu puisqu'il est appelé non?

                    Commentaire


                    • #11
                      dois-je préciser dans le code que le module est positionné en position "inset" ?

                      Commentaire


                      • #12
                        Bon, essayons de régler cela une fois pour toutes.

                        1. Nom du ou des modules qui sera(ont) affiché(s) en position submenu quand l'utilisateur n'est pas enregistré:

                        2. Nom du ou des modules affichés en position submenu quand l'utilisateur est enregistré:

                        3. Y-a-t-il des cas ou aucun module n'est assigné à cette position? Cad quand le-les module-s ne sont assignés qu'à certains menus spécifiques?
                        Jean-Marie Simonet / infograf768
                        Joomla co-fondateur. Joomla Production Working Group.
                        Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

                        Commentaire


                        • #13
                          1. Quand l'user n'est pas enregistré il s'agit du module : "cblogin"

                          2.Quand l'user est enregistré il s'agit du menu usermenu.

                          3.Il y a toujours un module d'affiché.

                          Petite précision : les <div> sont importants sinon ils ne s'integrent pas et passent sous la barre

                          Commentaire


                          • #14
                            Code:
                            <?php if($this->countModules('submenu')) : ?>
                            <div id="submenu">
                            <jdoc:include type="modules" name="submenu" />
                            <?php 
                            		$user		= & JFactory::getUser();
                            		if ($user->get('gid') < 18) : ?>
                            		
                            		<jdoc:include type="module" name="cblogin" />
                            		
                            <?php endif; ?>
                            </div>
                            <?php endif; ?>
                            doit donc être correct.

                            Assigner les deux modules à la position "submenu" et donner les droits d'accès "Enregistré" au module "Usermenu".
                            Cela devrait marcher.
                            Sinon, donnez moi par pm l'accés à votre admin et je verrai ce que je peux faire.
                            Jean-Marie Simonet / infograf768
                            Joomla co-fondateur. Joomla Production Working Group.
                            Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

                            Commentaire


                            • #15
                              Bonjour,

                              merci pour votre aide.

                              J'ai bien specifié les droits d'users et les positions comme indiqué et placé le bon code au endroit en faisant attention aux balises mais ça ne marche pas j'ai tester avec plusieurs browsers,meme resultat.

                              Mon site est en local donc il n'est pas possible d'y acceder.

                              Mais je vais me debrouiller j'utiliserais une module en pleine page et puis c'est pas tres grave

                              merci beaucoup et desolé pour le derangement

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X