module prestashop

Prestashop 1.7 : Correction bug traduction dans controller admin d’un module

La dernière version de Prestashop 1.7 apporte de nombreux changements ( j’ y reviendrais sans doute plus longuement dans un article à venir ), et notamment dans la gestion des traductions dans l’administration.

Celle-ci se base à présent sur Symfony, tout en gardant quand même une rétrocompatibilité (théorique ) avec l’ancien système.
Les dernières recommandations ( à date ) de l’équipe Prestashop étaient de conserver l’ancien système de traduction pour les modules.

Dans le cadre de l’adaptation de l’un de mes module j’ai cependant fait face à la problématique suivante , impossible d’accéder à mon controller Admin, et affichage de la belle page d’erreur suivante :

Erreur traduction prestashop

Après analyse, du code erreur :

FatalErrorException in AdminController.php line 2735: Error: Call to a member function trans() on null

il s’avère que la fonction de traduction des modules ne marchait pas correctement dans mon cas et j’ai du surcharger cette fonction dans mon controller.

Voici donc le code qui a permis de faire fonctionner le module correctement

 /**
     * Surcharge de la fonction de traduction sur PS 1.7 et supérieur.
     * La fonction globale ne fonctionne pas
     * @param type $string
     * @param type $class
     * @param type $addslashes
     * @param type $htmlentities
     * @return type
     */
    protected function l($string, $class = null, $addslashes = false, $htmlentities = true)
    {
        if ( _PS_VERSION_ >= '1.7') {
            return Context::getContext()->getTranslator()->trans($string);
        } else {
            return parent::l($string, $class, $addslashes, $htmlentities);
        }
    }

Si vous avez aussi rencontré ce problème et trouvé une autre solution n’hésitez pas à la partager 😉…

Prestashop 1.7 : Correction bug traduction dans controller admin d’un module Lire la suite »

Prestashop : Module Scroll To Top

J’ai récemment installé sur ce blog le plugin wordpress « Dynamic to Top » que je trouve très pratique à utiliser et vraiment intuitif à l’utilisation.
Dans le cadre d’un projet Prestashop, j’ai donc décidé de créer un module Prestashop reprenant ces fonctionnalités.
Celui-ci se base sur le script de l’auteur du plugin wordpress disponible à l’adresse suivante : http://mattvarone.com/web-design/uitotop-jquery-plugin/

Le plugin fera dynamiquement apparaitre une image avec un lien de retour vers le haut de page sur l’ensemble des pages trop longues du site. (Le bloc encadré en rouge sur la capture ci-dessous)

Prestashop scroll to top

Aucune configuration n’est nécessaire, le module est fonctionnel dès son installation

Vous pouvez télécharger ce module : Module Prestashop Scroll To Top
( Attention fonctionne uniquement avec prestashop 1.5.xx )

Edit 11/11/2013 : La nouvelle version du module est également compatible prestashop 1.4.x…

Prestashop : Module Scroll To Top Lire la suite »

Prestashop 1.5.x : Ajouter un css ou un javascript d’un module uniquement sur un controlleur

Dans le cadre du développement d’un nouveau module pour un site tournant sous prestashop 1.5,  celui-ci nécessite l’utilisation de fichiers css et javascripts spécifiques pour son bon fonctionnement.
Cependant ce module étant uniquement utilisé sur la fiche produit, je ne voyais pas l’intérêt de charger inutilement ces fichiers sur l’ensemble des pages du site.

Voici donc une astuce qui vous permettra de charger vos fichiers uniquement dans le controlleur nécessaire :
ProductController est donc à remplacer par le controller dans lequel vous souhaitez insérer vos contenus.

/**
* Hook Header Prestashop
* @param type $params
*/
public function hookHeader($params){
 
//Récupération du contexte
$context = Context::getContext();
 
//On ajoute uniquement nos éléments dans la fiche produit donc le controller "ProductController"
 if ( $context->controller instanceof ProductController ) {
 
 $this->context->controller->addCSS(($this->_path).'module-style.css', 'all');
 $this->context->controller->addJS(($this->_path).

Prestashop 1.5.x : Ajouter un css ou un javascript d’un module uniquement sur un controlleur Lire la suite »