Accueil » Conseils & tutoriels sites internet » Tutos Prestashop » Prestashop 1.6 : la liste des hooks

Prestashop 1.6 : la liste des hooks

Posté dans : Tutos Prestashop 2

Les hooks (ou « crochets » en anglais), sont en quelque sorte un énorme porte-manteau pour de nombreux sites internets. Ils permettent d’accrocher des modules ou plugins à des emplacements spécifiques, où en réponse à des actions précises. Par exemple, la majorité des sites disposent d’un hook dit de menu, où l’on accroche tout bêtement notre menu… Il est donc également possible d’accrocher un module en fonction d’une action réalisée par le visiteur (et l’on parle alors de « hook d’action »), comme lors de la validation d’une commande, ou lors de l’enregistrement d’un compte.

En retour d’une action déterminée, le module ou plugin s’exécutera. Prestashop dispose de très nombreux hooks, aussi bien dans l’administration que dans le front-office. Il est très utile de les connaître lors du développement de modules, ou pour débloquer un module que l’on souhaiterait greffer là où il n’est à l’origine pas prévu.

Pour Prestashop 1.7, il vous faudra regarder la liste des hooks ici.

La fonction d’installation et d’enregistrement sur le hook doit ressembler à ceci :

public function install()
    {
        return parent::install() && $this->registerHook('actionAdminLanguagesControllerStatusBefore');
    }

    /**
    * @return bool success
    **/

Les fonctions qui en découlent, pour chaque hook, ressemblent donc à ceci. Notez qu’il est possible de faire un return, pour qu’une fonction de hook left renvoie directement vers la fonction de hook right par exemple. De cette manière, le module sera exactement le même à gauche comme à droite.

