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;
        }
    WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
    Joomla => 3.xxx / 4xxx
    --------
    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 ?
      WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
      Joomla => 3.xxx / 4xxx
      --------
      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 :
        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
              WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
              Joomla => 3.xxx / 4xxx
              --------
              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 !
                  WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
                  Joomla => 3.xxx / 4xxx
                  --------
                  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
                    WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
                    Joomla => 3.xxx / 4xxx
                    --------
                    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

                      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.
                          WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
                          Joomla => 3.xxx / 4xxx
                          --------
                          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
                              WampServer 3.2.5 / 64b - - Apache 2.4.46 / 2.4.48 - PHP 7.4.13 -/ 8.0.7 - MariaDB 10.5.8 / 10.5.10
                              Joomla => 3.xxx / 4xxx
                              --------
                              Un pessimiste, c'est un homme qui a travaillé pendant trois mois avec un optimiste !

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X