Pluxopolis

Tout savoir pour devenir un pro de PluXml, mais pas seulement...

Afficher une sidebar différente pour chaque page statique

Rédigé par Stéphane 5 commentaires
Voici une petite astuce pour afficher une sidebar différente pour chaque page statique.
L'idée est d'avoir plusieurs fichiers sidebar avec un contenu et une mise en forme différente adaptés à chaque page statique. Voyons comment mettre en place ces fichiers et les utiliser.Imaginons que nous voulons trois sidebars différentes: il nous faut donc trois fichiers
  • sidebar-1.php : sidebar correspondant à la page statique avec l'identifiant 001
  • sidebar-2.php : sidebar correspondant à la page statique avec l'identifiant 002
  • sidebar-3.php : sidebar correspondant à la page statique avec l'identifiant 003
Dans le dossier de notre thème, prenons par exemple le thème par défaut stocké dans le dossier themes/defaut/, créez ces trois fichiers. Il suffit de dupliquer le fichier sidebar.php et de donner aux fichiers le nom sidebar-1.php, sidebar-2.php et sidebar-3.php.
Modifiez et adaptez ces fichiers en fonction de vos besoins.

Pour rappel, les pages statiques sont affichées grâce au fichier static.php, dans lequel l'instruction suivante permet d'afficher la sidebar (fichier sidebar.php)

	include(dirname(__FILE__).'/sidebar.php');
Remplacez donc cette ligne par le code ci-dessous:

<?php 
	$sidebar = dirname(__FILE__).'/sidebar-'.$plxShow->staticId().'.php';
	if(file_exists($sidebar))
		include($sidebar); 
	else
		include(dirname(__FILE__).'/sidebar.php');
?>
Nous utilisons ici la fonction staticId() de la classe plxShow (fichier core/lib/class.plx.show.php) qui renvoie la valeur numérique de l'identifiant de la page statique en cours de visualisation.
Ainsi, lorsqu'on visualise la page statique avec l'identifiant 001, la fonction staticId() renvoie la valeur 1.

Ce que fait le nouveau code est de regarder si le fichier sidebar-1.php existe.

Si le fichier sidebar-1.php est présent alors on affiche le contenu du fichier sidebar-1.php
Sinon on affiche la sidebar par défaut, c'est à dire le fichier sidebar.php

Le principe est le même si on est sur la page 002 (sidebar-2.php) ou sur la page statique 003 (fichier sidebar-3.php).S'il n'y a pas de fichier sidebar dédié, c'est le fichier sidebar.php qui est utilisé.

Voilà vous pouvez donc préparer autant de fichier sidebar que nécessaire pour vos pages statiques.

Une autre méthode aurait été d'utiliser un template différent pour chaque page statique en y adaptant le contenu de la sidebar.

5 commentaires

#1  - P3ter a dit :

Merci pour cette excellente astuce ! L'autre possibilité est de gérer des templates de pages statiques qui font des include sur des sidebar différentes. Puis dans l'admin, il faut changer le template de la page.

Mais bon, c'est pas forcément plus simple que cette astuce.

Répondre
#2  - websyys a dit :

Il existe une autre astuce lorsqu'on ne veut pas afficher une sidebar différente sur toutes les pages statiques. Ce qui permet de véritablement personnaliser son site.

<?php
if ($_SERVER['REQUEST_URI'] == "/page1.html") {
include(dirname(__FILE__).'/sidebar2.php');
}
elseif ($_SERVER['REQUEST_URI'] == "/page2.html") {
include(dirname(__FILE__).'/sidebar2.php');
}
elseif ($_SERVER['REQUEST_URI'] == "/page3.html") {
include(dirname(__FILE__).'/sidebar2.php');
}
else { include(dirname(__FILE__).'/sidebar.php'); }
?>

Merci tout de même pour l'astuce ;)

Répondre
#3  - cpalo a dit :

Bonjour

Est-ce qu'il serait possible d'étendre cette astuce aux catégories. C'est à dire une sidebar différente selon la catégorie affichée en utilisant catId ?

Répondre
#4  - Stéphane a dit :

@cpalo :
Oui tout à fait

Répondre
#5  - DanielSan a dit :

^^^ ça c'est de l'astuce élégante !
merci ;)

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est la première lettre du mot bdddj ?
Top