les modules ne s'affichent pas avec ma routine

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

  • [RÉGLÉ] les modules ne s'affichent pas avec ma routine

    Bonjour à tous,

    Je sais que le sujet a déjà été abordé maintes fois, mais malgré mes tests et mes lectures, je dois avoir un truc qui m'échappe.

    J'ai trois modules, un menu "left" ou "receveur" ou menu "right". s'il n'y a rien dans le gauche, mais dans le droit, il faut le receveur s'adapte.

    Et ensuite l'inverse.

    S'il n'y a rien dans le gauche et le droit, le receveur prend la largeur totale.

    Je vous mets le bout de code ainsi que la CSS, car j'ai du raté un épisode, cela n'a pas l'air de fonctionner dans mon raisonnement.

    Pourriez-vous m'aider ou au moins me dire ou se trouve mon erreur ?
    Merci d'avance.

    La routine :
    Code PHP:
    $nbmodules 0;
    if (
    $this->countModules('left')) $nbmodules++;
    if (
    $this->countModules('right')) $nbmodules++;
    if (
    $this->countModules('receveur')) $nbmodules++;

    if (
    $nbmodules == 3
        {
        
    $divid_menu_g '-3'
        
    $divid_menu_d '-3'
        
    $divid_receveur '-3';
        }

    if (
    $nbmodules == 2)
        {
        
    $divid_menu_d '-2r';
        
    $divid_receveur '-2g';
        }
    else
    {
        
    $divid_menu_g '-2g';
        
    $divid_receveur '-2r';
    }

    if (
    $nbmodules == 1)
        {
        
    $divid_receveur '-1';
        } 
    Code PHP:
    <?php if($this->countModules('left') || $this->countModules('receveur') || $this->countModules('right')) : ?>
        <div id="cont-central">
        <?php if($this->countModules('left')) : ?>
            <div id="menu-left<?php if ( $topmodules ):echo $divid_menu_g; endif;?>">
            <jdoc:include type="modules" name="left" style="rounded" /> 
            </div>
         <?php endif; ?>
         
          <?php if($this->countModules('receveur')) : ?>  
          <div id="receveur<?php if ( $topmodules ):echo $divid_receveur; endif;?>">
            <div class="erreur-site"> <jdoc:include type="message" style="rounded" /> </div>            
                <jdoc:include type="modules" name="receveur" style="rounded" />
                    <jdoc:include type="component" />
          </div>
         <?php endif; ?> 
         
         <?php if($this->countModules('right')) : ?> 
           <div id="menu-right<?php if ( $topmodules ):echo $divid_menu_d; endif;?>">
            <jdoc:include type="modules" name="right" style="rounded" /> 
        </div> 
        <?php endif; ?>
        
            <div class="clear">&nbsp; </div>   
     <?php endif; ?>     
        </div>
    La CSS :

    Code:
    #menu-left-3{
        background-color: #C00;
        height: 230px;
        width: 240px;
        float: left;
        margin-left: 5px;
    }
    #menu-right-3{
        background-color: #C6F;
        float: left;
        height: 230px;
        width: 240px;
        margin-left: 5px;
    }
    #receveur-3{
        background-color: #00C;
        float: left;
        width: 524px;
        margin-left: 5px;    
    }
    /*  1x menu gauche et receveur à droite   */
    #menu-left-2g{
        background-color: #C6F;
        float: left;
        height: 230px;
        width: 300px;
        margin-left: 5px;    
        }
    #receveur-2r{
        background-color: #CCF;
        float: left;
        width: 709px;
        margin-left: 5px;
        }
    
    /*  1x menu droite et receveur à gauche   */    
    #menu-right-2r{
        background-color: #C6F;
        float: right;
        height: 230px;
        width: 300px;
        margin-right: 5px;
        }    
    #receveur-2g{
        background-color: #FF0;
        float: left;
        width: 709px;
        margin-left: 5px;
        }
    
    /*  Espace receveur entier   */
    #receveur-1{
        background-color: #F9F;
        width: 1014px;    
        margin-right: auto;
        margin-left: auto;
        }
    wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
    Joomla => 3.7.4 / Joomla test => 3.7.x
    --------
    Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

  • #2
    Re : les modules ne s'affichent pas avec ma routine

    Bonjour,
    Code PHP:
    if ($nbmodules == 3
        {
        
    $divid_menu_g '-3'
        
    $divid_menu_d '-3'
        
    $divid_receveur '-3';
        }

    if (
    $nbmodules == 2)
        {
        
    $divid_menu_d '-2r';
        
    $divid_receveur '-2g';
        }
    else
    {
        
    $divid_menu_g '-2g';
        
    $divid_receveur '-2r';

    si $nbmodules == 3 tu passes dans le premier if mais aussi dans le else du second. Les lignes $divid_menu_g = '-3'; et $divid_receveur = '-3'; ne servent à rien puisqu'elles sont aussitôt - et toujours - annulées par $divid_menu_g = '-2g'; et $divid_receveur = '-2r';.
    tout ça pour dire que ce n'est probablement pas ce que tu voulais faire...

    Tu as en théroie 7 cas possibles :
    Left Receveur Right
    Receveur Right
    Left Right
    Left Receveur
    Left
    Receveur
    Right

    plus le cas "rien" qui est traité par le premier if. Dans chaque cas, tu veux quelles largeurs pour les emplacements affichés ?
    Schtroumpfe toi le Schtroumpf t'aidera.
    Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

    Commentaire


    • #3
      Re : les modules ne s'affichent pas avec ma routine

      Bonjour GS

      Tout d'abord merci de te pencher sur mon problème.
      les quatre cas de figures que je souhaiterai sont :
      Left Receveur Right
      Receveur Right
      Left Receveur
      Receveur
      Tu as raison, il y a vraiment un truc qui m'échappe dans ce cas de figure car j'arrive pas à rester logique. Tu présenterais comment ?
      wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
      Joomla => 3.7.4 / Joomla test => 3.7.x
      --------
      Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

      Commentaire


      • #4
        Re : les modules ne s'affichent pas avec ma routine

        salut
        j'avais fait un tuto la desssus si tu veux jeter un oeil pour te donner des idées :
        http://www.joomlack.fr.nf/tutos-desi...-variable.html
        Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
        http://www.template-creator.com Outil de création de templates
        Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

        Commentaire


        • #5
          Re : les modules ne s'affichent pas avec ma routine

          Re,
          et si tu répondais à la question ?
          Dans chaque cas, tu veux quelles largeurs pour les emplacements affichés ?
          la réponse n'est pas la même suivant que left et right ont la même largeur ou pas, changent de largeur ou pas...
          Schtroumpfe toi le Schtroumpf t'aidera.
          Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

          Commentaire


          • #6
            Re : les modules ne s'affichent pas avec ma routine

            Re,

            au plus simple ( largeurs égales) c'est le tuto de CED. Au pire (tout est différent et tout bouge) tu peux faire :

            Code PHP:
            $suffixe"";
            if (
            $this->countModules('left')) $suffixe "L";
            if (
            $this->countModules('right')) $suffixe .= "R";
            if (!
            $suffixe$suffixe "WIDE"
            ensuite dans tes blocs tu utilises $suffixe dans tes classes

            Code:
            <div id="menu-left<?php echo "-".$suffixe; ?>">
            ...  
             <div id="receveur<?php echo "-".$suffixe; ?>">
            ... 
            <div id="menu-right<?php echo "-".$suffixe; ?>">
            Et il te reste à définir les styles :

            Code:
            .menu-left-LR {}
            .receveur-LR {}
            .menu-right-LR {}
            
            .menu-left-L {}
            .receveur-L {}
            
            .receveur-R {}
            .menu-right-R {}
            
            .receveur-WIDE {}
            Bien sur les cas L+R, L seul ou R seul que tu as exclus donneront des choses bizarres.
            Schtroumpfe toi le Schtroumpf t'aidera.
            Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

            Commentaire


            • #7
              Re : les modules ne s'affichent pas avec ma routine

              Tout d'abord merci à Ced, j'ai lu et je me suis inspiré du tuto "super tuto"( mais preuve qu'il m'échappe des trucs, mais c'est dû probablement à mon age, normal)

              Alors d'accord,
              Je vais reprendre pour tenter de m'expliquer un peu mieux. ( oups !)

              Dans le cas de :
              Left Receveur Right
              La largeur de left et right ont une dimension identiques. ( Receveur peut être fixe ou bien en %) pas d'importance.

              Dans le cas de
              Receveur Right
              Left Receveur
              La largeur de Right ou Left peuvent être plus large , et le receveur devra s'adapter ( fixe ou % )

              Dans le cas de
              Receveur
              Bien sur il prendra toute l'espace libre soit 100 %

              Je vais dire que c'est ce que j'ai tenté d'adapter avec mon css, mais c'est surtout le code dans l'index qui me pose un problème de logique.

              En tous les cas, merci encore à tous les deux de l'aide que vous pourriez m'apporter.

              GS => On vient de croiser nos messages ( celui juste avant )
              Dernière édition par gesualda à 09/10/2011, 11h30
              wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
              Joomla => 3.7.4 / Joomla test => 3.7.x
              --------
              Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

              Commentaire


              • #8
                Re : les modules ne s'affichent pas avec ma routine

                au plus simple ( largeurs égales) c'est le tuto de CED. Au pire (tout est différent et tout bouge)
                @GS : effectivement, il faut adapter .
                @gesualda : tu as essayé la méthode de GS ? elle semble bien coller à la problématique.
                Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                http://www.template-creator.com Outil de création de templates
                Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                Commentaire


                • #9
                  Re : les modules ne s'affichent pas avec ma routine

                  Je suis entrain de tester. Je reviens pour dire quoi plus tard. cela à l'air cohérent pour le moment !
                  wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
                  Joomla => 3.7.4 / Joomla test => 3.7.x
                  --------
                  Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

                  Commentaire


                  • #10
                    Re : les modules ne s'affichent pas avec ma routine

                    Bonjour à tous,

                    GS / CED,
                    J'ai donc adapté en suivant les conseils de la façon suivante :
                    Code:
                    .menu-left-LR {
                        background-color: #9FC;
                        height: 230px;
                        width: 240px;
                        float: left;
                        margin-left: 5px;
                        }
                    .receveur-LR {
                        background-color: #00C;
                        float: left;
                        width: 524px;
                        margin-left: 5px;   
                        }
                    .menu-right-LR {
                        background-color: #9FF;
                        float: left;
                        height: 230px;
                        width: 240px;
                        margin-left: 5px;    
                        }
                    /* ----------------*/
                    .menu-left-L {
                        background-color: #906;
                        float: left;
                        height: 230px;
                        width: 300px;
                        margin-left: 5px;
                        }
                    .receveur-L {
                         background-color: #CCF;
                        float: right;
                        width: 709px;
                        margin-right: 5px;
                        }
                    /* ----------------*/
                    .receveur-R {
                        background-color: #F90;
                        float: left;
                        width: 709px;
                        margin-left: 5px;
                        }
                    .menu-right-R {
                        background-color: #F00;
                        float: right;
                        height: 230px;
                        width: 300px;
                        margin-right: 5px;
                        }
                    /* ----------------*/
                    .receveur-WIDE {
                        background-color: #F9F;
                        width: 1014px;    
                        margin-right: auto;
                        margin-left: auto;
                        }
                    Code PHP:
                    <?php if($this->countModules('left') || $this->countModules('right')) : ?> <!--|| $this->countModules('receveur')-->
                        <div id="cont-central">
                        <?php if($this->countModules('left')) : ?>   
                            <div class="menu-left<?php echo "-".$suffixe?>">
                            <jdoc:include type="modules" name="left" style="rounded" /> 
                            </div>
                         <?php endif; ?>     
                            
                          <div class="receveur<?php echo "-".$suffixe?>">
                            <div class="erreur-site"> <jdoc:include type="message" style="rounded" /> </div>            
                                <jdoc:include type="modules" name="receveur" style="rounded" />
                                    <jdoc:include type="component" />
                          </div>     
                         
                         <?php if($this->countModules('right')) : ?> 
                           <div class="menu-right<?php echo "-".$suffixe?>">
                            <jdoc:include type="modules" name="right" style="rounded" /> 
                        </div> 
                        <?php endif; ?>
                        
                            <div class="clear">&nbsp; </div>   
                     <?php endif; ?>
                    La partie déclaré " WIDE" devrait prendre l'entière largeur de la page en cas de non présence des modules "droite et gauche".
                    Le soucis, c'est que rien n'apparait dans ce cas de figure dans "receveur".

                    Le design (test) se construit et je pense que le plus simple c'est de se rendre compte du problème, c'est => ici

                    Merci
                    wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
                    Joomla => 3.7.4 / Joomla test => 3.7.x
                    --------
                    Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

                    Commentaire


                    • #11
                      Re : les modules ne s'affichent pas avec ma routine

                      tu as regardé comment fonctionnes beez2.0 ....tu as 3 positions dans ce template et il s adapte en fonction de la resolution et de la presence ou de l absence de la colonne de gauche et droite.
                      Dernière édition par lefabdu51 à 13/10/2011, 21h02
                      Mon site de documentation sur Joomla et le CCK K2 : http://documentation.informaticien51.fr
                      Une notice pour le CCK K2 ( mise à jour le 01/06/2015) :
                      http://documentation.informaticien51...couverte-de-k2

                      Commentaire


                      • #12
                        Re : les modules ne s'affichent pas avec ma routine

                        Bonjour,
                        tu as laissé une mise en commentaire mal-t-à propos dans le test du début :
                        Code:
                        <?php if($this->countModules('left') || $this->countModules('right')) : ?> <!--|| $this->countModules('receveur')-->
                        Schtroumpfe toi le Schtroumpf t'aidera.
                        Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                        Commentaire


                        • #13
                          Re : les modules ne s'affichent pas avec ma routine

                          Bonjour GS,

                          Merci je viens de supprimer. Mais par contre je n'est toujours pas trouver la solution à l'appel de la mise en page sans menu.
                          wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
                          Joomla => 3.7.4 / Joomla test => 3.7.x
                          --------
                          Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

                          Commentaire


                          • #14
                            Re : les modules ne s'affichent pas avec ma routine

                            Re,
                            Mais par contre je n'est toujours pas trouvé la solution à l'appel de la mise en page sans menu.
                            hein ?
                            Schtroumpfe toi le Schtroumpf t'aidera.
                            Je ne schtroumpfe pas aux demandes de schtroumpf par MP.

                            Commentaire


                            • #15
                              Re : les modules ne s'affichent pas avec ma routine

                              Je comprends ton étonnement, regarde ici . Le lien " la ville" qui devrait afficher un article test sans les menus me provoquent une page vide. Peut être une erreur qui viendrais d'ailleurs.
                              Je continu de chercher.

                              Merci
                              wampserveur v3 - - Apache 2.4.18 - php 5.5.27/ 5.6.20/ 7.0.5 - mysql 5.6.29 / 5.7.11
                              Joomla => 3.7.4 / Joomla test => 3.7.x
                              --------
                              Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

                              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