Jump to content

Création d'un module pour l'envoi d'e-mails lorsque le mode debug est activé


Recommended Posts

Bonjour,

Prestashop v1.7.8.10

Php 7.4.33

En ce moment, je suis en train de créer un module qui doit m'envoyer un mail lorsque le mode debug s'active. Pour ce faire, je souhaite réaliser cela de manière propre en créant un module.

Mon problème est que je ne sais pas comment récupérer l'information du fichier defines.inc.php lorsque le paramètre PS_MODE_DEV passe de "false" à "true".

Pour le moment, voici où j'en suis. J'ai pensé qu'il serait judicieux de passer par un hook, que j'ai donc créé. Est-ce une bonne solution ? Est-ce utile ? Et si oui, comment puis-je lier l'appel de ce hook lorsque le fichier est modifié ?

J'ai essayé d'être le plus clair possible. Merci pour la lecture et pour votre aide. 🙏

 

<?php
if (!defined('_PS_VERSION_')) {
    exit;
}

class debugMail extends Module
{
    public function __construct()
    {
        $this->name = 'debugmail';
        $this->tab = 'others';
        $this->version = '1.0.0';
        $this->author = 'Lneoiry';
        $this->need_instance = 0;

        parent::__construct();

        $this->displayName = $this->l('Debug Mail');
        $this->description = $this->l('Envoie un email lorsque le mode debug de PrestaShop est activé.');
    }

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

    public function uninstall()
    {
        return parent::uninstall();
    }

    public function hookActionToggleDevMode()
    {
        $to = '[email protected]';
        $subject = 'Mode debug activé sur mon site PrestaShop';
        $message = 'Le mode debug de mon site PrestaShop a été activé.';

        if (defined('_PS_MODE_DEV_') && _PS_MODE_DEV_ === true) {
            Mail::Send(
                $this->context->language->id,
                'contact',
                $subject,
                array(
                    '{message}' => $message,
                ),
                $to,
                null,
                null,
                null,
                null,
                null,
                _PS_MAIL_DIR_,
                false,
                $this->context->shop->id
            );
        }
    }
}
 

Edited by Lneoiry (see edit history)
Link to comment
Share on other sites

Bonjour,

votre hook est inutile à mon avis.

Il existe différentes possibilités pour réussir à gérer cela.

Soit en stockant votre propre état du mode debug et le comparer à chaque affichage de page du backoffice, mais en même temps si vous êtes sur le backoffice, vous savez que le mode debug est en place.

Soit en utilisant un script en tâche cron qui vient tester la variable et donc effectue une comparaison et vous envoie un message pour tout changement.

Soit en étudiant le controller de la page performances et, voir s'il y a un hook utilisable.

Soit en mettant votre script dans le hook header ou footer de votre site pour analyser sur chaque page l'état de la variable debug.

Ainsi de suite, la liste peut être longue.

Il faut se souvenir que l'état de cette variable peut être changé en backoffice et aussi dans le fichier, à vous de prendre la meilleure solution.

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...