You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2019-10-10 11:08:04

Lazar
Member
Registered: 2019-03-20
Posts: 6

Modification Tag GLPI pour le collecteur

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

1570696630-glpi-reply.png

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.

1570696630-glpi-ticket.png

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

#2 2019-10-10 13:00:20

Lazar
Member
Registered: 2019-03-20
Posts: 6

Re: Modification Tag GLPI pour le collecteur

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

#3 2019-10-10 13:45:06

Lazar
Member
Registered: 2019-03-20
Posts: 6

Re: Modification Tag GLPI pour le collecteur

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

Board footer

Powered by FluxBB