Jump to content

Astuce pour appliquer une propriété CSS (commune à toutes les pages) à UNE page en particulier


vins

Recommended Posts

Bonjour,

Ce post s'adresse aux développeurs sous Prestashop... désolé pour les autres (si besoin de plus d'explication me contacter!)
Voilà j'utilise une petite astuce pour appliquer une propriété css à une page et uniquement cette page.
Avec un exemple ce sera plus clair:
Admettons que je veuille que la propriété css "center_column" définie dans global.css soit différente dans la page product.php alors je crée un module acrroché à un hook de cette page (par exemple le hook extraLeft) qui appelle une feuille css dans laquelle je définit la propriété center_column differrement...


C'est trés pratique si l'on veut customizer Prestashop à sa guise.
Voici un exemple de module que j'utilise pour notre site. Il me sert à redéfinir la largeur de la colonne ""center_column" dans la page product.php.
Ceci n'est qu'un exemple et ne doit pas être utilisé tel quel... c'est juste pour comprendre la méthode.
Voilà, si vous avez des questions n'hésitez pas réagir, je vous répondrai avec plaisir.
@plus.

blockpixoapplycssonproductpage.zip

Link to comment
Share on other sites

Il n'a pas fonctionné. Tout les blocs, tanto du centre, comme de la droite, ils ont été déplacés en bas des blocs de la gauche.

It did not function. All the blocks, as much of the center, as of the right, they had been moved for below of the blocks of the left.

Link to comment
Share on other sites

Oui

En fait c'est une surcharge CSS ;-)

En tout cas ça fonctionne très bien. On peut aussi (pas testé mais doit fonctionner) appliquer des mises en forme spécifiques directement dans global.css, car toutes les pages sont nommées.

Par exemple une page affichant une catégorie a la balise BODY identifiée par l'ID CSS "category".

On peut donc définir les CSS comme suit :

/* style qui s'appliquera par défaut à toutes les pages */
#center_column {
   width: 556px;
   margin: 0 0 30px 0;
}


...

/* à écrire APRÈS les lignes ci-dessus : style spécifique pour la page catégories */
#category #center_column {
   width: 756px;
   margin: 0 0 30px 0;
}



On peut faire de même avec de nombreuses pages : "product" pour page produit, "index" pour la page d'accueil, etc...

Link to comment
Share on other sites

Salut,
Je viens de vérifier le global.css et la page category.tpl que tu cites en en exemple... Je ne pense pas que ta méthode fonctionne (pas testé aussi) car tu n'as pas de

qui englobe tout le code de la page .tpl. Donc tu ne pourras pas surcharger ton css de cette façon.
L'inconvéniant de ma méthode, c'est qui'l n'existe parfois pas de hook dans la page que tu veux surcharger... soit... et bien je me suis créé un module (installé au tout début de l'install de Presta) qui m'installe tous les hooks dont j'ai besoins dans la table ps_hook (j'ai au pararavent bien sur, placé ces hook aux endroits qui vont bien dans le .php et le .tpl) C pratique.

A plus
Link to comment
Share on other sites

Génial ! J'avais pas fais attention que chaque page comprenait son body avec son id propre ! Ca c'est une trés bonne nouvelle pour la customisation de presta... sans tout casser du global.css existant.
En fait je cherche par tous les moyens à personnaliser comme je l'entends mon site en essayant de toucher le moins possible au code presta. En effet, mes fichiers étant connectés au SVN, j'ai planifié de mettre à jours ces mêmes fichiers au moment de la sortie de chaque version. Et pour que cela se passe sans trop de casse il faut éviter de casser la structure du code.
Avec ta remarque fort judicieuse, je vois donc cette méthode pour customizer le theme existant:
1. Créer un module qui accroche ta "surcouche CSS" au hook {$HOOK_HEADER} présent dans le header.tpl.

2. La "surcouche CSS" serait un simple appel vers des fichiers CSS contenus dans un rep "/css" du module et il faudrait pour plus de clarté creer un fichier CSS pour chaque page que l'on souhaite customizer. Ou un seul c'est au choix...

Bon j'ai pas testé mais cela marche c'est quasiment sûr !
Qu'en penses-tu ?

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...