[Corrigé 3.1.41] Fatal error: Cannot redeclare date_cnv()
Posté : mar. 7 mai 2019 17:49
Bonjour,
J'utilise actuellement la version 3.1.38 et lors de l'import de plusieurs mails j'ai rencontré cette erreur :
Cela se produit lorsque plusieurs mails sont importés et que l'on a activé le droit mail_auto_user_newticket qui permet d'envoyer une notification de confirmation de création de ticket.
En effet, la boucle d'import fait un include('core/mail.php'), c'est la fin de mail.php justement que la fonction date_cnv est déclarée, mais à cause de la boucle elle est redéclarée à chaque tour.
D'autre part, cette fonction existe aussi dans le fichier asset_list.php, là aussi à la toute fin du fichier.
En guise de workaround, j'ai déplacé la déclaration de date_cnv en début de ces fichiers, avec un check function_exists :
J'utilise actuellement la version 3.1.38 et lors de l'import de plusieurs mails j'ai rencontré cette erreur :
Code : Tout sélectionner
PHP Fatal error: Cannot redeclare date_cnv() (previously declared in mail.php:578) in mail.php on line 578,
En effet, la boucle d'import fait un include('core/mail.php'), c'est la fin de mail.php justement que la fonction date_cnv est déclarée, mais à cause de la boucle elle est redéclarée à chaque tour.
D'autre part, cette fonction existe aussi dans le fichier asset_list.php, là aussi à la toute fin du fichier.
En guise de workaround, j'ai déplacé la déclaration de date_cnv en début de ces fichiers, avec un check function_exists :
Code : Tout sélectionner
if (!function_exists("date_cnv")){
// Date conversion
function date_cnv ($date) {
return substr($date,8,2) . "/" . substr($date,5,2) . "/" . substr($date,0,4);
}
}