Forum CMS Made Simple FR
[Résolu] Passer une classe css spécifique à chaque page - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : [Résolu] Passer une classe css spécifique à chaque page (/thread-2048.html)



[Résolu] Passer une classe css spécifique à chaque page - okoweb - 16/06/2012

Bonjour,
Je souhaite passer une classe spécifique à chaque page de manière à la styliler avec css. Exemple :
Code :
<!-- page index -->
<body class="index">

<!-- page contact-->
<body class="contact">

J'ai essayé ainsi sans succès
Code :
<body class="{content name='composition' label='Composition' online='true' wysiwyg='false'}">

Comment faire ?

En outre est-ce encore possible de faire ainsi dans le même gabarit ?
Code :
{content name='slider' label='Slider'}
{content name='slider2' label='Slider 2'}

Merci d'avance...


[Résolu] Passer une classe css spécifique à chaque page - airelibre - 16/06/2012

Généralement pour cela j'utilise soit l'alias :
Code :
<body id="{$page_alias}">

Ou, si tu veux l'alias parent, avec CGSimpleSmarty :
Code :
<body id="{$cgsimple->get_root_alias()}">

Pour les {content} tu peux en créer autant que tu veux ! C'est tout l'intérêt Smile Vérifie dans Extensions / Balises si c'est "name" ou "block" qu'il faut utiliser


[Résolu] Passer une classe css spécifique à chaque page - okoweb - 16/06/2012

airelibre a écrit :Ou, si tu veux l'alias parent, avec CGSimpleSmarty :
Code :
<body id="{$cgsimple->get_root_alias()}">
Comment ça s'utilise ?

airelibre a écrit :Pour les {content} tu peux en créer autant que tu veux ! C'est tout l'intérêt Smile Vérifie dans Extensions / Balises si c'est "name" ou "block" qu'il faut utiliser

Code :
[== Indéfini ==]
{content block="second_content_block" label="Second Content Block"}

Et pour passer une class css à la page, est-ce ceci est faisable ?
Code :
<body class="{content block='composition' label='Composition' oneline='true' wysiwyg='false'}">

Merci d'avance...


[Résolu] Passer une classe css spécifique à chaque page - jissey - 16/06/2012

Bonjour et bienvenue sur le forum,
une autre alternative est d'utiliser le champ extra1 (attribut supplémentaire de la page) qui est dans l'onglet option.
et de le récupérer :
Code :
[== HTML ==]
<body class="{page_attr key='extra1'}">
Il y a 3 champs de ce type.

Sinon, si tu as d'autres options à proposer pour tes pages, tu peux installer le module advancedcontent qui permet de créer tes propres contenus comme des checkbox, des radio, des dropdown, ajouter des onglets...


[Résolu] Passer une classe css spécifique à chaque page - airelibre - 18/06/2012

okoweb a écrit :
airelibre a écrit :Ou, si tu veux l'alias parent, avec CGSimpleSmarty :
Code :
<body id="{$cgsimple->get_root_alias()}">
Comment ça s'utilise ?

> Il faut installer le module CGSimpleSmarty pour permettre cela

okoweb a écrit :
airelibre a écrit :Pour les {content} tu peux en créer autant que tu veux ! C'est tout l'intérêt Smile Vérifie dans Extensions / Balises si c'est "name" ou "block" qu'il faut utiliser

Code :
[== Indéfini ==]
{content block="second_content_block" label="Second Content Block"}

Et pour passer une class css à la page, est-ce ceci est faisable ?
Code :
<body class="{content block='composition' label='Composition' oneline='true' wysiwyg='false'}">

Merci d'avance...

Oui c'est possible. La première solution avec CGSimpleSmarty permet d'automatiser la création des IDs/Class. Mais tu peux bien sûr utiliser soit une nouvelle ligne de contenu comme tu le proposes, ou utiliser l'une des solutions de Jissey qui fonctionneront aussi.

Dis-nous si c'est ok ?