NCMarketing Posted March 3, 2016 Share Posted March 3, 2016 (edited) Bonjour à tous, Voilà plusieurs semaines que mes recherches sont restées vaines. Je suis à la recherche d'un module qui permettrait de personnaliser les pages catégorie de mon prestashop. Exemple : Je dispose d'une catégorie mère qui regroupe des sous catégories : Catégorie 1 Catégorie A Catégorie B Catégorie C Lorsqu'un utilisateur affiche la catégorie 1, cela affiche les produits présents dans les catégories A, B et C. Or, chacune de ces sous-catégorie dispose de nombreux produits ce qui propose donc à l'utilisateur de multiples pages. Le taux de rebond sur cette page est affligeant et pourtant elle est la clés de mon référencement et figure parmi les pages les plus visitées de ma boutique. Je souhaiterais installer un module qui me permettrait d'afficher ce que je souhaite sur la page de la catégorie 1. Si possible en HTML. En gros, plutôt que de proposer une page qui affiche une multitude de produits de façon anarchique, je souhaiterais afficher des bannières et du texte. J'avais donc bien pensé à étendre le nombre de caractère de la description de la catégorie et y insérer mon code HTML directement depuis le back-office, cependant cette solution "pirate" n'est pas satisfaisante en terme de rendu. Quelqu'un aurait une idée ? Merci d'avance Edited April 28, 2016 by NCMarketing (see edit history) Link to comment Share on other sites More sharing options...
NCMarketing Posted March 16, 2016 Author Share Posted March 16, 2016 Bonjour à tous, Je me permet de reformuler ma demande qui semble un poil complexe : Est-il possible, depuis le fichier category.tpl de faire appel à un fichier particulier lorsqu'un catégorie particulière est affichée : En gros, je souhaiterais lorsque la catégorie portant l'ID 7 est appelée par l'utilisateur que sur cette page on affiche le fichier id-7.tpl (par exemple) ? Merci d'avance pour vos retours Link to comment Share on other sites More sharing options...
Oron Posted March 29, 2016 Share Posted March 29, 2016 Bonjour, Je ne perçois pas bien le problème que vous posez. Par défaut sur la page catégorie prestashop affiche l'image de la catégorie, la description, les sous catégorie, ... Vous désirez un fonctionnement différent ? Soyez plus précis, nous pouvons bien vous aider. Contactez nous par mail si vous le voulez bien : [Modéré veuillez respecter le thème du forum] Bonjour Recherche d'un module ou d'un thème Vous cherchez à ajouter des fonctions à PrestaShop ou à modifier son apparence et avez besoin de conseils ? Postez votre demande ici ! Toute aide apportée doit être faite sur le forum et non par e-mail, en-dehors de proposition de réponse par e-mail c'est supposé être une offre payante. Link to comment Share on other sites More sharing options...
Guest Posted March 29, 2016 Share Posted March 29, 2016 dans le fichier controllers/front/CategoryController.php vous trouverez ce code /** Initializes page content variables **/ public function initContent() { parent::initContent(); $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); celui-ci peut donc être modifié, en faisant un fichier d'override, afin d'afficher "category_html7.tpl" au lieu de category.tpl selon l'ID de la catégorie. voici l'override à appeller "CategoryController.php" et à mettre ici : /override/controllers/front/CategoryController.php class CategoryController extends CategoryControllerCore { public function initContent() { parent::initContent(); if ($id_category = 7 ) { $this->setTemplate(_PS_THEME_DIR_.'category_html7.tpl'); } else { $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); } if (!$this->customer_access) { return; } if (isset($this->context->cookie->id_compare)) { $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)$this->context->cookie->id_compare)); } // Product sort must be called before assignProductList() $this->productSort(); $this->assignScenes(); $this->assignSubcategories(); $this->assignProductList(); $this->context->smarty->assign(array( 'category' => $this->category, 'description_short' => Tools::truncateString($this->category->description, 350), 'products' => (isset($this->cat_products) && $this->cat_products) ? $this->cat_products : null, 'id_category' => (int)$this->category->id, 'id_category_parent' => (int)$this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize(ImageType::getFormatedName('category')), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'thumbSceneSize' => Image::getSize(ImageType::getFormatedName('m_scene')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'allow_oosp' => (int)Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int)Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers(), 'body_classes' => array($this->php_self.'-'.$this->category->id, $this->php_self.'-'.$this->category->link_rewrite) )); } } ensuite vous dupliquer votre fichier category.tpl et le renommez en category_html7.tpl et vous pouvez modifier le contenu comme bon vous semble dans ce fichier pour arriver à vos fins. Link to comment Share on other sites More sharing options...
NCMarketing Posted March 30, 2016 Author Share Posted March 30, 2016 Bonjour, Je vais essayer ça et reviens vers vous avec les résultats. Merci beaucoup ! Link to comment Share on other sites More sharing options...
Ariane Web et Plus Posted April 22, 2016 Share Posted April 22, 2016 Bonjour, Quels éléments souhaitez vous afficher sur votre page catégorie ? Parce que créer une page par catégorie cela me semble alourdir le système pour pas grand chose, sauf si vous souhaitez des pages avec une organisation complètement différentes pour chaque catégorie Vous pouvez tout à fait modifier la page category.tpl, si vous maîtrisez le html, smarty n'est pas trés difficile à comprendre. Bonne journée Link to comment Share on other sites More sharing options...
Guest Posted April 22, 2016 Share Posted April 22, 2016 Bonjour, Je vais essayer ça et reviens vers vous avec les résultats. Merci beaucoup ! Vous avez eu le temps de tester ? pourriez vous nous faire un retour ? Merci d'avance. Link to comment Share on other sites More sharing options...
NCMarketing Posted April 28, 2016 Author Share Posted April 28, 2016 (edited) Bonjour, Quels éléments souhaitez vous afficher sur votre page catégorie ? Parce que créer une page par catégorie cela me semble alourdir le système pour pas grand chose, sauf si vous souhaitez des pages avec une organisation complètement différentes pour chaque catégorie Vous pouvez tout à fait modifier la page category.tpl, si vous maîtrisez le html, smarty n'est pas trés difficile à comprendre. Bonne journée C'est exactement ce que je cherche. Vous avez eu le temps de tester ? pourriez vous nous faire un retour ? Merci d'avance. Oui, hélas cela ne fonctionne pas. Il affiche ma page category_html7.tpl sur toutes les catégories. J'ai peut être fais une erreur en ce qui concerne le premier morceau de code que vous avez affiché dans le fichier controllers/front/CategoryController.php vous trouverez ce code /** Initializes page content variables **/ public function initContent() { parent::initContent(); $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); J'ai bel et bien ce code, mais quelle modification dois-je y apporter ? Merci pour votre aide Edited April 28, 2016 by NCMarketing (see edit history) Link to comment Share on other sites More sharing options...
Guest Posted April 28, 2016 Share Posted April 28, 2016 C'est exactement ce que je cherche. Oui, hélas cela ne fonctionne pas. Il affiche ma page category_html7.tpl sur toutes les catégories. J'ai peut être fais une erreur en ce qui concerne le premier morceau de code que vous avez affiché J'ai bel et bien ce code, mais quelle modification dois-je y apporter ? Merci pour votre aide je vous ai tout indiqué dans le premier post : il faut mettre en place un override et non modifier le code source, de mon coté n'ayant pas eu de retour j'avais même oublié de tester, mais ça devrait fonctionner normalement . Link to comment Share on other sites More sharing options...
Guest Posted April 28, 2016 Share Posted April 28, 2016 je viens de tester et effectivement y'avait un petit souci.. voici une version fonctionnelle <?php class CategoryController extends CategoryControllerCore { public function initContent() { parent::initContent(); $category = ((int)$this->category->id); if ( $category==7 ) { $this->setTemplate(_PS_THEME_DIR_.'category_html7.tpl'); } else { $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); } if (!$this->customer_access) { return; } if (isset($this->context->cookie->id_compare)) { $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)$this->context->cookie->id_compare)); } // Product sort must be called before assignProductList() $this->productSort(); $this->assignScenes(); $this->assignSubcategories(); $this->assignProductList(); $this->context->smarty->assign(array( 'category' => $this->category, 'description_short' => Tools::truncateString($this->category->description, 350), 'products' => (isset($this->cat_products) && $this->cat_products) ? $this->cat_products : null, 'id_category' => (int)$this->category->id, 'id_category_parent' => (int)$this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize(ImageType::getFormatedName('category')), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'thumbSceneSize' => Image::getSize(ImageType::getFormatedName('m_scene')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'allow_oosp' => (int)Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int)Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers(), 'body_classes' => array($this->php_self.'-'.$this->category->id, $this->php_self.'-'.$this->category->link_rewrite) )); } } ?> voilà ! Link to comment Share on other sites More sharing options...
NCMarketing Posted April 28, 2016 Author Share Posted April 28, 2016 Rahh, yes, ça marche Merci beaucoup !!! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now