Jump to content

Presta 1.4 : feuille style différente chaque categorie


Recommended Posts

Rebonjour à tous,

j'ai épeluché ce qui se dit sur ce thème. Mais tout semble incompatible avec Prestashop 1.4.

Que toucher pour pouvoir linker une catégorie à un fichier css ?

Mon header.tpl contient cela :

{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}



Là... bloqué.

J'attends votre aide !

LeHibou

Share this post


Link to post
Share on other sites

Hello,

Cette exemple pourrai etre une solution

{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}
{if $blockCategTree.id eq 1}
   <link href="/themes/.../1.css" rel="stylesheet" type="text/css" media="all" />
{elseif $blockCategTree.id eq 2}
   <link href="/themes/.../2.css" rel="stylesheet" type="text/css" media="all" />
{/if}



@++

---

Edit : J'ai parler un peu trop vite. Je n'avais pas fait attention. Pour la version 1.4, on peut écrire dans le fichier /themes/prestashop/header.tpl:

{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}
{if $currentCategoryId eq 1}
   <link href="/themes/.../1.css" rel="stylesheet" type="text/css" media="all" />
{elseif $currentCategoryId eq 2}
   <link href="/themes/.../2.css" rel="stylesheet" type="text/css" media="all" />
{/if}

Share this post


Link to post
Share on other sites

Bonsoir et merci de votre aide,

Cela ne fonctionne toujours pas.
Mon code :

{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}
{if $currentCategoryId eq 1}
   <link href="/themes/.../global.css" rel="stylesheet" type="text/css" media="all" />
{elseif $currentCategoryId eq 2}
   <link href="/themes/.../global2.css" rel="stylesheet" type="text/css" media="all" />
{/if}



mes css sont dans theme/prestashop/css.

j'ai tenté de remplacer les "..." par le chemin mais rien n'y fait.
Et je ne vois nulle part, dans le code source de la page, la référence au global2.css.

L'unique référence au global.css est dans le home page. J'ai vidé le cache du serveur et de firefox.

Un truc me manque ?

LeHibou

[EDIT]
Egalement, Firebug indique toujours le lien avec global.css et non global2.css.
[/EDIT]

Share this post


Link to post
Share on other sites

Avez vous essayé :

{if $smarty.get.id_category=1}
   <link href="/themes/.../global.css" rel="stylesheet" type="text/css" media="all" />
{elseif $smarty.get.id_category=2}
   <link href="/themes/.../global2.css" rel="stylesheet" type="text/css" media="all" />
{/if}

Share this post


Link to post
Share on other sites

Bonjour,
Je viens d'essayer, sans résultat.

Voici la typologie de la page à modifier (pour info) : http://.../prestashop/category.php?id_category=5

Et le code entier de mon header.tpl:

{*
* 2007-2011 PrestaShop 
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA 
*  @copyright  2007-2011 PrestaShop SA
*  @version  Release: $Revision: 1.4 $
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}


<html >
   <head>
       <title>{$meta_title|escape:'htmlall':'UTF-8'}</title>
{if isset($meta_description) AND $meta_description}
       <meta name="description" content="{$meta_description|escape:html:'UTF-8'}" />
{/if}
{if isset($meta_keywords) AND $meta_keywords}
       <meta name="keywords" content="{$meta_keywords|escape:html:'UTF-8'}" />
{/if}
       <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
       <meta name="generator" content="PrestaShop" />
       <meta name="robots" content="{if isset($nobots)}no{/if}index,follow" />
       <link rel="icon" type="image/vnd.microsoft.icon" href="{$img_ps_dir}favicon.ico?{$time}" />
       <link rel="shortcut icon" type="image/x-icon" href="{$img_ps_dir}favicon.ico?{$time}" />
       [removed]
           var baseDir = '{$content_dir}';
           var static_token = '{$static_token}';
           var token = '{$token}';
           var priceDisplayPrecision = {$priceDisplayPrecision*$currency->decimals};
           var priceDisplayMethod = {$priceDisplay};
           var roundMode = {$roundMode};
       [removed]
{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}
{if $smarty.get.id_category=1}
   <link href="/themes/prestashop/theme/css/global.css" rel="stylesheet" type="text/css" media="all" />
{elseif $smarty.get.id_category=5}
   <link href="/themes/prestashop/theme/css/global2.css" rel="stylesheet" type="text/css" media="all" />
{/if} 

{if isset($js_files)}
   {foreach from=$js_files item=js_uri}
   [removed][removed]
   {/foreach}
{/if}
       {$HOOK_HEADER}
   </head>

   <body {if $page_name}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}>
   {if isset($ad) && isset($live_edit)}
       {include file="$tpl_dir./live_edit.tpl"}
   {/if}
   {if !$content_only}
       {if isset($restricted_country_mode) && $restricted_country_mode}


{l s='You cannot place a new order from your country.'} {$geolocation_country}

       {/if}


           <!-- Header -->





                   {$HOOK_TOP}




               <!-- Left -->

                   {$HOOK_LEFT_COLUMN}


               <!-- Center -->

   {/if}

Share this post


Link to post
Share on other sites

Quelques questions:

- après avoir fais les modifications et mis sur ton serveur le fichier category.php : as tu vidé le cache smarty ?

- tu as réellement mis 3 points : /themes/.../globa2.css ? et c'est globa2 ou global2

- quand tu regardes ta page tu as quel code ? (quelle feuille css)

