[TUTO] créer un modulefrontcontroller avec Prestashop - PrestaSafe
PrestaSafe.com
  • Accueil 
  • Prestashop
    • Présentation de Prestashop 
    • Support et assistance pour Prestashop 
    • Création de votre boutique de vente en ligne 
    • Cartzilla, un thème PrestaShop Performant, Mobile et SEO 
    • Migration PrestaShop 
    • Maintenance technique pour site E-commerce PrestaShop 
  • Blog 
  • Devis en ligne 
  • Boutique 
  • Contact 
  • Mon compte 
    ecommerce, prestashop

    [TUTO] créer un modulefrontcontroller avec Prestashop

    1. By guillaume
    2. No Comments

    20 Sep

    PrestaShop solution e-commerce

    Comme vous le savez, avec Prestashop, vous avez la possibilité d’ajouter un point d’entrée (endpoint) depuis un module.

    Pour cela il faut faire ce que l’on appel un ModuleFrontController.

    Comment faire un Front Controller depuis un module Prestashop ?

    La manipulation n’a rien de compliquée, j’ai du creuser un peu partout parce que la documentation officielle manque d’un peu de détails mais au final c’est très simple.

    1 – votre module doit avoir un dossier /controllers/ puis à l’intérieur de celui-ci un dossier front (back pour le backoffice)

    2 – Ajouter un fichier php que vous nommé comme vous le souhaitez (notre exemple: display.php)

    3 – dans le display.php crééz une classe qui étends la classe ModuleFrontController

    ex:

    
    if (!defined('_PS_VERSION_'))
            exit;
    
    
    class monmoduledisplayModuleFrontController extends ModuleFrontController
    {
    
      public function __construct()
      {
        parent::__construct();
        
      }
      
      public function initContent()
      {
        parent::initContent();
        $this->setTemplate('account-controller.tpl');
    
      }
    
    
    }
    ?>

    EDIT:
    Si vous êtes en PrestaShop 1.7, le `setTemplate` devra être comme ceci:


    $this->setTemplate('module:monmodule/views/templates/front/account-controller.tpl');

    désormais, votre module possède bien un front controller.

    Voici l’architecture d’un module d’exemple:

    Le nom de la classe doit absolument être composé comme tel:

    {nomdumodule}{nomducontroller}ModuleFrontController

    dans notre cas:

    monmoduledisplayModuleFrontController

    En ce qui concerne le template dans le initContent() on ajoute un template que vous devez placer dans:

    /votremodule/views/templates/front/account-controller.tpl

    Maintenant il ne vous manque plus qu’a avoir le lien de celui-ci, pour cela, utilisez la classe Link de PS:

    avec smarty:

    {$link->getModuleLink('nom_dossier_module','nom_fichier_php')}

    donc:

    {$link->getModuleLink('monmodule','display')}

    avec php:

    $this->context->link->getModuleLink('monmodule','display');
    
    

    l’url est du type:

    http://locahost/prestashop/module/monmodule/display

    N’hésitez pas à poser vos questions en commentaire.

    Enjoy 😉

    share:
    No Comments

    Articles similaires

    23 Juil

    PrestaShop solution e-commerce

    Thème PrestaShop 1.7 100% seo et personnalisable

    27 Sep

    PrestaSafe développeur freelance

    Comment installer un thème PrestaShop ?

    24 Oct

    Interview par Maketing301

    Loading...

    Insérer/modifier un lien

    Saisissez l’URL de destination

    Ou alors, faites un lien vers l’un des contenus de votre site

      Aucun mot n’a été donné pour cette recherche. Voici les recherches précédentes. Recherchez ou utilisez les flèches haut et bas pour choisir un élément.