3 modules en 1

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

  • 3 modules en 1

    Bonjour,

    Je recherche à insérer, le module rechercher, identifiant et mon panier sur une seule ligne. Malgré des essais, je ne trouve pas le détail qu'il me manque.

    Je vous donne la partie du code de mon index.php :

    Code HTML:
    <div class="news">
                	<div class="interne">
                    	<jdoc:include type="modules" name="news-1" style="xhtml" />
                    </div>
                </div>
    			<div class="news">
                	<div class="interne">
                    	<jdoc:include type="modules" name="news-2" style="xhtml" />
                    </div>
                </div>	
    			<div class="news">
                	<div class="interne">
                    	<jdoc:include type="modules" name="news-3" style="xhtml" />
                     </div>
                </div>
                <?php if ($nbmodules) : ?>
    <?php if ($this->countModules('news-1')) : ?>
    <div class="news <?php echo $modulesclasse; ?>">
    <jdoc:include type="modules" name="news-1" style="xhtml" />
    </div>
    <?php endif; ?>
    <?php if ($this->countModules('news-2')) : ?>
    <div class="news <?php echo $modulesclasse; ?>">
    <jdoc:include type="modules" name="news-2" style="xhtml" />
    </div>
    <?php endif; ?>
    <?php if ($this->countModules('news-3')) : ?>
    <div class="news <?php echo $modulesclasse; ?>">
    <jdoc:include type="modules" name="news-3" style="xhtml" />
    </div>
    <?php endif; ?>
    </div>
    <?php endif; ?>
    et dans mon fichier template.css :
    Code HTML:
    /*** news ***/
    div.entier {
    	height: 100px;
    	width: 500px;
    }
    div.moitie {
    	height: 100px;
    	width: 250px;
    	float: left;
    }
    div.tiers {
    	height: 100px;
    	width: 33%;
    	float: left;
    }
    div.news {
    float: left;
    }
    div.news div.interne {
    padding: 10px;
    }
    div.news ul li {
    line-height: 20px;
    margin-left: 10px;
    }
    div.news h3 {
    line-height: 35px;
    }
    Où y a t il une erreur.

    Il doit se trouver en haut à droite

    Voici mon site pour le moment.
    Lien de mon site

    Merci d'avance de votre aide
    www.arminformatique.com

  • #2
    Re : 3 modules en 1

    Bonjour,

    Déjà, pourquoi avoir mi la même class au différentes div de tes positions de module ? si tu veux les mettres sur la même ligne il va falloir que tu leur donne une position mais à chaque div, exemple : position module 1 avec <div class= "left">, position module 2 avec <div class= "center"> position module 3 avec <div class= "right"> Et de leur donner leur position respective dans le ccs.

    De plus, inutile de marquer quarante fois <div class= "news">, il suffit de la mettre qu'une seul fois et de fermer la balise après la 3 position.

    Commentaire


    • #3
      Re : 3 modules en 1

      .search {float:left;}
      ton module de lign viendras ensuite se loger a droite*.
      Pour ton panier, il n y as pas la place pour le mettre sur un seule ligne des que tu met deux objets dedans.

      La classe associée et l identifiant associé: .hikashop_cart_module et #hikashop_cart_module

      Un conseil ajoutes un marge de70px a ce conteneur, comme ca il viendras juste en dessous de ton maximenu
      Pour ton menu gauche, il faut aussi une marge haute de 70px.
      div#centre, div#gauche {margin-top:70px;}

      Pour ton code html, je ne comprends pas pourquoi la premiere serie de div.....
      si la premiere serie est le resultat et la seconde le code, merci de les séparer et de mettre une ligne de description pour chaque partie.

      une autre chose que sur laquelle tu devrais te documenter, c est les suffixes css et les styles modchrome.

      Les fonctions modchrome standard sont définies dans le fichier /template/system/html/modules.php ca correspond au style="xhtml" que tu rajoutes. Ca ne sert a rien de rajouter une blise supplementaire comme tu le fait.

      seconde question ton $moduleclasse, il sort d'ou? Si tu veux recuperer les suffixe de classe css du module, alors il faudrais plutot ecrire ceci:
      <div class="news<?php echo htmlspecialchars($params->get('moduleclass_sfx')); ?>">
      Dernière édition par lefabdu51 à 29/09/2012, 19h04

      Commentaire


      • #4
        Re : 3 modules en 1

        Envoyé par lefabdu51 Voir le message

        Pour ton code html, je ne comprends pas pourquoi la premiere serie de div.....
        Idem pour moi.

        Commentaire


        • #5
          Re : 3 modules en 1

          Bonjour,

          J'essaye de modifier en local, tout ce que vous me dites mais je cela ne marche pas. Comment bien noter tout ça. Je rééssaye, pourriez vous m'aider à bien noter ma ligne. Je pense par ailleur, qaue votre conseil d'agrandir mon module "news", est une bonne idée.

          Merci d'avance
          www.arminformatique.com

          Commentaire


          • #6
            Re : 3 modules en 1

            c est sur le lien que tu as donné que j ai les classes... apres, peut etre qu elles ne correspondent pas.
            peut tu repondre a cette question?
            ton $moduleclasse, il sort d'ou?

            Commentaire


            • #7
              Re : 3 modules en 1

              Voici ce que j'ai fait :

              dans index.php :

              <div class="left">
              <jdoc:include type="modules" name="news-1" style="xhtml" />
              </div>
              <div class="center">
              <jdoc:include type="modules" name="news-2" style="xhtml" />
              </div>
              <div class="right">
              <jdoc:include type="modules" name="news-3" style="xhtml" />
              </div>
              <?php if ($nbmodules) : ?>
              <?php if ($this->countModules('news-1')) : ?>
              <div class="left">
              <jdoc:include type="modules" name="news-1" style="xhtml" />
              </div>
              <?php endif; ?>
              <?php if ($this->countModules('news-2')) : ?>
              <div class="center">
              <jdoc:include type="modules" name="news-2" style="xhtml" />
              </div>
              <?php endif; ?>
              <?php if ($this->countModules('news-3')) : ?>
              <div class="right">
              <jdoc:include type="modules" name="news-3" style="xhtml" />
              </div>
              <?php endif; ?>
              </div>
              <?php endif; ?>
              et dans template.css

              #logo {
              height: 100px;
              width: 490px;
              float: left;
              background: url(../images/logo.png) top left no-repeat;
              }

              #logo a {
              width: 450px;
              height: 90px;
              display: block;
              }

              /*** news ***/

              div.news {
              float: left;
              }
              div.news div.left {
              width: 25%;
              padding: 10px;
              }
              div.news div.center {
              width: 25%;
              padding: 10px;
              }
              div.news div.right {
              width: 50%;
              padding: 10px;
              }
              div.news ul li {
              line-height: 20px;
              margin-left: 10px;
              }
              div.news h3 {
              line-height: 35px;
              }
              Je veux quitte à agrandir mon module "news", tout mettre sur la même ligne mais toujours rien.

              Merci à tous de votre aide
              www.arminformatique.com

              Commentaire


              • #8
                Re : 3 modules en 1

                En fait, au début, j'ai suivi un tuto qui me diasait sur 3 modules aligné au cas où 1 ne soit pas apparant. Là, j'ai mieux compris, je l'ai fait disparaitre alors qu'il se trouvait dans mon header de mon fichier index.php mais rien ne change. Je sais que c'est 3 modules resteront apparant.

                Merci de votre aide
                www.arminformatique.com

                Commentaire


                • #9
                  Re : 3 modules en 1

                  voici le code que j'avais dans mon header :

                  <?php
                  $nbmodules = 0;
                  if ($this->countModules('module-1')) $nbmodules++;
                  if ($this->countModules('module-2')) $nbmodules++;
                  if ($this->countModules('module-3')) $nbmodules++;
                  if ($nbmodules == 1) $modulesclasse = 'entier';
                  if ($nbmodules == 2) $modulesclasse = 'moitie';
                  if ($nbmodules == 3) $modulesclasse = 'tiers';
                  ?>
                  www.arminformatique.com

                  Commentaire


                  • #10
                    Re : 3 modules en 1

                    ok....
                    enleves ceci, vu qu ils ne sont dans aucune structure conditionnelle, ils seront obligatoirement affichés. Ils ne servent à rien.
                    Code:
                    <div class="left">
                    <jdoc:include type="modules" name="news-1" style="xhtml" />
                    </div>
                    <div class="center">
                    <jdoc:include type="modules" name="news-2" style="xhtml" />
                    </div>	
                    <div class="right">
                    <jdoc:include type="modules" name="news-3" style="xhtml" />
                    </div>
                    et le code php devrais plutot ressembler à ceci :
                    Code:
                    <?php
                    $nbmodules = 0;
                    if ($this->countModules('news-1')) $nbmodules++;
                    if ($this->countModules('news-2')) $nbmodules++;
                    if ($this->countModules('news-3')) $nbmodules++;
                    if ($nbmodules == 1) $modulesclasse = 'entier';
                    if ($nbmodules == 2) $modulesclasse = 'moitie';
                    if ($nbmodules == 3) $modulesclasse = 'tiers';
                    ?>
                    tu utilise une position news-1, news-2,news-3. Donc publies tes modules dans ces positions. Pour que le code php marches, il aurais fallu que tu utilise les position module-1 2 et 3.

                    dans ton fichier index.hph, colles ceci:
                    Code:
                                <?php if ($nbmodules) : ?>
                    <?php if ($this->countModules('news-1')) : ?>
                    <div class="news <?php echo $modulesclasse; ?>">
                    <jdoc:include type="modules" name="news-1" style="xhtml" />
                    </div>
                    <?php endif; ?>
                    <?php if ($this->countModules('news-2')) : ?>
                    <div class="news <?php echo $modulesclasse; ?>">
                    <jdoc:include type="modules" name="news-2" style="xhtml" />
                    </div>
                    <?php endif; ?>
                    <?php if ($this->countModules('news-3')) : ?>
                    <div class="news <?php echo $modulesclasse; ?>">
                    <jdoc:include type="modules" name="news-3" style="xhtml" />
                    </div>
                    <?php endif; ?>
                    </div>
                    <?php endif; ?>
                    Comme ta variable etait toujours vide, elle renvoyait un espace. Donc elle ne servait à rien.
                    Les styles css communs aux trois doivent etre mis dans news

                    Et ensuite tu crée ta classe tiers, moitié et entier
                    Dernière édition par lefabdu51 à 30/09/2012, 10h19

                    Commentaire


                    • #11
                      Re : 3 modules en 1

                      J'ai suivi ton conseil "lefabdu51" mais j'ai tou qui disparait à la place du module news.

                      Voici ce que j'ai mis :

                      dans index.php :

                      <?php
                      $nbmodules = 0;
                      if ($this->countModules('news-1')) $nbmodules++;
                      if ($this->countModules('news-2')) $nbmodules++;
                      if ($this->countModules('news-3')) $nbmodules++;
                      if ($nbmodules == 1) $modulesclasse = 'entier';
                      if ($nbmodules == 2) $modulesclasse = 'moitie';
                      if ($nbmodules == 3) $modulesclasse = 'tiers';
                      ?>
                      </head>

                      <body>
                      <div id="wrapper">
                      <div id="conteneur">
                      <div id="logo"><a href="index.php"></a></div>
                      <?php if ($nbmodules) : ?>
                      <?php if ($this->countModules('news-1')) : ?>
                      <div class="news <?php echo $modulesclasse; ?>">
                      <jdoc:include type="modules" name="news-1" style="xhtml" />
                      </div>
                      <?php endif; ?>
                      <?php if ($this->countModules('news-2')) : ?>
                      <div class="news <?php echo $modulesclasse; ?>">
                      <jdoc:include type="modules" name="news-2" style="xhtml" />
                      </div>
                      <?php endif; ?>
                      <?php if ($this->countModules('news-3')) : ?>
                      <div class="news <?php echo $modulesclasse; ?>">
                      <jdoc:include type="modules" name="news-3" style="xhtml" />
                      </div>
                      <?php endif; ?>
                      </div>
                      <?php endif; ?>
                      <div id="breadcrumbs">
                      Dans template.css :

                      /*** news ***/

                      div.news {
                      float: left;
                      background: #03618d;
                      }
                      div.news div.left {
                      width: 25%;
                      padding: 10px;
                      }
                      div.news div.center {
                      width: 25%;
                      padding: 10px;
                      }
                      div.news div.right {
                      width: 50%;
                      padding: 10px;
                      }

                      /*** modules news ***/
                      div.entier {
                      width: 100%;
                      }
                      div.moitie {
                      width: 50%;
                      }
                      div.tiers {
                      width: 33%;
                      }
                      div.news {
                      float: left;
                      }
                      div.news ul li {
                      line-height: 20px;
                      margin-left: 10px;
                      }
                      div.news h3 {
                      line-height: 35px;
                      }
                      Y a t il un conflit entre "module news" et "news" dans template.css ou bien est le pbm.

                      Cordialement
                      www.arminformatique.com

                      Commentaire


                      • #12
                        Re : 3 modules en 1

                        <div id="logo"><a href="index.php"></a></div>

                        A quoi sert le lien <a href="index.php"></a> ?

                        a reecrire comme ceci:
                        Code:
                        <?php if ($nbmodules) : ?>
                        <div id="logo">

                        Commentaire


                        • #13
                          Re : 3 modules en 1

                          <div id="logo"><a href="index.php"></a></div>

                          A quoi sert le lien <a href="index.php"></a> ?

                          a reecrire comme ceci:
                          Code:
                          <?php if ($nbmodules) : ?>
                          <div id="logo">

                          Commentaire


                          • #14
                            Re : 3 modules en 1

                            Il y a quelque chose que je ne comprends pas. J'ai bien fait ce que tu m'as conseillé mais maintenant, je n'ai plus de header. Comment pouvez vous m'aider ?

                            Voici ce que ça donne :

                            Lien de mon site.
                            www.arminformatique.com

                            Commentaire


                            • #15
                              Re : 3 modules en 1

                              Le code est fonctionnel.

                              Ce ne sont plus que des réglages css.

                              ton conteneur #logo as une largeur fixe et un flottement a gauche.
                              consequence:ton conteneur #logo est a gauche et les autres conteneurs ont de la place pour s afficher a coté.


                              #logo {
                              height: 100px;
                              width: 100%;
                              float: right;
                              background: url(/templates/arm/images/logo.png) top left no-repeat;
                              margin-left: 0;
                              }

                              div.news, div.search {
                              float: right;
                              }

                              #btl {
                              position: relative;
                              float: right;
                              margin-right: -100px;
                              }

                              div.hikashop_cart_module {
                              float: right;
                              margin-right: -100px;
                              }
                              Dernière édition par lefabdu51 à 30/09/2012, 19h07

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X