Jump to content

Comment tracer des valeurs pour débbuger une classe ??


Recommended Posts

Bonjour à tous,

Je développe une fonctionnalité qui nécessite de créer une fonction dans classes/order.php (utilisée par l'admin)

Mon problème est que je n’arrive pas à mettre ma fonction au point car je n’arrive pas à la tracer.

Les fonctions classiques de PHP ne donnent rien : echo $blabla.. ; mail(‘adresse_mail’,‘objet’,‘contenu’);
ou encore écrire dans un fichier.. ( fopen(‘c:\trace.txt’, ‘r+’); fputs($fichiertrace, ‘Texte à écrire’); fclose($fichiertrace);)
Rien n’y fait (echo fonctionne dans les php, mais pas dans les classes ??)

J'ai essayé aussi d'assigner une valeur dans une variable Smarty, mais le panneau d'admin de prestashop ne renvoie pas le popup de debug de Smarty... (Admin n'utilise pas Smarty.. j'ai essayé sans succès de configurer Smarty pour Admin.. si qq'1 sait faire..)

Comment tracer dans le code d’une classe comme order.php ? comment ouvrir le popup de debbug smarty dans une classe appelée par l'admin ?

Grand merci par avance pour votre aide
JP

Link to comment
Share on other sites

Bonjour,

Tout d'abord, si vous souhaitez "faire" quelque chose dans le panneau d'administration, il vous faudra vous pencher du côté des "onglets" soit les fichiers : /admin/tabs/AdminXXXX.php

Dans votre cas, il faudra utiliser le fichier /admin/tabs/AdminOrders.php

Ensuite, pour "tracer", vous pouvez toujours utiliser un morceau de code comme celui-ci :

<?php
///////////////// A EDITER
$data = 'Blabla';
///////////////// A EDITER
file_put_contents(_PS_ROOT_DIR_ . '/logs.txt', "[" . date('Y-m-d H:i:s') . "]\t" . __FILE__ . "\t" . $data, FILE_APPEND);



Ce code à pour effet de créer à la racine un fichier "logs.txt"

Link to comment
Share on other sites

Bonjour et merci !!

Effectivement parfait.. je ne connaissais pas cette commande..
Mon but est déclencher un calcul sur des commandes dès qu'elles sont payées.
Je vends un abonnement. Au paiement, je récupère la durée de l'abonnement (caractéristique du produit), et je calcul la nouvelle échéance que je mets à jour dans un champ de Ps_customer.
Mon critère étant le paiement = l'update de invoice_date et invoice_number dans ps_orders..
C'est la fonction setInvoice() dans order.php. Donc j'ai créé une fonction nouvelle updateMonCustomer que j'appelle dans setInvoice...
Après on verra pour un tab spécial ou un pavé dans admin/ AdminOrder..

Merci encore... je vais pouvoir poursuivre..
@+

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...