You are not logged in.
Bonjour à tous,
Nous utilisons Lotus dans notre entreprise et le collecteur de mail pour le traitement des tickets.
Tout ce processus fonctionne parfaitement. Mais j'ai quelques détails dont j'aimerai résoudre avec votre aide si possible.
Quand un utilisateur réponds par mail à un ticket avec le client Lotus, voici comment cela se présente
Lors d'une réponse, le client de messagerie rajoute l’entête du mail précédent au dessus du TAG " Pour répondre par courrier, écrivez au dessus de cette ligne"
Dans le Suivi du ticket, je retrouve donc l'entete du mail en bas.
j'aimerai que cette entête n'apparaisse plus dans le suivi du ticket.
D'après ce que je comprend, GLPI ne prend pas en compte tout ce qui est écrit entre les 2 TAGS.
=-=-=-= Pour répondre par courriel, écrivez au dessus de cette ligne =-=-=-=
=_=_=_= Pour répondre par courriel, écrivez en dessous de cette ligne =_=_=_=
L'idée que j'en avais est de modifier le premier TAG
=-=-=-= Pour répondre par courriel, écrivez au dessus de cette ligne =-=-=-=
Par le début de mon entête.
De :
En cherchant sur le forum j'ai trouvé qu'il y avait une classe notificationtargetticket.class.php qui contient les TAG
/**
* Get header to add to content
**/
function getContentHeader() {
if (MailCollector::getNumberOfActiveMailCollectors()) {
return self::HEADERTAG.' '.__('To answer by email, write above this line').' '.
self::HEADERTAG;
}
return '';
}
/**
* Get footer to add to content
**/
function getContentFooter() {
if (MailCollector::getNumberOfActiveMailCollectors()) {
return self::FOOTERTAG.' '.__('To answer by email, write under this line').' '.
self::FOOTERTAG;
}
return '';
}
const HEADERTAG = '=-=-=-=';
const FOOTERTAG = '=_=_=_=';
Et que ces TAG sont repris dans notificationtemplate.class.php grâce aux variables $add_header et $add_footer.
Je ne m'y connais pas trop en PHP mais j'ai essayé de modifier les constantes comme ceci afin de remplacer le premier TAG
const HEADERTAG = 'De :';
const FOOTERTAG = '=_=_=_=';
Ma modification ne fonctionne pas, j'imagine que je m'y prend mal.
Sauriez-vous m'aider sur cette amélioration ?
Ma version de GLPI est la 9.4.4
Merci
Offline
Je met à jour avec ce que j'ai pu récolter.
En faite ça supprime donc ce qui est compris entre ' =-=-=-= ' * ' =-=-=-= ' et '=_=_=_=' * '=_=_=_='
Cette fonction qui supprime se trouve dans mailcollector.class.php
$header_tag = NotificationTargetTicket::HEADERTAG;
$header_pattern = $header_tag . '.*' . $header_tag;
$footer_tag = NotificationTargetTicket::FOOTERTAG;
$footer_pattern = $footer_tag . '.*' . $footer_tag;
$has_header_line = preg_match('/' . $header_pattern . '/s', $tkt['content']);
$has_footer_line = preg_match('/' . $footer_pattern . '/s', $tkt['content']);
if ($has_header_line && $has_footer_line) {
// Strip all contents between header and footer line
$tkt['content'] = preg_replace(
'/' . $header_pattern . '.*' . $footer_pattern . '/s',
'',
$tkt['content']
);
} else if ($has_header_line) {
// Strip all contents between header line and end of message
$tkt['content'] = preg_replace(
'/' . $header_pattern . '.*$/s',
'',
$tkt['content']
);
} else if ($has_footer_line) {
// Strip all contents between begin of message and footer line
$tkt['content'] = preg_replace(
'/^.*' . $footer_pattern . '/s',
'',
$tkt['content']
);
j’espère trouver prochainement
Offline
J'ai trouvé, et cela fonctionne.
Dans la class mailcollector.class.php
J'ai rajouté une constante
const HEADER_PARTERN = 'De :';
Puis j'ai modifié le code suivant
$header_tag = NotificationTargetTicket::HEADERTAG;
$header_pattern = $header_tag . '.*' . $header_tag;
$footer_tag = NotificationTargetTicket::FOOTERTAG;
$footer_pattern = $footer_tag . '.*' . $footer_tag;
par
$header_tag = NotificationTargetTicket::HEADERTAG;
$header_pattern = self::HEADER_PARTERN;
$footer_tag = NotificationTargetTicket::FOOTERTAG;
$footer_pattern = $footer_tag . '.*' . $footer_tag;
Voila j'espère que ça pourra être utile à d'autres
Je vais quand même voir pour modifier ma constante car là il y a quand même un petit risque de la retrouver dans le message d'un utilisateur
Offline