Création de position de modules dans la page principale !

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

  • [Problème] Création de position de modules dans la page principale !

    Bonsoir à tous !

    Je possède sur mon site www.aesfg.org Joomla! 1.7 avec le template "Siteground-j16-25".

    Celui-ci est pourvu de plusieurs position de modules
    - Menu Haut (menuload)
    - Recherche (position-0)
    - Colonne de Droite (position-4)
    - Colonne de Gauche (position-7)

    J'ai effectué quelques modifications dans les fichiers car il y avait des bugs, je ne pouvais pas mettre de module à droite car dans le index.php la colonne se nommait "position-2" pour un appel à l'emplacement "position-4" donc forcément ça marchait pas, j'ai aussi rajouter un emplacement en "absolute" dans la bannière (en suivant un Tuto pour comprendre le fonctionnement des modules).

    Ce que je voudrais, c'est rajouter deux positions de module dans la colonne principale, au dessus des articles publiés en vedette, comme dans cet exemple (retouché à partir de l'original sous photoshop) : Cliquez sur l'image pour l'afficher en taille normale

Nom : final.jpg 
Affichages : 1 
Taille : 48,9 Ko 
ID : 1814335

    J'ai alors mis les mains dans le cambouis pour comprendre le fonctionnement de PHP (ne gérant que partiellement HTML ...) dans mon template. J'ai fais quelques copié/collé en m'aidant de firebug pour les emplacements.


    Ajouts - Fichier index.php***************************************** ***********
    Cliquez sur l'image pour l'afficher en taille normale

Nom : index-php.jpg 
Affichages : 1 
Taille : 16,6 Ko 
ID : 1814336

    dont je me suis aidé grâce à :
    Code:
                            <!-- Colonne de Droite -->
    						<?php if( $this->countModules('position-4') ) : ?>
    						<div class="rightcol">
    							<jdoc:include type="modules" name="position-4" style="rounded"/>
    						</div>
    						<?php endif; ?>
    						<div class="clr"></div>
    						
    
                            <div class="clr"></div>
    					</div>
    Sachant qu'il y avait tout un truc dont je ne comprenais pas l'utilité :
    Cliquez sur l'image pour l'afficher en taille normale

