Jump to content

[RESOLU] Aide pour changement de fond suivant la catégorie !


Recommended Posts

Bonjour,

je suis nouveau sur Prestashop mais pas dans le developpement ce que j'aurais voulu savoir c'est comment faire pour changer de fond suivant la catégorie dans laquelle on entre :

exemple : je vend des chiens

- l'accueil dans le header nous avons un caniche et la page est rose, et lorsque l'on va sur Jack Russel la page devient bleu avec un jack russel

Dans du développement PHP pur et dur j'aurais la solution mais avec prestashop tout ce complique pour moi ..

Il faudrait une fonction qui nous indique la page sur laquelle on se situe puis que l'on puisse faire un fichier css.php à la place du css de base pour que lorsqu'on est sur cette page on puisse changer l'image de fond ..

Si vous savez comment faire avec prestashop HELP ME ... car rien que modifier le css en css.php je lutte .. :s

{if isset($css_files)}
{foreach from=$css_files key=css_uri item=media}
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
{/foreach}
{/if}

Comment je l'indique vu que c'est automatique ....

Merci d'avance pour vos réponses,
Bastien

Link to comment
Share on other sites

Bonjour,

je suis nouveau sur Prestashop mais pas dans le developpement ce que j'aurais voulu savoir c'est comment faire pour changer de fond suivant la catégorie dans laquelle on entre :

exemple : je vend des chiens

- l'accueil dans le header nous avons un caniche et la page est rose, et lorsque l'on va sur Jack Russel la page devient bleu avec un jack russel

Dans du développement PHP pur et dur j'aurais la solution mais avec prestashop tout ce complique pour moi ..

Il faudrait une fonction qui nous indique la page sur laquelle on se situe puis que l'on puisse faire un fichier css.php à la place du css de base pour que lorsqu'on est sur cette page on puisse changer l'image de fond ..

Si vous savez comment faire avec prestashop HELP ME ... car rien que modifier le css en css.php je lutte .. :s

{if isset($css_files)}
{foreach from=$css_files key=css_uri item=media}
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
{/foreach}
{/if}

Comment je l'indique vu que c'est automatique ....

Merci d'avance pour vos réponses,
Bastien

Link to comment
Share on other sites

Bonjour,

Perso je rajouterai plutot l'id de la catégorie sur une classe d'un conteneur et irait mettre le style dans global.css.

Regarde la complexité graphique de certaines boutiques et tu verras que de ce coté là, il n'a pas besoin de reprendre le code. Un peu de smarty et de css et souvent le tour est joué.


Dans header.tpl


<body {if $page_name}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}{if $page_name == 'category'} class="macat_{$category->id}"{/if}>



Cordialement

Link to comment
Share on other sites

Je t'explique mieux tu n'as peut etre pas compris, le header.png de mon site correspond autant a mon header qu'au body ainsi qu'au Background générale c'est une grande image ..

Quand j'ai mis ton code dans mon body ça a tout simplement fait disparaitre le site car il ne comprend pas .. n'oublie pas l'URL rewriting qui peut poser des soucis peut etre dans ton ID ..

J'espère que c'est petit info t'aiderons à mieux comprendre mon souci sachant que si tu prends une catégorie tu as par exemple id=5 mais cette catégorie contient des sous-catégories qui doivent elles aussi avoir le meme fond ( changé ) mais celle-ci ont un autre ID ..

Link to comment
Share on other sites

Je t'explique mieux tu n'as peut etre pas compris, le header.png de mon site correspond autant a mon header qu'au body ainsi qu'au Background générale c'est une grande image ..


Oui oui c'est bien styliser la balise body dans header.tpl



Quand j'ai mis ton code dans mon body ça a tout simplement fait disparaitre le site car il ne comprend pas .. n'oublie pas l'URL rewriting qui peut poser des soucis peut etre dans ton ID ..


Testé avec ou sans url rewriting, smarty a bien cette variable.


J'espère que c'est petit info t'aiderons à mieux comprendre mon souci sachant que si tu prends une catégorie tu as par exemple id=5 mais cette catégorie contient des sous-catégories qui doivent elles aussi avoir le meme fond ( changé ) mais celle-ci ont un autre ID ..


Dans c'est cas là il faut conditionner sur le $category->level_depth qui t'interesse et le cas écheant prendre $category->id_parent au lieu de $category->id. Quand bien même tu pourrais aussi ajouter une classe dans la css par id, tu retomberais sur le meme problème de toute façon avec la modification en php.

body.macat_21, body.macat_22, body.macat_23 {
background-image: url(..);
}



Cordialement

Link to comment
Share on other sites

