NicolasC Posted February 12, 2019 Share Posted February 12, 2019 (edited) Bonjour, comment puis-je définir une méthode static dans le code PHP d'un module de telle sorte que cette méthode puisse être appelée de n'importe quel fichier template smarty ? Example : COnsidérons le module ps_featuredproducts. Mettons que j'ai besoin d'afficher le nom (ou lien ou image...) de la catégorie associée à ce module mais quelque part sur la page de garde, loin du bloc généré par le fichier .tpl du module (loin de la liste des produits donc). Une solution pratique serait de définie une méthode public static, par exemple public static function getCategoryName(), dans une classe PHP du module. Puis d'appeler cette méthode depuis le code Smarty du fichier template index.tpl de ma page de garde. Ca devrait être possible : le module "prestablog" définit ce genre de méthode static et je peux bien les appeler depuis n'importe quel template en smarty. Mais je n'y arrive pas... et ne trouve pas d'info dans la doc. Mes tentative : j'ai défini une méthode public static dans le fichier ps_featureproduct.php à la racine du module. Mais ca ne marche pas : pas appelable depuis le code smarty. j'ai défini une méthode public static dans une classe placée dans le répertoire ps_featuredproducts/class, en m'inspirant de ce qui est fait dans le module "prestablog". Mais ca ne marche pas non plus : il n'est pas possible de l'appeler depuis index.tpl. Comment devrais-je faire ? Est-ce que par exemple il y a un "fichier secret" à définir dans le module, dans lequel il me faudrait lister toutes les méthodes de classe que je veux rendre disponible en smarty ? Ou une autre ruse bien sentie ? merci X1000 pour votre aide à venir ! Edited February 12, 2019 by NicolasC Traduction en FR : je n'avais pas vu que j'étais sur le forum FR !! (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted February 12, 2019 Share Posted February 12, 2019 Puisque tu poses la question sur le forum francophone on va partir du principe que tu l'es. Il n'y a aucun problème pour appeler une fonction statique d'une module depuis smarty mais il est nécessaire que le module soit chargé avant. En général quand ce besoin se fait sentir (même si la plupart du temps c'est que ton code est mal organisé) il te suffit d'instancier ton module en l'accrochant au hookHeader par exemple Link to comment Share on other sites More sharing options...
NicolasC Posted February 12, 2019 Author Share Posted February 12, 2019 Eheh merci, super. Je vais essayer. Et tu as vu, j'ai été discipliné : j'ai traduit mon post en FR 😀 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now