Jump to content

Recommended Posts

Bonjour,

Il est possible depuis quelques semaines d'avoir un layout / template différent par page (utilisable sur tous les FrontController)

Ex: On peut maintenant avoir pour la fiche produit de l'ipod Nano un layout sans les 2 colonnes et avec une image de background différente du reste du site.

Override du layout

Par défaut on utilise le fichier layout.tpl du theme, ensuite 2 niveau d'override sont définis:

  • L'entité

ex: Je souhaite modifier le layout de la fiche produit ou l'id produit est égal à 1.

On crée un fichier /themes/default/override/layout-product-1.tpl

  • Le type d'entité

ex: Je souhaite changer le layout de toutes les pages catégories

On crée un fichier /themes/default/override/layout-category.tpl

 

Override du template

 

De ce coté là, c'est plus une feature technique, dans le sens ou on ne fait rien de notre coté automatiquement. On permet simplement aux developpeurs de modifier dynamiquement le template en surchargeant la méthode getOverrideTemplate d'un FrontController

  • Like 6
Link to comment
Share on other sites

Ha oui c'est fort ça ! J'avais override le contrôlleur produit pour assigner un autre template suivant des conditions particulières personnellement mais cette méthode parait plus light, plus facile et plus clean :)

 

Je vais aller voir le fameux getOverrideTemplate de ce pas !

Link to comment
Share on other sites

Intéressant comme fonctionnalité.

 

Est-il envisageable de pouvoir spécifier un mayout de page produit pour tous les produits d'une catégorie donnée (et non produit par produit) ?

Link to comment
Share on other sites

Bonjour,

 

J'ai créé un fichier layout-product.tpl comme indiqué dans /themes/default/override/layout-product.tpl avec des header et footer specifiques (sans les colonnes de droite et de gauche) mais rien ne change. J'ai pourtant vidé le cache de smarty (celui du theme est vide).

 

J'ai oublié quelque chose?

 

J'ai la version 1.5.0.9 de PS

 

Merci.

Edited by jherry (see edit history)
Link to comment
Share on other sites

Est-il envisageable de pouvoir spécifier un layout de page produit pour tous les produits

Ce n'est pas possible pour l'instant et ce n'est pas prévu pour la 1.5.0.

 

Essaye avec /themes/default/override/layout-product-1.tpl et teste pour le produit "1" , ça devrait fonctionner

Link to comment
Share on other sites

@coeos.pro

 

Je suggérais de pouvoir faire un layout produit différent suivant la catégorie à laquelle le produit appartient.

D'un sens, si le produit appartient à plusieurs catégories, ca n'est pas trivial de savoir quel layout appliquer

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Et donc au final est-il possible qu'un produit reçoive un template fonction de sa catégorie par défaut ?

Pour Allez plus loin le top serai un template par catégorie pour afficher aussi le listing des produits selon un template/css particulier.

Ex :

Voiture=>Renault => Cadres des produits jaunes dans le listing => mise en page spéciale pour les renault dans la fiche produit

Voiture=>Peugeot=>Cadre bleu dans le listing => etc

 

Possible ou pas ce genre de détails que les clients apprécient (par petite touche évidemment)? ^^

Link to comment
Share on other sites

Bonjour,

Et donc au final est-il possible qu'un produit reçoive un template fonction de sa catégorie par défaut ?

Pour Allez plus loin le top serai un template par catégorie pour afficher aussi le listing des produits selon un template/css particulier.

Ex :

Voiture=>Renault => Cadres des produits jaunes dans le listing => mise en page spéciale pour les renault dans la fiche produit

Voiture=>Peugeot=>Cadre bleu dans le listing => etc

 

Possible ou pas ce genre de détails que les clients apprécient (par petite touche évidemment)? ^^

 

comme par exemple avec ce nouveau module : http://www.prestashop.com/forums/topic/174997-module-personnalisation-des-pages-produits-et-categories/page__p__860298?do=findComment&comment=860298 ?

il est possible de personnaliser les pages produits, les pages catégories et les pages produits en fonction de leur catégorie

Link to comment
Share on other sites

Bonjour,

 

Non ce n'est pas possible "nativement" mais avec un peu de dev custom ce n'est pas infaisable, c'est même plus simple que sur une 1.4.

 

+1, avec un override du contrôleur produit, on peut facilement imaginer l'assignation d'un template différent selon sa catégorie par défaut.