Bah c'est surtout que j'ai pas l'habitude de développer des sites avec des systèmes template genre smarty et autre .. Donc Prestashop, Magento, Joomla tout ça est un peu nouveau et je ne connais pas du tout les fonctions pour pouvoir discuter avec mon ami serveur pour lui envoyer mes requètes. Je n'ai pas eu le choix pour ce projet hélas mais j'avoue que je préfère tout développer moi même je suis pas du tout restreint..

Merci de ton aide en tout cas, donc si j'ai bien compris j'ai simplement à ajouter :

dans le body : {if $page_name}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}{if $page_name == 'category.php?id_category=3'} class="macat_{$category->id}"{/if}

et créer une classe dans le CSS : cat_3 ( par exemple) avec dedans exactement le meme code que le body :


.cat_3{
background-image: url('../img/header2.jpg'); //au lieu de background-image: url('../img/header.jpg');
background-position: center top;
background-repeat: repeat-x;
z-index: 1;
border: none;
position:relative;
font-size: 11px;
font-family: Verdana, Arial, Helvetica, Sans-Serif;
color: #58464e;
text-align:center;
margin:auto;
padding:auto;
}

Link to comment
Share on other sites

Re bonjour

Ne remplace pas 'category' et pas besoin de reprendre tout le css de body, juste l'image suffit. Smarty est ton ami crois moi =)

<body {if $page_name}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}{if $page_name == 'category'} class="macat_{$category->id}"{/if}> 




body {
   background-image: url(’../img/header.jpg’); 
   background-position: center top; 
   background-repeat: repeat-x; 
   z-index: 1; 
   border: none; 
   position:relative; 
   font-size: 11px; 
   font-family: Verdana, Arial, Helvetica, Sans-Serif; 
   color: #58464e; 
   text-align:center; 
   margin: 0px auto;
}

body.macat_3 {
   background-image: url(’../img/header2.jpg’);
}



Bon courage. Cordialement,

Link to comment
Share on other sites

Sujet déplacé pas à sa place...


Pour ton histoire de couleurs, tu peux passer par des class dans le css qui changes en fonction de l'ID de la catégorie...

Pas besoin de PHP pour cela, Juste récupérer la varible smarty qui correspond à l'id de ta catégorie dans le Header...

Tu auras ensuite des class du style :



et ensuite dans ton css

div.catheader_3 { background-color: #ff0000} 3 correspondant à l'id de la catégorie jack Russel etc...

V++

Atch
Link to comment
Share on other sites

Alors je pense qu'on s'approche du but, mais je vois dans firebug il marque class="macat_" mais il n'ajoute pas l'id de la catégorie .. c'est tete pour ça que je te disais que ça marché pas :s ..

j'ai essayé :

- {if $page_name == 'category'} class="macat_{$category->id}"{/if}
- {if $page_name == 'category'} class="macat_{$category->id_category} "{/if}

mais ça ne récupère pas l'ID toujours "macat_"

Link to comment
Share on other sites

Alors je pense qu’on s’approche du but, mais je vois dans firebug il marque class=“macat_” mais il n’ajoute pas l’id de la catégorie .. c’est tete pour ça que je te disais que ça marché pas :s ..

j’ai essayé :
– {if $page_name 'category'} class="macat_{$category->id}"{/if}
- {if $page_name ‘category’} class=“macat_{$category->id_category} “{/if}

mais ça ne récupère pas l’ID toujours “macat_”

Link to comment
Share on other sites

Alors je pense qu’on s’approche du but, mais je vois dans firebug il marque class=“macat_” mais il n’ajoute pas l’id de la catégorie .. c’est tete pour ça que je te disais que ça marché pas :s ..

j’ai essayé :
– {if $page_name 'category'} class="macat_{$category->id}"{/if}
- {if $page_name ‘category’} class=“macat_{$category->id_category} “{/if}

mais ça ne récupère pas l’ID toujours “macat_”


Essaye plutot cela :

{if $page_name 'category'} class="macat_{$currentCategoryId}"{/if}



V++

Atch

Link to comment
Share on other sites

  • 4 months later...
  • 7 months later...

Bonjour

Ce sujet m'interesse car j'ai besoin de faire plus ou moins la meme chose mais avec le footer. Ca fonctionne parfaitement pour le header mais, en essayant de reprendre le principe, ca ne marche pas pour le footer.

J'ai fait ainsi : dans le footer.tpl, dans la div id="footer" j'ai rajouté :

{if $page_name == 'category'} class="macatfoot_{$currentCategoryId}"{/if}

et dans le global.css, j'ai rajouté

.macatfoot_4 {
background: url(../images/footer-bg2.gif) 0 0;
}

QQun aurait il une idée?

Merci beaucoup

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...