Atelier de conception de tutoriels en ligne
   
       
 

La publication de la version pdf du tutoriel Concevoir son template et prévue cette semaine...

 
   
 
logo_fr Translate in English Ins Deutsche übersetzen Traducir al Español tradurre in italiano Vertaal in Nederlands Traduzir para Português Traduire en grec
Home arrow Tutoriels Templates Joomla! arrow : : Concevoir son template arrow 11. Le corps du site arrow 11.5 Ajout des positions left et right au template
Home
Actualités !
Joomla!draft
Road Map ! [Work in progress]
Tutoriels Templates Joomla!
Tutoriels Divers en vrac !
Trucs & Astuces !
Dossiers !
Ressources sur le WEB !
Annuaire !
Outils WEB !
Chercher ?
Sommaire du tutoriel :<br />Concevoir son template
Information pratique
Dans le tutoriel :
Concevoir son template
le code et la numérotation des lignes sont vérifiés jusqu'à la page :

14.2 incluse.

11.5 Ajout des positions left et right au template Convertir en PDF Version imprimable Suggérer par mail
Concevoir son template - 11. Le corps du site
Écrit par Jean Louis Servais   
06-03-2006
Image logo joomla!Joomla! 1.0.x
Nouvelle page 27/03/2006 : A la ligne 46 nous avons remplacé id="column-right" par id="column3"
16/04/2006 : Retouche de la présentation.
24/07/2006 : Corrections syntaxique et orthographique
Page en revision Coloration syntaxe du code ?

Nous pouvons maintenant ajouter les positions du corps du site. Nous placerons uniquement les positions left et right. Les autres positions font chacune l'objet d'un chapitre particulier dans la deuxième partie de ce tutoriel.
Image
Compte tenu des excellentes explications données précédemment, il vous suffit maintenant d'insérer la fonction avec les positions adéquates dans des scripts PHP. Nous n'indiquerons pas de style de publication, car la valeur par défaut ($style = 0) nous convient parfaitement (affichage vertical des modules). Il faut donc remplacer :
38
          Emplacement colonne 1 du corps du site

Par :
38
          <?php mosloadModules ( 'left' ); ?>

Et remplacer :
46
          Emplacement colonne 3 du corps du site 

Par :
46
          <?php mosloadModules ( 'right' ); ?>

Une fois ces modifications réalisées, vous pouvez risquer un regard sur le site.
Votre joie est infinie, les trois colonnes sont remplies. Il était temps. Et maintenant, ça commence à ressembler à un site.
Certes la présentation n'est pas extraordinaire. C'est normal car nous n'avons pas encore défini les styles CSS dans le fichier template_css.css. Nous héritons donc de la feuille de style du navigateur.
A ce propos, avez-vous regardé le résultat :
 
  • Internet Explorer ?
  • Firefox ?
  • Opera ?
  • Safari ?
Vous devriez observer quelques différences surprenantes. Ceci est malheureusement normal car chaque navigateur à sa propre interprétation de certaines règles CSS et dispose d'une feuille de style qui lui est propre.
Commençons d'abord par aligner le contenu des colonnes en haut en ajoutant dans la feuille de style template_css.css :
 
   vertical-align: top;
Aux styles CSS de nos colonnes :
 
  • column1,
  • column2,
  • column3.
Pour le reste, vous ne touchez à rien, nous améliorerons cela dans un prochain chapitre. Nous avons d'autres choses importantes à faire auparavant. Si vous ne l'avez pas encore fait, activez l'option Joomla! License du menu principal. Vous constaterez alors que la troisième colonne est vide et qu'elle est toujours affichée.
Nous allons régler ce petit problème. Pour ce faire, nous utilisons une fonction de Joomla! qui permet de compter le nombre de modules assignés à une position : mosCountModules.
Le nom de cette fonction est lui aussi assez facile à retenir :
 
  • mos = Mambo Open Source,
  • Count = Compter en langue anglaise,
  • Modules = Modules.
La syntaxe de cette fonction est la suivante :
 
mosCountModules ( $nom_position )

Donc, comme son nom l'indique, cette fonction va retourner le nombre de module assignés à la position $nom_position de la page en cours.
La colonne contient donc des modules si la fonction retourne une valeur supérieure à zéro et c'est seulement dans ce cas qu'il faut afficher cette colonne.
La difficulté technique se résume à traiter ou à ignorer les balises <td> et </td> en fonction du résultat de mosCountModules ( 'right' ).

Nous allons par conséquent faire appel à un petit script en php pour résoudre ce problème. Remplacez ces 4 lignes :
44
45
46
47
        <!-- DEBUT COLONNE 3 DU CORPS DU SITE -->
        <td id="column3">
          <?php mosloadModules ( 'right' ); ?>
        </td>

Par ces 6 lignes :
44
45
46
47
48
49
        <!-- DEBUT COLONNE 3 DU CORPS DU SITE -->
        <?php if ( mosCountModules( 'right' ) > 0 ){?>
          <td id="column3">
            <?php mosLoadModules ( 'right' ); ?>
          </td>
        <?php } ?>

Voici les explications pour les newbies en PHP :
Ligne 44 : <!-- DEBUT COLONNE 3 DU CORPS DU SITE -->
Un petite commentaire pour se situer dans le code;
Ligne 45 : <?php
Ouverture du script en PHP;
if ( mosCountModules ( 'right' ) > 0 :
Si le nombre de modules à afficher dans la position right de la page est supérieur à zéro;
{?>)
Si oui alors continuer avec les lignes suivantes. Si non, quitter le script;
Ligne 46 : <td id="column3">
Déclaration d'une nouvelle cellule (colonne de droite du corps du site) avec une présentation suivant le style #column3;
Ligne 47 : <?php mosLoadModules ( 'right' ); ?>
Publier les modules assignés à la position right à cet emplacement;
Ligne 48 : </td>
Fin de déclaration de la cellule;
Ligne 49 : <?php } ?>
Fin du script PHP.

Vous pouvez aller faire un petit tour sur le site pour vérifier la présence des modules dans les différentes colonnes. Ce n'est pas très beau car les styles CSS ne sont pas encore définis. Mais, nous touchons au but.
Revenez vite, que nous puissions mettre le Footer en place...

Tip Vous pouvez éventuellement faire la même chose avec la colonne de gauche. Mais c'est inutile si votre menu principal est assigné à la position left et qu'il est présent en permanence.
Note Auto-contrôle :
Maintenant, la balise </html> doit se trouver à la ligne 55.

Dernière mise à jour : ( 14-08-2008 )
 
< Précédent