Share this post


Link to post
Share on other sites

Ça a marché pour moi en écrivant ceci dans le header.tpl :

{if $currentCategoryId eq 1}
<link href="/"nom donné dans le htdocs"/prestashop/themes/"nom du theme"/css/global1.css" rel="stylesheet" type="text/css" media="all" />
{elseif $currentCategoryId eq 2}
<link href="/"nom donné dans le htdocs"/prestashop/themes/nom du theme/css/global2.css" rel="stylesheet" type="text/css" media="all" />
{elseif $currentCategoryId eq 3}
<link href="/"nom donné dans le htdocs"/prestashop/themes/nom du theme/css/global3.css" rel="stylesheet" type="text/css" media="all" />
{/if}

Share this post


Link to post
Share on other sites

Au temps pour moi,

les erreurs de ce matin ont été corrigées. Je n'avais pas fait attention que j'avais tenté plusieurs solutions.
Même avec le global2.css, les points remplis, le cache vidé (tools/smarty/cache et tools/smarty_v2/cache).

Jon, pour moi, cela ne fonctionne pas. Mon répertoire d'installation est /srv/http/prestashop.
J'ai tenté de mettre /srv/blabla /http/blabla et prestashop/blabla, cela ne change rien.

C'est simple, le global2 a un fond noir, donc je ne peux pas louper le changement !

En tout cas merci de vous pencher sur ce problème.

Share this post


Link to post
Share on other sites

moi je tenterais plutôt des liens relatifs:

{if $currentCategoryId eq 1} <link href=”themes/nomdutheme/css/global1.css” rel=“stylesheet” type=“text/css” media=“all” />
{elseif $currentCategoryId eq 2} <link href=”themes/nomdutheme/css/global2.css” rel=“stylesheet” type=“text/css” media=“all” />
{elseif $currentCategoryId eq 3} <link href=”themes/nomdutheme/css/global3.css” rel=“stylesheet” type=“text/css” media=“all” />
{/if}

Share this post


Link to post
Share on other sites

Je ne sais pas ce qui peut se passer.

Mais je tente et rien ne se fait. J'ai vraiment l'impression que c'est cela qui m'empêche de faire ce que je veux :

{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}



Je rappelle que je dispose de la version 1.4. Sur 1.3, le changement a l'air aisé.

Merci à vous tous

Au fait, cela fonctionne pour vous sous 1.4 ?

Share this post


Link to post
Share on other sites

  • 2 months later...

Bonjour,

Lmma vous propose ce module qui a été devellopé par Jeremy en interne
je pense que ceci devrait vous convenir
Creez vos css et integrez les aux catégories que vous souhaitez
compatible V1.4 seulement,
Ce module est en core en test chez nous mais si vous trouvez des choses à ameliorer ou a modifier
Testez Postez Partagez
on attends vos retours !!!

stylecategory.zip

Share this post


Link to post
Share on other sites

  • 1 month later...

Je suis sur 1.4.3

 

un peu dans le meme type de probleme,

je me rend compte que la variable $currentCategoryId est perdue lorsque mon cache est activé.

 

si je l'ecrit dans la page, au premier chargement, le chiffre s'affiche, au second ... rien !

 

ce qui peut etre une piste de résolution de probleme ...

  • Like 1

Share this post


Link to post
Share on other sites

moi je tenterais plutôt des liens relatifs:

 

{if $currentCategoryId eq 1} <link href=”themes/nomdutheme/css/global1.css” rel=“stylesheet” type=“text/css” media=“all” />

{elseif $currentCategoryId eq 2} <link href=”themes/nomdutheme/css/global2.css” rel=“stylesheet” type=“text/css” media=“all” />

{elseif $currentCategoryId eq 3} <link href=”themes/nomdutheme/css/global3.css” rel=“stylesheet” type=“text/css” media=“all” />

{/if}

 

Moi j'ai fait ca et ca marche aussi.

{if $category->id == 'XX'}
<link href="XXXX/XXXX.css" rel="stylesheet" type="text/css" media="all" />
{/if}

c'est quoi la différence et qu'est ce qui est mieux entre "$currentCategoryId eq XX" et "$category->id == 'XX'"

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Bonjour, <br/><br/>Lmma vous propose ce module qui a été devellopé par Jeremy en interne <br/>je pense que ceci devrait vous convenir<br/>Creez vos css et integrez les aux catégories que vous souhaitez<br/>compatible V1.4 seulement, <br/>Ce module est en core en test chez nous mais si vous trouvez des choses à ameliorer ou a modifier <br/>Testez Postez Partagez<br/>on attends vos retours !!!

ça marche plutôt pas mal, cette histoire. Quelques erreurs sur les foreach quand aucun style n'est rempli, ou quand on appelle des numéros de catégorie qui n'existent pas.

Mais après, ça marche bien, et c'est plutôt pratique.

Ce qui serait bien, ce serait de rajouter une option pour simplement lier une feuille de style complète.

 

Ah non, il manque un truc important : ça ne marche que sur les catégories, mais pas sur les produits de cette catégorie, ni je suppose sur les sous-catégories...

  • Like 1

Share this post


Link to post
Share on other sites

  • 1 year later...

désolé de reouvir ce topic

 

mais j'aurais besoin de savoir si une personne a trouver une solution pour afficher un global.css différent selon la catégorie (sous catégorie et produit de cette même catégorie) pour le 1.4.8

 

merci à vous

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More