Posted 13 Oct 2015 (edited) · Report post Un hook est un événement qui permet d'implémenter facilement l'appel à des fonctionnalités de modules, sans avoir besoin de modifier le code PHP du logiciel et donc faciliter la mise en place et les mises à jour par la suite.Jusqu'à la version 7 :--------------------Historiquement, des hooks de contenu sont implémentés depuis de très nombreuses versions, appelant des zones HTML personnalisables et par ailleurs l'affichage de modules visuels.Par ailleurs, les fonctions d'affichage peuvent être surchargées avec des versions dans display_custom.php du dossier de modèle graphique.En outre, de nombreuses préimplémentations de fonctions étaient faites dans le code PHP avec ou sans test suivant les modules présents.Avec la nouvelle version 8 :----------------------------Des appels à des hooks sont implémentés à divers endroits du code, que ce soit pour de l'affichage ou des opérations invisibles telles que l'envoi d'emails, la gestion de colonnes supplémentaires dans la base de données, etc.Par exemple, lors de l'affichage d'un produit, la ligne suivante est exécutée :$output .= call_module_hook('product_details_show', array('id' => intval($_GET['id'])), 'output');Tout module implémentant le hook product_details_show sera automatiquement appelé, et pourra dans ce cas précis renvoyer du HTML. Mais il peut aussi implémenter l'appel à un tag javascript utilisant l'id du produit, ou toute autre opération.Par exemple, le module last_views implémente ce hook, sous forme de fonction. * On actualiste la liste des produits visités avec le produit qui vient d'être vu * * @param array $params * @return */ function last_views_hook_product_details_show($params) {Autre exemple :Lors du remplacements automatique de tags dans du texte à afficher, le hook template_tags est appelé. Le module Carrousel (module optionnel) qui est sous la forme d'une classe, implémente ce hook en tant que méthode. /** * Remplacement de tags spécifiques au module dans du contenu * * @param array $params * @return */ public function hook_template_tags($params) { $template_tags = array(); if(String::strpos($params['text'], '[AFFICHE_CARROUSEL_REFERENCE]') !== false) { $template_tags['AFFICHE_CARROUSEL_REFERENCE'] = Carrousel::display('references', true); } return $template_tags; } Edited 13 Oct 2015 by Simon développeur PEEL Share this post : post Share on other sites