Développer avec RBS Change : Notifications personnalisées

  • 45551.1

    19/10/2011 18:22


    David Guillot
    Rang : Expert
    Bonjour,

    Comment peut-on rajouter des tags personnalisés dans les templates de notifications par e-mail ?

    Merci d'avance
  • 45551.2

    20/10/2011 09:35


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    S'il s'agit de rajouter des variables globalement dans l'ensemble des notification, le plus simple est d'injecter le service notification_NotificationService et de surcharger la méthode send pour compléter le tableau $replacementArray (3e paramètre de la méthode). Ce tableau prend en index le nom de la variable à remplacer dans la notif (sans les accolades) et en valeur, la valeur de cette variable.
  • 45551.3

    20/10/2011 10:08


    David Guillot
    Rang : Expert
    Injecter le service... C'est une nouvelle notion ou il s'agit d'injecter le document sans ajout de propriétés et d'éditer le service ainsi créé ?
  • 45551.4

    20/10/2011 11:12


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    C'est une des possibilités.

    Mais dans le cadre d'un service (qu'il soit lié ou non à un document), il est possible de "l'injecter" sans passer par là. Pour cela il suffit de créer un nouveau service qui étend celui que l'on veut injecter et déclarer l'injection dans le fichier project.xml :
    <project>
      <config>
       <injection>
         <entry name="notification_NotificationService">monmodule_MonNotificationService</entry>
       </injection>
    </project>
    Cette forme d'injection est prise en compte au moment du getInstance sur le service qui renvoie une instance du nouveau service à la place.

    Il y a du coup un point important dont il faut être conscient c'est que cette forme d'injection ne fait pas de remplacement de code, donc un autre service qui étendrait notification_NotificationService ne sera pas affecté par cette injection (au contraire de ce qui se passe lors d'une injection de document ou d'un remplacement de classe via l'AOP).



    Pour info, dans la future version 4.0, ces notions seront unifiées pour fonctionner toutes de la même manière en se basant sur la même mécanique de remplacement de code que pour l'injection de documents.
  • 45551.5

    21/10/2011 16:21


    David Guillot
    Rang : Expert
    OK merci beaucoup, j'étais parti entre temps sur une surcharge d'une autre méthode, mais ça fonctionne très bien comme ça !
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1461 membres
Aucun membre connecté