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 2009-02-05 14:18:08

arnaudperfect
Member
From: Rouen
Registered: 2007-03-13
Posts: 280
Website

[Développement] Interfacer mon plugin avec le cron de GLPI

Bonjour,

Je suis en train de développer un plugin pour GLPI.

Ce plugin me permet de mettre à jours mes lieux et de faire une arborescence et mettre à jours mes utilisateurs suivant un fichier CVS assez complexe.

J'ai développer le mode manuel qui fonctionne parfaitement.

Maintenant, j'aimerai développer un mode automatique qui soit exécuter via le cron de GLPI, mais je ne sais pas comment faire pour interfacer le cron de GLPI avec mon plugin.

Merci pour vos indications

Arnaud

Offline

#2 2009-02-06 11:53:10

arnaudperfect
Member
From: Rouen
Registered: 2007-03-13
Posts: 280
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

Personne pour me répondre dans les développeur ?

J'ai lu sur le wiki du dev des plugin que pour mettre le plugin dans le cron de GLPI il fallait faire ceci :

Cron ¶

Vous pouvez ajouter une tache planifiée par plugin. Pour cela il suffit de définir : $PLUGIN_HOOKS['cron']['PLUGIN_NAME'] = DAY_TIMESTAMP; Cette directive lancera la fonction cron_plugin_PLUGIN_NAME de manière régulière en tache de fond (ici tous les jours).

Je veux bien, mais je défini ceci où ?

Offline

#3 2009-02-06 12:17:06

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

regardes le plugin alerting si besoin, il fait du cron..


Xavier Caillaud
Blog GLPI Infotel

Offline

#4 2009-02-10 17:03:38

arnaudperfect
Member
From: Rouen
Registered: 2007-03-13
Posts: 280
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

Oui, j'avais déjà regardé le plugin alerting et dans le fichier setup, je trouve cela :

// Cron action
$PLUGIN_HOOKS['cron']['alerting_ocs'] = DAY_TIMESTAMP;
$PLUGIN_HOOKS['cron']['alerting_tickets'] = DAY_TIMESTAMP;
$PLUGIN_HOOKS['cron']['alerting_reminder'] = DAY_TIMESTAMP;
$PLUGIN_HOOKS['cron']['alerting_reservations'] = HOUR_TIMESTAMP;
$PLUGIN_HOOKS['cron']['alerting_rss'] = HOUR_TIMESTAMP;

Ma question, ou est créer ces array ? et qui a t'il dedans ?

Comment dire au cron de GLPI d'exécuter telle script ?

Last edited by arnaudperfect (2009-02-10 17:05:50)

Offline

#5 2009-02-10 17:56:16

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

plus bas tu as les fonctions qui sont appelées type function cron_plugin_alerting_tickets


Xavier Caillaud
Blog GLPI Infotel

Offline

#6 2009-02-11 10:50:20

arnaudperfect
Member
From: Rouen
Registered: 2007-03-13
Posts: 280
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

pourrais tu être plus explicite, car effectivement en bas du script "setup", je vois :

// Cron function : name= cron_plugin_PLUGINNAME
     function cron_plugin_alerting_ocs(){
     
        if ((isset($_SESSION["glpi_plugin_alerting_installed"]) && $_SESSION["glpi_plugin_alerting_installed"]==1))
            plugin_alerting_alerts_ocs();
    }
    
    function cron_plugin_alerting_tickets(){

        if ((isset($_SESSION["glpi_plugin_alerting_installed"]) && $_SESSION["glpi_plugin_alerting_installed"]==1))
            plugin_alerting_alerts_tickets();
    } 
...

qui vérifie que le plugin est bien installé avant de d'exécuter une fonction qui est présent dans un autre fichier.

Dans mon cas, si je mets dans ma page setup :

// Cron action
$PLUGIN_HOOKS['cron']['MONPLUGIN'] = DAY_TIMESTAMP;

puis

// Cron function : name= cron_plugin_PLUGINNAME
function cron_plugin_MONPLUGIN_synchro(){
    if ((isset($_SESSION["glpi_plugin_MONPLUGIN_installed"]) && $_SESSION["glpi_plugin_MONPLUGIN_installed"]==1))
    // fonction à lancé automatiquement
    plugin_MONPLUGIN();
}

le cron ne va pas fonctionner qu'avec ca ?

Last edited by arnaudperfect (2009-02-11 10:51:25)

Offline

#7 2009-02-11 20:36:19

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

Oui il lancera tous les jours ta fonction.

en utilisant directement

// Cron function : name= cron_plugin_PLUGINNAME
function cron_plugin_MONPLUGIN(){
    if ((isset($_SESSION["glpi_plugin_MONPLUGIN_installed"]) && $_SESSION["glpi_plugin_MONPLUGIN_installed"]==1)) <-- si tu le définit quelque part bien sur
    // fonction à lancé automatiquement
    plugin_MONPLUGIN();
}

Xavier Caillaud
Blog GLPI Infotel

Offline

#8 2009-02-13 17:06:47

arnaudperfect
Member
From: Rouen
Registered: 2007-03-13
Posts: 280
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

ok, j'ai fais cela mais ce ne fonctionne pas...

ma fonction plugin_MONPLUGIN(); est présente dans un autre fichier, il faut faire un include où ?

A quel moment est appelé la fonction function cron_plugin_MONPLUGIN() ?

Offline

#9 2009-02-16 19:36:10

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

Regarde le plugin example, il est la pour ça.

je garde la version antérieure à la 0.72 du plugin example au cas ou :
http://www.thetsmr.fr/example.tar.gz


Xavier Caillaud
Blog GLPI Infotel

Offline

#10 2009-02-24 15:19:26

arnaudperfect
Member
From: Rouen
Registered: 2007-03-13
Posts: 280
Website

Re: [Développement] Interfacer mon plugin avec le cron de GLPI

l'exemple est pas terrible, il n'y a presque aucun commentaire pour expliquer le code...

j'ai abandonné l'idée, j'ai fais un cron système

Offline

Board footer

Powered by FluxBB