Link to comment
Share on other sites

Découvrant le techno-environnementde presta je m'aperçois de la puissance et faicilité de l'override des classes core. Après même si je peux facilement "imaginer" cet override j'ai plus de mal à le coder étant plus intégrateur+chef de pro. que dev pur souche.

 

Y a-til une piste déjà postée qque part à suivre ou non ? Désolé si la question est orientée "qui la fait pour moi ?" mais dans l'univers joomla il y a tellement de chose déjà faite que les réponses sont soucvent déjà connues de quelqu'uns.

 

Merci de votre aide

Link to comment
Share on other sites

  • 4 weeks later...

C'est un peu le même principe que WordPress : http://codex.wordpre...e_Hierarchy.png

 

Un plus pour prestashop alors :). Justement je commence à me mettre à prestashop et je trouve que c'est pas facile du tout pour un CMS.

 

Par exemple si je veux créer un thème de A à Z je ne sais pas par quoi commencer :/. Surtout si je crée juste un dossier css, img et js pour commencer, comment savoir ce qui gère le JS, les noms des classe, id html etc ? Si on regarde pas le thème par défaut au final on ne sait pas :/ et je trouve ça dommage qu'il n'y ai pas une API comme WordPress. Je viens de regarder quelque tuto pour placer un block ou l'on veut avec des hook personnalisé, c'est la même chose c'est pas "propre" du tout de devoir aller dans la base de donnée pour ajouter une valeur, il faudrait dans le meilleur des cas ajouter ce hook depuis l'administration.

 

Je sais que prestashop est puissant en terme de CMS e-commerce mais pour nous développeur je pense qu'il y a nettement moyen de l'améliorer :) (déjà l'override est une bien bonne nouvelle :))

 

Et merci à l'équipe derrière Prestashop :). Si vous suivez la voix de WordPress alors vous êtes sur la bonne voix pour nous les développeurs :) (comment ça je fais l'apologie de WordPress ? :))

 

PS : Pourquoi utiliser Smarty ? (aucun moteur de tpl serait aussi bien :trollolol: :P) ou alors Twig :) :retroll:

Edited by Rtransat (see edit history)
Link to comment
Share on other sites

Dites, ...

 

Si j'ai un module qui a un hook tel que DisplayAdminHomeInfos pour lequel un tpl est passé et que les données sont, normalement, traduites au sein du module (les traductions sont bien là), comment faire pour qu'elles le soient dans le tpl aussi ?

 

Autant quand il s'agit d'un autre theme en front-office je comprends le mécanisme, autant quand il s'agit d'un autre thème au sein du back-office, non.

 

En bref, les traductions ne sont pas prises en compte. Une idée ?

Link to comment
Share on other sites

Le problème, c'est que ça y est...

 

Mais la structure du module est tel que...:

 

* nomdumodule

-- view/templates/hooks/hookDisplayAdminHomeInfos.tpl

 

J'ai d'abord fait les traductions dans le controller lui-même (car c'est une liste générée) et dans les traductions, le tout est bien traduit.

 

Or, comme j'utilise un autre theme dans le back office (et je pense que ça vient de là), rien n'est traduis. Actuellement, j'ai mis en FR (de toutes, la boutique est purement FR et le module ne sera pas distribué), mais bon :)

Link to comment
Share on other sites

  • 4 weeks later...

Il y a t-il un module qui permet d'afficher de cette manière ? Ou bien un thème ?

 

En fait je souhaiterais pouvoir afficher des produits de cette manière (déclinaisons en liste), et d'autres normalement (avec les attributs sélectionnables).

Link to comment
Share on other sites

Bonjour,

 

je suis en train de faire des tests d'override sur mon thème. J'essaie de réaliser un surcouchage sur product-list.tpl, j'ai donc créé le fichier themes/default/override/layout-productlist.tpl et rien ne ce passe. J'ai fais quelques tests sur category.tpl et la aucun problème.

 

Quelqu'un aurait il une idée ?

Edited by cghisi (see edit history)
Link to comment
Share on other sites

Après avoir fais quelques recherches supplémentaires, j'ai réussi a afficher les layout de la page . Il semblerait que je ne puisse pas surcharger product-list.tpl qui est appelé depuis catégory.tpl mais uniquement category.tpl. Je ne vois donc pas comment je peux modifier le visuel des produits affichés dans une catégorie.

 

De plus en faisant des tests avec "/override/layout-category.tpl", lorsque je réalise une modif dans ce fichier, le header, le footer et le style de ma page disparait.

 

Je pense que j'ai du louper un truc concernant l'override du thème.

Edited by cghisi (see edit history)
Link to comment
Share on other sites

De ce que j'ai pu lire précédemment il semble que pour surcharger un fichier tpl. Celui-ci doit ce nommer "layout-nomdufichier.tpl" dans le dossier "override" du thème . Je viens de faire le test en enlevant "layout-" mais cela ne fonctionne pas aucune modif n’apparaît sur la page.

Link to comment
Share on other sites

  • 3 weeks later...

Bonsoir,

 

Je sèche un peu et j'ai pas trop le temps (l'envie ?) de chercher... l'override de template en admin fonctionne-t-il ? Si oui, comment ?!

 

