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 2017-01-26 16:03:53

eldiablo62
Member
Registered: 2016-03-17
Posts: 17

Dev Plugin avec notification

Bonjour,

Je suis en train de voir pour développer un petit plugin simple pour inventorier nos fournitures, je souhaiterai envoyer une notification (avec un cron tous les semaines) avec les fournitures dont la quantité est inférieur au seuil d'alert (un peu comme les cartouches).

J'ai réussi à faire toute la partie gestion des fournitures mais je butte sur la partie ajout d'un cron, ajout d'une notification et faire le lien entre les données que je vais récupérer et les envoyer via la notification.

Si qq'un à des informations sur ces parties, ca m'interesse.

D'avance merci.


GLPI V9.1.1 et FusionInventory 9.1+1.0

Offline

#2 2017-01-26 16:29:56

btry
Moderator
Registered: 2015-10-01
Posts: 591

Re: Dev Plugin avec notification

Bonjour

Le plugin Exemple contient (comme son nom l'indique) des exemples pour tout ce qu'on peut faire dans un plugin.
jobs Cron et notification.

FormCreator contient aussi des exemples de notifications.

Pour les jobs Cron c'est assez simple il faut faire une méthode statique dans la classe la plus appropriée pour exécuter la tâche.

Pour les notifications c'est plsu compliqué, mais voyez déjà dans le code d'installation d'un plugin comment créer une notification. Pour lancer une notification cherchez dans le plugin qui vous sert d'exemple l'appel à la méthode raiseEvent().


No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!

Offline

#3 2017-01-26 17:20:42

eldiablo62
Member
Registered: 2016-03-17
Posts: 17

Re: Dev Plugin avec notification

Merci pour la réponse smile

Je viens de regarder le plugin exemple par contre quand je l'installe, si je regarde dans les templates de notifications, dans les notifications, et les taches planifiées y a rien sad

Il est encore compatible avec la version 9.1.1 ?

En gros dans ce que j'ai vu on crée un template de notification, puis une notification, une tache planifiée qui va exécuter une fonction et dans cette fonction on récupére les valeurs pour les envoyer au systeme de notification qui va récupérer les valeurs et les mettres en forme grace au template.

C'est bien ca ? ou j'ai raté une étape ?


GLPI V9.1.1 et FusionInventory 9.1+1.0

Offline

#4 2017-01-26 17:28:40

btry
Moderator
Registered: 2015-10-01
Posts: 591

Re: Dev Plugin avec notification

Pour les tâches cron :

https://github.com/pluginsGLPI/example/ … k.php#L531

https://github.com/pluginsGLPI/example/ … s.php#L169

Pour les notifications (la classe qui fait le gros du  travail) :
https://github.com/pluginsGLPI/example/ … .class.php

Les notifications c'est un bon morceau à digérer, n'hésitez pas à regarder d'autres plugins, pour trouver l'exemple qui vous plait le mieux.


No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!

Offline

#5 2017-01-27 10:06:38

eldiablo62
Member
Registered: 2016-03-17
Posts: 17

Re: Dev Plugin avec notification

Merci pour les infos, je teste ca lundi ou mardi.


GLPI V9.1.1 et FusionInventory 9.1+1.0

Offline

#6 2017-01-31 16:26:40

eldiablo62
Member
Registered: 2016-03-17
Posts: 17

Re: Dev Plugin avec notification

Bon j'ai fait un test, effectivement pour faire une tache planifiée c'est très simple smile.

Par contre pour les notifications ... J'ai décortiqué 2 plugins (badges et certificate) mais dans ce que je vois j'ai une erreur sur cette partie :
NotificationEvent::raiseEvent('FournituresSeuil', new PluginFournituresFourniture(), array('fournitures' => $fournitures)

J'ai bien un fichier notificationtargetfourniture.class.php
J'ai bien un template de notification configuré dans mon hook (insert)

Donc je vois pas trop ce qui va pas sad


GLPI V9.1.1 et FusionInventory 9.1+1.0

Offline

#7 2017-01-31 16:38:44

btry
Moderator
Registered: 2015-10-01
Posts: 591

Re: Dev Plugin avec notification

Bonjour

Comme les notifications ont une conception assez complexe, et qu'elles fonctionnent  en interaction avec beaucoup de choses, il faudrait que vous montriez votre code. Sans cela, il sera difficile de vous orienter.


No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!

Offline

#8 2017-01-31 16:58:16

eldiablo62
Member
Registered: 2016-03-17
Posts: 17

Re: Dev Plugin avec notification

Salut

Je viens de l'ajouter sur github https://github.com/eldiablo62/glpi_plug … itures.git Si y a des choses bizzares hésite pas car j'ai peu d'expérience dans la création de plugins pour glpi. Du coup j'ai décrotiqué des plugins pour arriver à ca.

Last edited by eldiablo62 (2017-02-06 14:59:55)


GLPI V9.1.1 et FusionInventory 9.1+1.0

Offline

#9 2017-02-06 17:04:06

hasop
Member
Registered: 2016-02-11
Posts: 82

Re: Dev Plugin avec notification

Bonjour,

J'ai tenté l'exercice pour la première fois également et j'ai réussi à envoyer des notifs.

En regardant rapidement ton code, il semble déjà y avoir un problème dans fourniture.class.php. Tu affectes des valeurs à $fournitures ligne 302, mais cette variable n'est pas déclarée en dehors du foreach au préalable. Donc tu ne passes rien à ton raiseEvent.
Si tu te mets en mode debug, tu devrais voir apparaître (furtivement) un message d'erreur au lancement de la tâche d’ailleurs (c'était mon cas).


GLPI v9.5.1
FusionInventory 9.5

Offline

#10 2017-02-09 13:36:14

eldiablo62
Member
Registered: 2016-03-17
Posts: 17

Re: Dev Plugin avec notification

Bonjour,

J'ai tenté d'initialisé le tableau de $fournitures en dehors mais c'est pas mieux. il bloque vraiement sur le raiseEvent si je met qq chose de debug dans le notificationtargetfourniture.class.php il ne se passe rien comme si il n'entre pas dedans.

Tu as des sources sur github pour que je décortique comment tu as fait.

Après autres soucis mais peut être lié je n'ai pas d'onglet destinataire pour le paramétrage... Peut être ca ?


GLPI V9.1.1 et FusionInventory 9.1+1.0

Offline

Board footer

Powered by FluxBB