juin 2017

Prestashop : Ajouter des champs dans un formulaire d’administration

Depuis la version 1.6 de Prestashop, il est possible de rajouter rapidement et facilement le formulaire d’édition d’un objet dans l’administration via un module personnalisé.
Et ceci sans surcharge particulière en utilisant tout simplement les hooks existants.

Les objets éditables via cette méthodes sont ceux qui utilisent l’ancien fonctionnement (non symfony ) de l’administration.
Vous pouvez consulter cet article pour les identifier facilement : https://www.h-hennes.fr/blog/2019/07/25/prestashop-1-7-identifier-si-un-controller-admin-a-ete-migre-vers-symfony/

pour ajouter des champs sur le produit vous pouvez consulter l Prestashop 1.7 : Ajouter des champs produit

Cette modification est réalisable via les hooks dynamiques suivants :

Dans la fonction renderForm de la classe AdminController

Hook::exec('action'.$this->controller_name.'FormModifier')

Dans la fonction postProcess de la classe AdminController via aux choix les hooks suivants :

//Avant l'exécution de l'action du controller admin
Hook::exec('actionAdmin'.ucfirst($this->action).'Before', array('controller' => $this));
Hook::exec('action'.

Prestashop : Ajouter des champs dans un formulaire d’administration Lire la suite »

Fichier .gitignore pour site prestashop de production

Une petite ressource rapide, voici un fichier .gitignore optimisé pour gérer votre site Prestashop ( < 1.7 ) en mode projet

.idea/
/admin-dev/autoupgrade/backup
/admin-dev/backups
/admin-dev/export
/cache/
!/cache/index.php
!/cache/*/index.php
/config/xml/
!/config/xml/index.php
!/config/xml/.htaccess
!/config/xml/themes/index.php
/download
!/download/index.php
!/download/.htaccess
/img/
!/img/index.php
!/img/admin
!/img/jquery-ui
!/img/*/index.php
!/img/*/.htaccess
/log
!/log/index.php
!/log/.htaccess
/modules/*/config*.xml
/themes/*/cache
!/themes/*/cache/index.php
/tools/tcpdf/cache
!/tools/tcpdf/cache/index.php
/upload
!/upload/.htaccess

Fichier .gitignore pour site prestashop de production Lire la suite »

Prestashop 1.7 : Les widgets

La version 1.7 apporte une nouveauté intéressante dans le développement des modules : les widgets

Le principe est relativement simple et pratique, vous pouvez à n’importe quel endroit dans un template afficher le contenu de votre module via le code suivant.
Les exemples ci-dessous sont basé sur le module hh_samplemodule ( sur la branche 17 disponible sur github )

{widget name="hh_samplemodule"}

Vous pouvez également passer n’importe quel paramètre et le récupérer dans votre code

{widget name="hh_samplemodule" hook="top" var1="test" var2="test2" allvars="test"}

Comment l’implémenter dans votre module :

C’est très simple il suffit d’implémenter l’interface WidgetInterface via le code suivant :

use PrestaShop\PrestaShop\Core\Module\WidgetInterface;
class Hh_Samplemodule extends Module implements WidgetInterface

Puis de définir les fonctions renderWiget et getWidgetVariables via le code suivant par exemple

 /**
     * Affichage du widget
     * @param type $hookName
     * @param array $configuration : Ensemble des variables du widget
     * @return array
     */
    public function renderWidget($hookName = null, array $configuration = []) {
        //En fonction des variables du widget 
        //vous pouvez mettre en place des conditions d'affichage
        $this->smarty->assign($this->getWidgetVariables($hookName, $configuration));
        return $this->display(__FILE__, 'views/templates/widget/sample.tpl'

Prestashop 1.7 : Les widgets Lire la suite »

Magento : Configurer plusieurs boutiques sur une seule instance

Nativement la plateforme Magento permets de créer plusieurs sites webs totalement différents tout en utilisant le même code et le même dossier sur votre serveur et cela avec des urls différentes !

Il est cependant ensuite nécessaire de réaliser un mapping pour que Magento trouve quelle boutique charger avec quelle url

En partant des pré-requis suivants :

  • votre configuration apache ou nginx est déjà en place et que l’ensemble des noms de domaines pointent bien vers le même dossier
  • Nous allons tester 3 sites
    • www.shop.fr ( Site FR / Code du magasin magento : fr )
    • www.shop.de ( Site DE / Code du magasin magento : de )
    • www.shop.com ( Site EN / Code du magasin magento : en )
  • Les configurations des magasins sont en place dans magento

Nous allons voir ensemble les différentes possibilités qui existent pour réaliser cela.

Serveur Apache : fichier .htacess
Editer le fichier .htacess situé à la racine de magento et rajouter les lignes suivantes

SetEnv MAGE_RUN_TYPE store
SetEnvIf Host www\.shop\.fr

Magento : Configurer plusieurs boutiques sur une seule instance Lire la suite »