Ajouter un Hook sur votre boutique E-commerce Prestashop

Prestashop solution E-commerce pour création de site Internet
Prestashop, la solution E-commerce multi-langues

Force est de reconnaître que le thème graphique qui est fourni par défaut avec Prestashop est très bien conçu. Cependant, celui-ci ne répond pas forcément à vos attentes et besoins et certainement, souhaitez-vous, vous démarquer de la concurrence.

Il est bien entendu possible de vous procurer d’autres thèmes directement sur le site de Prestashop moyennant quelques royalties. Mais là encore, le thème choisit risque de ne vous satisfaire que partiellement. Reste alors la solution qui consiste à construire votre propre thème pour peu que vous ayez quelques connaissances sur le langage HTML/CSS ainsi qu’en PHP /MySQL. De même, la maîtrise de logiciels graphiques tels que Photoshop, Illustrator et pourquoi pas Dreamweaver et Flash peut vous être d’une aide précieuse.

Décision prise de construire votre propre thème Prestashop, vous vous lancez dans la bataille. Et c’est alors que structurellement, il serait bienvenu d’ajouter un hook pour positionner un ou plusieurs modules de votre choix à un endroit donné. Chose qui n’est pour l’instant pas possible de par votre thème de départ. Rien de plus facile depuis la version 1.4. Quatre étapes et le tour est joué :

  1. 1. Déclaration du hook dans la table ps_hook
  2. 2. Implémentation du hook dans le fichier FrontController.php (via l’override)
  3. 3. Déclaration du hook dans le module
  4. 4. Insertion du hook dans la page TPL

Etape 1 :

Exécutez cette requête dans votre base de données MySQL :

INSERT INTO ps_hook ( name, title, description, position, live_edit) VALUES ( ‘myhook’, ‘myhook’, NULL, 1, 1);

Etape 2 :

Contrairement à ce qui a été dit dans la version précédente de cet article, il plus judicieux de surcharger la classe frontControllerCore que de déclarer directement son nouveau hook dans le fichier classes/FrontController.php

En effet, lors d’une mise à jour de la version de Prestashop, cela évite d’écraser les modifications apportées. Merci à Olivier CLEMENCE pour la méthode.

Donc cela consiste à créer un fichier override/classes/frontcontroller.php à l’image de celui-ci :

<?php
class FrontController extends FrontControllerCore {

public function displayHeader()

{ if (!self::$initialized)
parent::init();
self::$smarty->assign(array(
‘HOOK_MYHOOK’ => Module::hookExec(‘myhook’),
));
return parent::displayHeader();
}

}
?>

Etape 3 :

Déclarez dans votre module (mymodule.php) votre nouveau hook afin de pouvoir acrocher votre module au dit hook. Pour exemple :

function hookMyhook($params){
      return $this->hookRightColumn($params);
}

Etape 4 :

Dans votre fichier TPL, il vous suffit de positionner votre hook à l’endroit souhaité en y faisant tout simplement appel.

{$HOOK_MYHOOK}

A présent, à vous de hooker 😉

 

Ajouter un Hook sur votre boutique E-commerce Prestashop
Votez pour ce billet !

5 thoughts on “Ajouter un Hook sur votre boutique E-commerce Prestashop”

  1. Il faut faire attention à l’override aussi. En 1.5 la méthode du FrontController displayHeader est marquée comme deprecated ce qui veut dire que dans l’avenir elle ne sera plus utilisée.

    Il est préférable pour un site qui update régulièrement d’override la fonction initContent :).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *