Étiquette : module

[Prestashop 1.6+] Créer un override pour un module

Depuis la version 1.6, les équipes de Prestashop ont mis en place (enfin !) un système d’override des modules, propre et natif.

Dans ce tutoriel, je vais vous montrer comment l’utiliser et vous vous en rendrez compte, c’est très simple.

Admettons que nous souhaitons greffer le module « blocksearch » dans le hook displayFooter.

Commençons par :

  1. Créer un dossier du nom du module (ici « blocksearch ») dans le dossier /override/modules
  2. Dans ce fichier, créer le fichier « blocksearch.php »

 

Nous allons maintenant éditer ce fichier. D’abord, déclarons la classe :

<?php

class BlockSearchOverride extends BlockSearch {


}

Vous noterez que la spécificité de ce nouveau système d’override est ainsi l’ajout du suffixe « Override » au nom de la classe (au lieu de « Core » pour les classes ou les controllers).

 

Enfin, pour ajouter le hook en question, rien de plus simple :

public function hookDisplayFooter($params) {
	return $this->hookTop($params);
}

Il ne vous reste plus qu’à vider le cache de l’autoload en utilisant l’une de ces méthodes :

  • Back-office > Paramètres avancés > Performances : bouton « Vider le cache » en haut à droite
  • Suppression du fichier /cache/class_index.php

Le tour est joué !

[Prestashop] Au secours ! Paypal ne fonctionne plus sur ma boutique !

Si vous êtes ici, c’est que comme toutes les personnes ayant installé le module Paypal sur leur boutique, celui-ci ne fonctionne plus.

Ce qui est sympa pour vous, c’est que je vais vous dire comment y remédier !

 

La cause du bug m’est encore inconnue. Tout ce que je peux vous dire, c’est que Paypal a du modifier son appel API / webservice (que sais-je ?) et ainsi, votre module ne fait plus le lien.

 

La résolution du bug, elle, est facile. Il vous suffit de mettre à jour votre module.

Vous pouvez soit le faire directement depuis votre back-office, soit en passant par Addons.

Pour cela, rendez-vous sur Prestashop Addons et téléchargez le module. Dans votre back-office, uploadez-le ensuite comme n’importe quel module et le tour est joué 😉

 

Important : Normalement, la mise à jour conserve tous vos identifiants Paypal. Sauvegardez tout de même vos identifiants avant de faire la mise à jour.

Changer de base de données dans un module

Il y a peu, j’ai du développer un site qui récupérait des infos dans une autre base de données sous Joomla!. J’ai longtemps cherché comment indiquer à Joomla! les nouvelles informations de connexion, jusqu’à trouver le fameux Graal, que voici :

$option = array();
$option['driver']   = 'mysql'; 
$option['host']     = $alt_host;
$option['user']     = $alt_user;
$option['password'] = $alt_password;
$option['database'] = $alt_databse;
$option['prefix']   = $alt_prefix;

$db = & JDatabase::getInstance($option);

Je vous conseille fortement l’utilisation de variables comme dans l’exemple ci-dessus, ou de constantes si vous ne savez pas comment les utiliser.

Ceci vous permettra de stocker ces informations dans le fichier configuration natif de Joomla!.

Cette astuce est valable sur la version 2.5 de Joomla!, et sauf preuve du contraire sur la version 3 qui est sortie récemment.