Edit

 

Je me trompais... Voici: /override/controllers/admin/templates/products/ pour un fichier tpl du controller Product de Back Office, par exemple.

Edited by J. Danse (see edit history)
Link to comment
Share on other sites

  • 5 weeks later...

est-il possible selon le meme prinicipe de surcharger le layout de la page d'accueil ?

j'ai essayé un layout-index.tpl sans succès

 

En regardant la fonction FrontController->getLayout() qui choisit le layout en fonction du controller et des override, dans le cas de la homepage, il prend toujours le layout par défaut (theme/<nom_du_theme>/layout.tpl

 

Donc pas moyen de surcharger le layout de la page d'accueil uniquement.

Un fix à prévoir pour une prochaine version à mon avis.

 

En attendant, 2 solutions :

  1. surcharger la méthode FrontController->getLayout() pour gérer le cas de la homepage
  2. modifier le layout par défaut pour la page d'accueil, et surcharger tous les autres layout

Personnellement, je partirai plutôt sur la solution 1.

Link to comment
Share on other sites

  • 1 month later...

Cette solution fonctionne, il ne me reste plus qu'a trouver pourquoi le header et le footer disparaissent lorsque j'override category.

 

 

Merci ;)

 

j'ai exactement le meme problème, mon header et footer disparait ( il ne charge pas les haeder et footer )

 

as tu trouvé une solution de ton côté?

 

Merci :)

 

[EDIT]

 

Je m'auto répond.

 

en allant voir du côté de la fonction getLayout() du controller FrontController, on se rend compte que le fichier layout est complétement écrasé si une entité existe.

 

Donc il faut remettre au tout début du fichier layout-category.tpl, l'appel au header.tpl, et à la fin l'appel au footer.tpl

Edited by Myst26 (see edit history)
Link to comment
Share on other sites

de mon coté je n'ai pas eu le temps de me replonger sur Prestashop 1.5, je suis actuellement sur d'autres projets. Donc Je n'ai pas pu trouver de solution et j'avais un peu abandonner.

 

Je viens de voir que tu avais trouver une solution, dès que je me remet sur Prestashop je teste celle-ci afin de voir. Du coup pour toi tous fonctionne correctement ?

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...

Bonsoir,

 

J'ai suivi ce topic..

Je l'ai appliqué en créant un fichier /themes/default/override/layout-product-1.tpl

Correction pour le header et le footer ok.

Les modifications en css s'appliquent bien.

 

Seul soucis. Je n'arrive pas à appliquer les traductions.

Les traductions apparaissent en backoffice dans le block layout-product-1.tpl, ainsi que sur le fichier fr.php du répertoire de lang du theme.

Cependant, en front, le texte n'est pas traduit...

 

Version PS 1.5.4.0

Thème : default

 

Une piste serait la bienvenue.

Merci d'avance

Link to comment
Share on other sites

  • 6 months later...
  • 1 month later...

Bonjour,

ce sujet m'intéresse et je voulais savoir si à l'heure actuelle quelqu'un pouvait me dire quelle est LA solution pour appliquer un thème par catégorie (et leur sous catégories et produits bien sûr)

Merci par avance

 

Salut,

 

As-tu trouvé l'information entre temps ?

On est bien d'accord, layout-category-XX.tpl permet de modifier le layout pour cette catégorie uniquement ? Pas pour les sous-catégorie et les produits qui s'y trouve ?

 

Merci

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