Les hooks de l’administration | back-office :

    /**
    * hookActionAdminLanguagesControllerStatusBefore
    *
    * actionAdminLanguagesControllerStatusBefore
    * 
    **/
    public function hookActionAdminLanguagesControllerStatusBefore($params)
    {

    }

    /**
    * hookActionAdminMetaControllerUpdate_optionsBefore
    *
    * actionAdminMetaControllerUpdate_optionsBefore
    * 
    **/
    public function hookActionAdminMetaControllerUpdate_optionsBefore($params)
    {

    }

    /**
    * hookActionAdminMetaSave
    *
    * After save configuration in AdminMeta
    *     **/
    public function hookActionAdminMetaSave($params)
    {

    }

    /**
    * hookActionAttributeDelete
    *
    * On deleting attribute feature value
    *     **/
    public function hookActionAttributeDelete($params)
    {

    }

    /**
    * hookActionAttributeGroupDelete
    *
    * On deleting attribute group
    *     **/
    public function hookActionAttributeGroupDelete($params)
    {

    }

    /**
    * hookActionAttributeGroupSave
    *
    * On saving attribute group
    *     **/
    public function hookActionAttributeGroupSave($params)
    {

    }

    /**
    * hookActionAttributePostProcess
    *
    * On post-process in admin feature value
    *     **/
    public function hookActionAttributePostProcess($params)
    {

    }

    /**
    * hookActionAttributeSave
    *
    * On saving attribute feature value
    *     **/
    public function hookActionAttributeSave($params)
    {

    }

    /**
    * hookActionCarrierProcess
    *
    * Carrier Process
    * 
    **/
    public function hookActionCarrierProcess($params)
    {

    }

    /**
    * hookActionCarrierUpdate
    *
    * Carrier Update
    * This hook is called when a carrier is updated
    **/
    public function hookActionCarrierUpdate($params)
    {

    }

    /**
    * hookActionCartSave
    *
    * Cart creation and update
    * 
    **/
    public function hookActionCartSave($params)
    {

    }

    /**
    * hookActionCategoryAdd
    *
    * Category creation
    * 
    **/
    public function hookActionCategoryAdd($params)
    {

    }

    /**
    * hookActionCategoryDelete
    *
    * Category removal
    * 
    **/
    public function hookActionCategoryDelete($params)
    {

    }

    /**
    * hookActionCategoryUpdate
    *
    * Category modification
    * 
    **/
    public function hookActionCategoryUpdate($params)
    {

    }

    /**
    * hookActionCustomerAccountAdd
    *
    * Successful customer create account
    * Called when new customer create account successfuled
    **/
    public function hookActionCustomerAccountAdd($params)
    {

    }

    /**
    * hookActionFeatureDelete
    *
    * On deleting attribute feature
    *     **/
    public function hookActionFeatureDelete($params)
    {

    }

    /**
    * hookActionFeatureSave
    *
    * On saving attribute feature
    *     **/
    public function hookActionFeatureSave($params)
    {

    }

    /**
    * hookActionFeatureValueDelete
    *
    * On deleting attribute feature value
    *     **/
    public function hookActionFeatureValueDelete($params)
    {

    }

    /**
    * hookActionFeatureValueSave
    *
    * On saving attribute feature value
    *     **/
    public function hookActionFeatureValueSave($params)
    {

    }

    /**
    * hookActionHtaccessCreate
    *
    * After htaccess creation
    *     **/
    public function hookActionHtaccessCreate($params)
    {

    }

    /**
    * hookActionObjectCategoryDeleteAfter
    *
    * actionObjectCategoryDeleteAfter
    * 
    **/
    public function hookActionObjectCategoryDeleteAfter($params)
    {

    }

    /**
    * hookActionObjectCategoryUpdateAfter
    *
    * actionObjectCategoryUpdateAfter
    * 
    **/
    public function hookActionObjectCategoryUpdateAfter($params)
    {

    }

    /**
    * hookActionObjectCmsDeleteAfter
    *
    * actionObjectCmsDeleteAfter
    * 
    **/
    public function hookActionObjectCmsDeleteAfter($params)
    {

    }

    /**
    * hookActionObjectCmsUpdateAfter
    *
    * actionObjectCmsUpdateAfter
    * 
    **/
    public function hookActionObjectCmsUpdateAfter($params)
    {

    }

    /**
    * hookActionObjectManufacturerDeleteAfter
    *
    * actionObjectManufacturerDeleteAfter
    * 
    **/
    public function hookActionObjectManufacturerDeleteAfter($params)
    {

    }

    /**
    * hookActionObjectManufacturerUpdateAfter
    *
    * actionObjectManufacturerUpdateAfter
    * 
    **/
    public function hookActionObjectManufacturerUpdateAfter($params)
    {

    }

    /**
    * hookActionObjectProductDeleteAfter
    *
    * actionObjectProductDeleteAfter
    * 
    **/
    public function hookActionObjectProductDeleteAfter($params)
    {

    }

    /**
    * hookActionObjectProductUpdateAfter
    *
    * actionObjectProductUpdateAfter
    * 
    **/
    public function hookActionObjectProductUpdateAfter($params)
    {

    }

    /**
    * hookActionObjectSupplierDeleteAfter
    *
    * actionObjectSupplierDeleteAfter
    * 
    **/
    public function hookActionObjectSupplierDeleteAfter($params)
    {

    }

    /**
    * hookActionObjectSupplierUpdateAfter
    *
    * actionObjectSupplierUpdateAfter
    * 
    **/
    public function hookActionObjectSupplierUpdateAfter($params)
    {

    }

    /**
    * hookActionOrderDetail
    *
    * Order Detail
    * To set the follow-up in smarty when order detail is called
    **/
    public function hookActionOrderDetail($params)
    {

    }

    /**
    * hookActionOrderReturn
    *
    * Product returned
    * 
    **/
    public function hookActionOrderReturn($params)
    {

    }

    /**
    * hookActionOrderSlipAdd
    *
    * Called when a order slip is created
    * Called when a quantity of one product change in an order.
    **/
    public function hookActionOrderSlipAdd($params)
    {

    }

    /**
    * hookActionOrderStatusPostUpdate
    *
    * Post update of order status
    * 
    **/
    public function hookActionOrderStatusPostUpdate($params)
    {

    }

    /**
    * hookActionOrderStatusUpdate
    *
    * Order's status update event
    * Launch modules when the order's status of an order change.
    **/
    public function hookActionOrderStatusUpdate($params)
    {

    }

    /**
    * hookActionPaymentCCAdd
    *
    * Payment CC added
    *     **/
    public function hookActionPaymentCCAdd($params)
    {

    }

    /**
    * hookActionProductAdd
    *
    * Product creation
    * 
    **/
    public function hookActionProductAdd($params)
    {

    }

    /**
    * hookActionProductAttributeDelete
    *
    * Product Attribute Deletion
    * 
    **/
    public function hookActionProductAttributeDelete($params)
    {

    }

    /**
    * hookActionProductAttributeUpdate
    *
    * Product attribute update
    * 
    **/
    public function hookActionProductAttributeUpdate($params)
    {

    }

    /**
    * hookActionProductCancel
    *
    * Product cancelled
    * This hook is called when you cancel a product in an order
    **/
    public function hookActionProductCancel($params)
    {

    }

    /**
    * hookActionProductDelete
    *
    * Product deletion
    * This hook is called when a product is deleted
    **/
    public function hookActionProductDelete($params)
    {

    }

    /**
    * hookActionProductListOverride
    *
    * Assign product list to a category
    *     **/
    public function hookActionProductListOverride($params)
    {

    }

    /**
    * hookActionProductOutOfStock
    *
    * Product out of stock
    * Make action while product is out of stock
    **/
    public function hookActionProductOutOfStock($params)
    {

    }

    /**
    * hookActionProductSave
    *
    * On saving products
    *     **/
    public function hookActionProductSave($params)
    {

    }

    /**
    * hookActionProductUpdate
    *
    * Product Update
    * 
    **/
    public function hookActionProductUpdate($params)
    {

    }

    /**
    * hookActionShopDataDuplication
    *
    * actionShopDataDuplication
    * 
    **/
    public function hookActionShopDataDuplication($params)
    {

    }

    /**
    * hookActionTaxManager
    *
    * Tax Manager Factory
    * 
    **/
    public function hookActionTaxManager($params)
    {

    }

    /**
    * hookActionUpdateQuantity
    *
    * Quantity update
    * Quantity is updated only when the customer effectively place his order.
    **/
    public function hookActionUpdateQuantity($params)
    {

    }

    /**
    * hookActionValidateOrder
    *
    * New orders
    * 
    **/
    public function hookActionValidateOrder($params)
    {

    }

    /**
    * hookActionWatermark
    *
    * Watermark
    * 
    **/
    public function hookActionWatermark($params)
    {

    }

    /**
    * hookDisplayAdminCustomers
    *
    * Display in Back-Office, tab AdminCustomers
    * Launch modules when the tab AdminCustomers is displayed on back-office.
    **/
    public function hookDisplayAdminCustomers($params)
    {

    }

    /**
    * hookDisplayAdminOrder
    *
    * Display in Back-Office, tab AdminOrder
    * Launch modules when the tab AdminOrder is displayed on back-office.
    **/
    public function hookDisplayAdminOrder($params)
    {

    }

    /**
    * hookDisplayAdminStatsGraphEngine
    *
    * Graph Engines
    * 
    **/
    public function hookDisplayAdminStatsGraphEngine($params)
    {

    }

    /**
    * hookDisplayAdminStatsGridEngine
    *
    * Grid Engines
    * 
    **/
    public function hookDisplayAdminStatsGridEngine($params)
    {

    }

    /**
    * hookDisplayAdminStatsModules
    *
    * Stats - Modules
    * 
    **/
    public function hookDisplayAdminStatsModules($params)
    {

    }

    /**
    * hookDisplayAttributeForm
    *
    * Add fields to the form "attribute value"
    *     **/
    public function hookDisplayAttributeForm($params)
    {

    }

    /**
    * hookDisplayAttributeGroupForm
    *
    * Add fields to the form "attribute group"
    *     **/
    public function hookDisplayAttributeGroupForm($params)
    {

    }

    /**
    * hookDisplayAttributeGroupPostProcess
    *
    * On post-process in admin attribute group
    *     **/
    public function hookDisplayAttributeGroupPostProcess($params)
    {

    }

    /**
    * hookDisplayBackOfficeFooter
    *
    * Administration panel footer
    * 
    **/
    public function hookDisplayBackOfficeFooter($params)
    {

    }

    /**
    * hookDisplayBackOfficeHeader
    *
    * Administration panel header
    * 
    **/
    public function hookDisplayBackOfficeHeader($params)
    {

    }

    /**
    * hookDisplayBackOfficeHome
    *
    * Administration panel homepage
    * 
    **/
    public function hookDisplayBackOfficeHome($params)
    {

    }

    /**
    * hookDisplayBackOfficeTop
    *
    * Administration panel hover the tabs
    * 
    **/
    public function hookDisplayBackOfficeTop($params)
    {

    }

    /**
    * hookDisplayCarrierList
    *
    * Extra carrier (module mode)
    * 
    **/
    public function hookDisplayCarrierList($params)
    {

    }

    /**
    * hookDisplayFeatureForm
    *
    * Add fields to the form "feature"
    *     **/
    public function hookDisplayFeatureForm($params)
    {

    }

    /**
    * hookDisplayFeaturePostProcess
    *
    * On post-process in admin feature
    *     **/
    public function hookDisplayFeaturePostProcess($params)
    {

    }

    /**
    * hookDisplayFeatureValueForm
    *
    * Add fields to the form "feature value"
    *     **/
    public function hookDisplayFeatureValueForm($params)
    {

    }

    /**
    * hookDisplayFeatureValuePostProcess
    *
    * On post-process in admin feature value
    *     **/
    public function hookDisplayFeatureValuePostProcess($params)
    {

    }