Nom : bizarre.jpg 
Affichages : 1 
Taille : 13,6 Ko 
ID : 1814337

    Ajouts - Fichier template.css************************************** **************
    Code:
    .leftcol h3, .rightcol h3, [B].midcol_l, .midcol_r h3[/B] {
    	background: url("../images/box_h3.png") top left no-repeat;
        color: #fff;
        font-size: 12px;
    	font-family:Arial,Tahoma, sans-serif;
        font-weight: 700;
        height: 34px;
        line-height: 31px;
    	padding: 0 10px;
        margin: 0 0 4px;
        overflow: hidden;
        text-align: left;
        width: 191px;
    }
    
    .midcol_l h3, {
    	padding: 0 10px;
    	background: url("../images/box_h3_m1.png") top center no-repeat;
    	width: 215px;
    	height: 20px;
    	align: left;
    	text-align: center;
    	line-height: 20px;
    }
    
    .midcol_r h3 {
    	padding: 0 10px;
    	background: url("../images/box_h3_m2.png") top center no-repeat;
    	width: 215px;
    	height: 20px;
    	align: right;
    	text-align: center;
    	line-height: 20px;
    avec "box_h3_m1.png" une image modifier jouant le rôle de "fond" du titre.

    sachant que partout où il y avait des .leftcol ou .rightcol j'ai rajouté .midcol_r et .midcol_l comme par exemple
    Code:
    .leftcol ul.menu li a, .leftcol ul.menu li a:link, .rightcol ul.menu li a, .rightcol ul.menu li a:link, [B].midcol_l ul.menu li a, .midcol_l ul.menu li a:link, .midcol_r ul.menu li a, .midcol_r ul.menu li a:link[/B] {
        background: url("../images/menu_arrow.gif") no-repeat  left center transparent;
        color: #666;
        display: block;
        font-size: 11px;
        font-weight: 400;
        height: 16px;
        line-height: 17px;
        padding: 0 0 2px 14px;
        text-decoration: none;
    }
    
    .leftcol ul.menu li.current  a,.leftcol ul.menu li.current a:link, .rightcol ul.menu li.current a, .rightcol ul.menu li.current a:link, [B].midcol_l ul.menu li.current a, .midcol_l ul.menu li.current a:link, .midcol_r ul.menu li.current a, .midcol_r ul.menu li.current a:link[/B] {color: #1c96d9;}
    Ajouts - Fichier templateDétails.xml******************************* *********
    Code:
    	<positions>
    		<position>menuload</position>
    		<position>position-0</position>
    		<position>position-4</position>
    		<position>position-7</position>
    		<position>banniere</position>
    		[B]<position>centre1</position>
    		<position>centre2</position>[/B]
    	</positions>



    Une fois que j'ai fais tout ça, je transfert mes fichiers sur mon ftp, et sans rien toucher dans le site, il n'y a pas de bug d'affichage (donc je n'ai apparament pas trop foiré).

    Les emplacements de modules sont accessibles depuis le panneau d'administration en tant que "Centre1" et "Centre", donc je place deux modules dans ces emplacements, et voilà ce que j'obtiens :
    Cliquez sur l'image pour l'afficher en taille normale

Nom : le bug.jpg 
Affichages : 1 
Taille : 18,4 Ko 
ID : 1814338.

    Je ne suis absolument pas certain de mes lignes "Align=left" ou "Align=right" mais en tout cas je devrais au minimum avoir deux parties violettes pour les titres de mes modules !?

    Ce que je ne comprend pas non plus c'est que malgré que mon code dans index.php soit avant le bandeau rose, mes modules se placent par dessus-lui ! :s

    J'ai conscience qu'on ne peut rajouter de telles position en faisant n'importe quoi dans le code mais je suis si proche !!!
    Pour la largeur des images de titre j'ai coupé la largeur de la colonne centrale en 2 etc ... Je ne comprend pas pourquoi mon bloc "Centre1" reprend l'image de "Leftcol" :s

    Il y a certainement pleins d'endroits que j'ai oublier de modifier (surtout dans template.css) mais je n'y connais rien en CSS et mes connaissances en PHP se limitent à savoir où commence et où prend fin un code php dans une page en HTML ...

    Avez-vous des idées ?
    Merci beaucoup, je sais que ce que je demande, ce n'est pas rien !

  • #2
    Re : Création de position de modules dans la page principale !

    "Centre1" reprend l'image de "Leftcol"

    regardes avec firebug, je suis sur que c est du au fait que ce sont les memes elements html, donc il ne differencies pas les deux et appliques les memes propriétés CSS, donc la meme image de fond.


    deuxieme chose, tu as delcaré comment tes position centre1 dans ton fichier index.php?

    Commentaire


    • #3
      Re : Création de position de modules dans la page principale !

      Bonjour !
      Enfin un courageux xD

      Pour centre1 j'ai mis :
      Code:
      <div class="midcol_l"
      <jdoc:include type="modules" name="centre1" style="rounded" float="left"/>
      Avant j'avais mis align="left" et pas de style mais je fais des test pour voir ce que ça donne xD

      J'ai réussi à faire en sorte que "centre1" ne reprenne pas l'image de leftcol mais je n'arrive absolument pas à lui faire afficher son image !!

      Même en plaçant dans template.css
      Code:
      .midcol_l h3, {
      background: url("../images/box_h3_m1.png") top center no-repeat
      }
      Je bloque vraiment sur quelque chose, je ne vois pas d'où cela peut venir !!

      De plus je ne comprend pas, le contenu (mes articles vedettes) ne commencent pas "à la ligne" mais sont directement après mon centre2 !

      Commentaire


      • #4
        Re : Création de position de modules dans la page principale !

        met style xhtml de base si tu met rounded ca doit t arrondir les angles et c tout.
        Le style xhtml rnvoies du code html donc c est leplus simple à manipuler.
        Apres , si tu veux les bords rond, tu n auras qu as jouer avec border-radius sur les elements.

        "../images/box_h3_m1.png"
        Le chemin est il bon?
        Dans ton dossier contenant ton template, tu as un dossier images?

        Commentaire


        • #5
          Re : Création de position de modules dans la page principale !

          Bonsoir !
          J'ai donc mis en xhtml mais je ne vois absolument pas la différence Mes images ont en fait des bords carrés mais il y a du transparent pour qu'au final ca donne du rond.

          Au final, à force d'essais j'ai presque réussi !!
          Cliquez sur l'image pour l'afficher en taille normale

Nom : presque.jpg 
Affichages : 1 
Taille : 23,2 Ko 
ID : 1798053

          J'ai modifié tout ça :
          Cliquez sur l'image pour l'afficher en taille normale

Nom : modifications.PNG 
Affichages : 1 
Taille : 13,2 Ko 
ID : 1798054
          Cliquez sur l'image pour l'afficher en taille normale

Nom : modifications2.jpg 
Affichages : 1 
Taille : 15,0 Ko 
ID : 1798055

          En fait j'ai fais la différence entre les colonnes sur les côtés et mes deux emplacements, car en h3 j'ai l'impression que cela ne concerne que les titres !
          Du coup là j'ai trouvé le truc sans "h3" après et ça marche =)

          Maintenant il me reste plus qu'à les mettre l'un à côté de l'autre ! Est ce que quelqu'un a une idée pour ça ?

          Merci !

          Commentaire


          • #6
            Re : Création de position de modules dans la page principale !

            (Double post ...)

            Voilà ce que cela donne quand j'insère le code "float" dans template.css au niveau des lignes .midcol_l (left) et r (right) :

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

Nom : avec float.jpg 
Affichages : 1 
Taille : 17,8 Ko 
ID : 1798056
            Il n'y a pas de commande CSS qui existe pour dire qu'il faut les deux blocs soient à l'horizontale l'un à côté de l'autre ?

            Commentaire


            • #7
              Re : Création de position de modules dans la page principale !

              Re-Bonsoir !

              Je reposte encore (et ça fait un triple post) pour montrer ma progression dans mes recherches sur la résolution de mes bugs

              Alors voilà ce que j'ai trafiqué :
              Cliquez sur l'image pour l'afficher en taille normale

Nom : feinte.PNG 
Affichages : 1 
Taille : 10,7 Ko 
ID : 1798057

              et ça donne ça :
              Cliquez sur l'image pour l'afficher en taille normale

Nom : réussi.PNG 
Affichages : 1 
Taille : 20,6 Ko 
ID : 1798058
              Ca marche !
              Le problème c'est que dès que je change de module, le margin, module et float font qu'il y a un décalage qui se créer.
              C'est la seule solution que j'ai trouvé pour que les deux modules soient au dessus de la bande rose du message ET à l'horizontale.


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

Nom : décalage.PNG 
Affichages : 1 
Taille : 25,6 Ko 
ID : 1798059

              En fait qui peux me dire ce que défini h3 ? Je n'ai pas vraiment compris à quoi servait h1, h2 etc ... c'est universel où c'est juste mon Template qui a ça ?

              Commentaire


              • #8
                Re : Création de position de modules dans la page principale !

                ce sont des balises html qui definissent les niveaux de titre.

                H1 = titre de niveau 1 donc avec le plus grosse fonte

                h2 = titre de niveau donc avec une fonte un peu moins grosse

                Dans un fichier html.html, copies juste ceci
                <h1> titre1 </h1>
                <h2> titre2 </h2>

                et tu comprendras.
                plus d'infos:


                Ces balises sont renvoyées par joomla lors de l'affichage de la page.
                Elles peuvent etre utilisées à l'interieur d'un article, mais dans ce cas il ne faut pas utiliser la balise h1, car elle conduit a avoir deux titres de premiere importance sur la page, et google as du mal avec ca.

                deuxieme chose à savoir sur les css, c est que celle qui s applique est la premiere, en cas de conflit.
                Donc vu qu en premier tu veux afficher une image, la seconde n est pas prise en compte.
                La il faut comprendre le mecanisme d'heritage entre les classes.
                c est en relisant ce matin que j ai réalisé.
                normalement ds firebug, tu doit avoir une barre sur la seconde image.
                Dernière édition par lefabdu51 à 16/10/2011, 07h05

                Commentaire


                • #9
                  Re : Création de position de modules dans la page principale !

                  Pour remonter ton module:

                  .midcol_r {
                  float:right;
                  margin-top:-124px;
                  width:259px;
                  }

                  Jai augmenté ta marge négative
                  C'est le plus simple, mais pas le plus efficace.

                  Les titres h3 correspondent au nom de tes modules.

                  Mais apres j ai testé une autre modif:
                  .midcol_l {
                  float:left;
                  width:259px;
                  }
                  template.css (ligne 286)
                  ta difficulté viens du fait du positionnement relatif.
                  Tu as de la doc sur le site du W3C a ce propos.
                  Ca m as donné ceci:
                  Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture du 2011-10-16 08:07:05.jpg 
Affichages : 1 
Taille : 46,3 Ko 
ID : 1798061


                  et en supprimant la marge négative, il est venu en placer tout seul comme un grand.
                  comme ceci:
                  .midcol_r {
                  float:left;
                  width:259px;
                  }
                  template.css (ligne 292)

                  et pour chasser l autre module en dessous, j ai attribué une hauteur de130px a ton div midcol_r.
                  comme ceci:
                  .midcol_r {
                  float:left;
                  width:259px;
                  height:130px;
                  }
                  La hauteur depend du contenu et la ton module est quasi vide.donc le module suivant dans le flux viens prendre la place libre.

                  Si tu tiens a conserver le positionnement relatif, il faut savoir qu il est relatif a a l angle en haut et a gauche du conteneur supérieur, donc vu que tu n as rien definit, les modules se superposent.

                  un truc que tu peux essayer, c est de mettre width: 50% a tes deux midcol, comme ca ils devraient s adapter en fonction de la resolution.Ils devraient occuper chacun 50% de l espace disponible dans le conteneur supérieur.
                  Et ton article reste dessous. pas besoin de hauteur.

                  A toi de tester et de me dire.
                  Dernière édition par lefabdu51 à 16/10/2011, 07h39

                  Commentaire


                  • #10
                    Re : Création de position de modules dans la page principale !

                    Bonjour ! Merci tous les deux pour vos réponses !

                    J'ai maintenant compris à quoi servaient les balises h et j'ai réglé mon problème de modules !
                    En fait j'ai ajouter un margin-top:150px; pour "div=error" sinon les deux blocs "montaient" sur la ligne rose où s'affichent les messages du genre "Vous n'avez pas accès à ce type de modification" ou "article sauvegardé".

                    Du coup j'ai un plus espace entre mes deux blocs du haut et mon contenu mais ce n'est pas grave, je modifierais à la main, vu que je n'ai pas trouvé de technique "absolue" pour que mes deux blocs soient alignés ET pas sur la p'tite ligne rose !

                    J'ai surtout évolué tout seul en essayant pleins de techniques mais vos conseils m'ont étés précieux !

                    Passez une bonne journée, j'espère pouvoir un jour vous aider comme vous l'avez fait pour moi !

                    Commentaire


                    • #11
                      Re : Création de position de modules dans la page principale !

                      c est du au fait que tes titres violets sont dans une boite plus fine.
                      Donc ta mise en page ne tiens pas compte de ta ligne rose, mais du dessous des divs contenant tes titres.
                      Ce qui induit un decalage dans les lignes entre le centre et le reste.
                      C est tout simple pour tes lignes rose Il y as un padding-bottom (ou un margin-bottom) a ajouter dans les meme propriétés pour supprimer le decalage.
                      Il doit etre egal a la difference entre les hauteurs de tes deux modules.

                      Commentaire


                      • #12
                        Re : Création de position de modules dans la page principale !

                        J'ai réussi à place les modules grâce à margin-bottom pour le "message error" mais j'aimerais bien que la taille s'adapte toute seule ...
                        Une idée ?

                        Commentaire

                        Annonce

                        Réduire
                        Aucune annonce pour le moment.

                        Partenaire de l'association

                        Réduire

                        Hébergeur Web PlanetHoster
                        Travaille ...
                        X