Bonjour,
Avant tout, excellente année à toutes et à tous!
Pour ce cas de figure, le recours à un second modèle graphique permet d'avoir surtout un flux html cohérent. En effet, dans le cas d'une configuration en 3 colonnes pour la page d'accueil et 1 colonne pour toutes les autres pages, il est possible de masquer les zones leftbar et rightbar par des "display:none" et de contextualiser les widgets par rubriques. Dès lors on se retrouve avec des "div" vides sur les pages à 1 colonne...
Comme l'a souligné Benoît, l'intérêt est de gérer jusqu'à trois voir quatre modèles différents. Il suffit dans un premier temps de configurer les emplacements des widgets et les modèles via le webo-facto puis de récupérer le mainpage.html et enfin d'ajouter les classes suivantes sur l'élément body et le tour est joué :
-
Pour une structure en 1 colonne : <body class="layoutContent">
-
Pour une structure en 2 colonnes (contenu+rightbar) : <body class="templateContentRight">
-
Pour une structure en 2 colonnes (leftbar+contenu) : <body class="templateLeftContent">
-
Pour une structure en 3 colonnes (leftbar+contenu+rightbar) : <body> (pas besoin d'ajouter de classe supplémentaire)
Et voici le code css réajusté :
/* -------------------------
GABARITS DE MISES EN PAGE
-------------------------*/
/*3 colonnes : Col gauche | contenu | Col droite*/
.layoutLeftContentRight #container,
.layoutLeftContentRight #container {
padding:0;
width: 648px;
margin-left: 188px;
}
.layoutLeftContentRight #leftbar {
width: 188px;
margin-left: -836px;
}
.layoutLeftContentRight #rightbar {
width: 188px;
}
.layoutLeftContentRight .product_detail #ProductRightCol {
width: 160px;
}
.layoutLeftContentRight .cart table{
overflow: auto;
width: 475px;
display: block;
}
/*************************
2 colonnes
*********
- contenu | Col droite
- col gauche | contenu
*****************************/
.layoutContentRight #container,
.templateContentRight #container {
padding:0;
margin: 0;
width: 800px;
}
.layoutLeftContent #container,
.templateLeftContent #container {
float: right;
padding:0;
margin: 0;
width: 800px;
}
.layoutContentRight #rightbar,
.layoutLeftContent #leftbar,
.templateContentRight #rightbar,
.templateLeftContent #leftbar {
width: 224px;
}
.layoutLeftContent #leftbar,
.templateLeftContent #leftbar {
margin: 0;
}
/*1 colonne : contenu*/
.layoutContent #container {
padding:10px;
width: 100%;
}
N'hésitez pas à tester cela ;)
Bonne journée