avril 2017

Prestashop : Passer au déploiement continu

Vous mettez encore à jour vos sites via Ftp ? Vous perdez du temps à déployer votre code lors de chaque livraison de nouvelle fonctionnalité ?
Il est temps d’optimiser cela et de passer au déploiement continu !

Pour l’exemple nous allons voir comment mettre en place du déploiement continu sur un site prestashop de base ( version 1.6.1.x ).
L’exemple est assez basique, mais peut servir de base pour des stratégies de déploiement plus complexes.

Les prérequis étant les suivants :

  • site hébergé sur un hébergement avec accès SSH

Pour mettre en place ce processus nous allons utiliser les outils suivants :

  • git
  • gilab

Les étapes à réaliser seront les suivantes :

 1/ Création du projet sur gitlab

Pour commencer il faut s’inscrire sur gitlab.com.
Vous pouvez ensuite créer votre projet en mode public ou privé selon vos besoins.…

Prestashop : Passer au déploiement continu Lire la suite »

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 »