Les hooks du front-office :

    /**
    * hookActionPaymentConfirmation
    *
    * Payment confirmation
    * 
    **/
    public function hookActionPaymentConfirmation($params)
    {

    }

    /**
    * hookActionSearch
    *
    * Search
    * 
    **/
    public function hookActionSearch($params)
    {

    }

    /**
    * hookDisplayBeforeCarrier
    *
    * Before carrier list
    * This hook is display before the carrier list on Front office
    **/
    public function hookDisplayBeforeCarrier($params)
    {

    }

    /**
    * hookDisplayBeforePayment
    *
    * Redirect in order process
    * Redirect user to the module instead of displaying payment modules
    **/
    public function hookDisplayBeforePayment($params)
    {

    }

    /**
    * hookDisplayCustomerAccount
    *
    * Customer account page display in front office
    * Display on page account of the customer
    **/
    public function hookDisplayCustomerAccount($params)
    {

    }

    /**
    * hookDisplayCustomerAccountForm
    *
    * Customer account creation form
    * Display some information on the form to create a customer account
    **/
    public function hookDisplayCustomerAccountForm($params)
    {

    }

    /**
    * hookActionAuthentication
    *
    * Successful customer authentication
    * 
    **/
    public function hookActionAuthentication($params)
    {

    }

    /**
    * hookActionBeforeAuthentication
    *
    * Before Authentication
    * Before authentication
    **/
    public function hookActionBeforeAuthentication($params)
    {

    }

    /**
    * hookActionBeforeSubmitAccount
    *
    * actionBeforeSubmitAccount
    * 
    **/
    public function hookActionBeforeSubmitAccount($params)
    {

    }

    /**
    * hookDisplayCustomerAccountFormTop
    *
    * Block above the form for create an account
    * 
    **/
    public function hookDisplayCustomerAccountFormTop($params)
    {

    }

    /**
    * hookDisplayFooter
    *
    * Footer
    * Add block in footer
    **/
    public function hookDisplayFooter($params)
    {

    }

    /**
    * hookDisplayFooterProduct
    *
    * Product footer
    * Add new blocks under the product description
    **/
    public function hookDisplayFooterProduct($params)
    {

    }

    /**
    * hookDisplayHeader
    *
    * Header of pages
    * A hook which allow you to do things in the header of each pages
    **/
    public function hookDisplayHeader($params)
    {

    }

    /**
    * hookDisplayHome
    *
    * Homepage content
    * 
    **/
    public function hookDisplayHome($params)
    {

    }

    /**
    * hookDisplayInvoice
    *
    * Invoice
    * Add blocks to invoice (order)
    **/
    public function hookDisplayInvoice($params)
    {

    }

    /**
    * hookDisplayLeftColumn
    *
    * Left column blocks
    * 
    **/
    public function hookDisplayLeftColumn($params)
    {

    }

    /**
    * hookDisplayLeftColumnProduct
    *
    * Extra actions on the product page (left column).
    * 
    **/
    public function hookDisplayLeftColumnProduct($params)
    {

    }

    /**
    * hookDisplayMobileTopSiteMap
    *
    * displayMobileTopSiteMap
    * 
    **/
    public function hookDisplayMobileTopSiteMap($params)
    {

    }

    /**
    * hookDisplayMyAccountBlock
    *
    * My account block
    * Display extra informations inside the "my account" block
    **/
    public function hookDisplayMyAccountBlock($params)
    {

    }

    /**
    * hookDisplayMyAccountBlockfooter
    *
    * My account block
    * Display extra informations inside the "my account" block
    **/
    public function hookDisplayMyAccountBlockfooter($params)
    {

    }

    /**
    * hookDisplayOrderConfirmation
    *
    * Order confirmation page
    * Called on order confirmation page
    **/
    public function hookDisplayOrderConfirmation($params)
    {

    }

    /**
    * hookDisplayOrderDetail
    *
    * Order detail displayed
    * Displayed on order detail on front office
    **/
    public function hookDisplayOrderDetail($params)
    {

    }

    /**
    * hookDisplayPDFInvoice
    *
    * PDF Invoice
    * Allow the display of extra informations into the PDF invoice
    **/
    public function hookDisplayPDFInvoice($params)
    {

    }

    /**
    * hookDisplayPayment
    *
    * Payment
    * 
    **/
    public function hookDisplayPayment($params)
    {

    }

    /**
    * hookDisplayPaymentReturn
    *
    * Payment return
    * 
    **/
    public function hookDisplayPaymentReturn($params)
    {

    }

    /**
    * hookDisplayPaymentTop
    *
    * Top of payment page
    *     **/
    public function hookDisplayPaymentTop($params)
    {

    }

    /**
    * hookDisplayProductButtons
    *
    * Product actions
    * Put new action buttons on product page
    **/
    public function hookDisplayProductButtons($params)
    {

    }

    /**
    * hookDisplayProductComparison
    *
    * Extra Product Comparison
    *     **/
    public function hookDisplayProductComparison($params)
    {

    }

    /**
    * hookDisplayProductTab
    *
    * Tabs on product page
    * Called on order product page tabs
    **/
    public function hookDisplayProductTab($params)
    {

    }

    /**
    * hookDisplayProductTabContent
    *
    * Content of tabs on product page
    * Called on order product page tabs
    **/
    public function hookDisplayProductTabContent($params)
    {

    }

    /**
    * hookDisplayRightColumn
    *
    * Right column blocks
    * 
    **/
    public function hookDisplayRightColumn($params)
    {

    }

    /**
    * hookDisplayRightColumnProduct
    *
    * Extra actions on the product page (right column).
    * 
    **/
    public function hookDisplayRightColumnProduct($params)
    {

    }

    /**
    * hookDisplayShoppingCart
    *
    * Shopping cart extra button
    * Display some specific informations
    **/
    public function hookDisplayShoppingCart($params)
    {

    }

    /**
    * hookDisplayShoppingCartFooter
    *
    * Shopping cart footer
    * Display some specific informations on the shopping cart page
    **/
    public function hookDisplayShoppingCartFooter($params)
    {

    }

    /**
    * hookDisplayTop
    *
    * Top of pages
    * A hook which allow you to do things a the top of each pages.
    **/
    public function hookDisplayTop($params)
    {

    }

Il faudra que je trie encore un peu la liste, histoire de bien différencier le front du back de Prestashop, mais bon c’est déjà pas mal… Et il faudra également que je recorrige un ou deux modules (ce n’est pas dramatique en soi, mais avec une meilleure gestion des hooks mon code sera tout de même plus propre !)

Source : Prestashop générator

Imprimer Imprimer
Suivre Cyssoo:

Développeur - formateur

Je cherche à display errors le monde, vous auriez pas la doc' ? Follow me on Twitter !

2 Responses

  1. loulegrain
    | Répondre

    Merci pour la liste, mais …
    … elle est ou la source teasée à la fin du paragraphe d’intro ? 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.