Connexion...



Chargement...
Un CSS différent sur chaque page sans changer de template
01
Sep.
2009
Un CSS différent sur chaque page sans changer de template
Written by Patrick BESSE - Hits 968 visiteurs E-mail Print

Avec Joomla, il est possible d'affecter un template différent avec chaque page. Cette solution est efficace, mais reste assez lourde. En effet tous les fichiers du template sont multipliés et remplacés à chaque changement de page. Une simple modif sur un fichier CSS vous oblige à faire la même correction sur toutes les copies.

 

Pour un cas particulier je voulais seulement changer les couleurs dominantes de certaines pages tout en gardant le template principal et le CSS général.

J'y suis arrivé de cette façon :

Dans l'index.php de mon template juste aprés mon appel du fichier CSS principal, j'ai ajouté un bout de code afin de détecter la class CSS de la page et je ne garde que le sufixe de page.

Ensuite j'ouvre l'élément de menu correspondant par exemple à la page "rouge" et j'ajoute le suffixe css "_rouge". Idem pour les pages "_bleu" "_jaune" etc..

 

 

 
<?php
// selection des couleurs de pages
$menus     = &JSite::getMenu();
$menu       = $menus->getActive();
$pageclass = "";
 
if (is_object( $menu )) : 
$params = new JParameter( $menu->params );
$pageclass = str_replace('_','', $params->get( 'pageclass_sfx' ));
endif;
?> 
<link href="/templates/<?php echo $this->template ?>/css/<?php echo $pageclass; ?>.css" rel="stylesheet" type="text/css" />

 

Le code ci-dessus détecte la class CSS de la page définie dans le menu, et charge le fichier CSS correspondant (rouge.css, bleu.css, jaune.css, etc.).

 

Last Updated on Tuesday, 01 September 2009 16:21
 
Articles recents
Articles les plus lus