You are not logged in.
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
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
regardes le plugin alerting si besoin, il fait du cron..
Xavier Caillaud
Blog GLPI Infotel
Offline
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
plus bas tu as les fonctions qui sont appelées type function cron_plugin_alerting_tickets
Xavier Caillaud
Blog GLPI Infotel
Offline
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
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
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
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
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