You are not logged in.
Bonjour,
je développe un plugin pour GLPI et souhaite en faire profiter la communauté.
Le souci : c'est de convertir mes quelques fichiers en plugins.
- j'ai bien lu la page de doc et plus particulièrement la page consacrée aux plugins pour la 0.71 (étant en entreprise, nous ne migrons pas sur la 0.72 tant que la release stable ne sera pas dispo.
- j'ai bien respecté la locale fr_FR.php, j'ai de quoi le traduire en anglais et espagnol (castillan), c'est pas un souci.
- j'ai bien respecté les conventions de nommage tant pour mes fonctions que pour mes tables.
Organisation de mes fichiers :
- index.php qui contient une variable d'URL $act (qui vaut soit config soit vide, soit sendmail selon l'action qu'on fait)
- un setup.php qui contient les fonctions plugin_version, plugin_init, check_prerequisites, check_config, install et uninstall
- un sous dossier inc/ avec qq libs PHP (dont les focntions sont, comme dit plus haut, correctement nommées)
- le dossier front/ est vide, de même pour pict : je n'en ai pas spécialement eu besoin.
J'ai lu l'article sur "Linux Magazine" qui a un article qui explique comment créer un plugin. Mais pour la 0.72...
la doc n'est pas hyper explicite sur les "hooks" non plus, comment savoir desquels on a besoin ? dans cet article, l'auteur en met quelques uns sans dire pourquoi.
Si j'arrive à transformer ça en plugin, je vous le mets à dispo, mais il ne me manque que ça pour le faire.
Merci de toute aide.
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
Merci de votre contribution.
Concernant la ré-écriture en 0.72, le plus simple est de regarder un plugin déjà prêt pour la 0.72 (ils sont nommés sur 3 positions au lieu de 2).
Vous pouvez regarder le plugin example qui liste tous les hook et à quoi ils servent.
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
je reviens vers vous parce que je suis toujours en 0.71 (nous ne passerons pas à la .72 tant qu'elle n'est pas dans les versions stables) et l'écriture de mon plugin est toujours d'actualité ...
Point de vue fonctionnel, il marche comme nous le souhaitons, j'ai bien respecté la convention de nommage des tables et fonctions. Seul "truc", tout est dans mon index.php qui a juste quelques "actions" définies par une variable d'URL.
par exemple, index.php?act=AZERTY&page=3
Il y a aussi une fonction de Cron pour envoiyer des mails automatiquement, qui nécessite cette URL.
Tel qu'il est là, il fonctionne à 100%, mais l'installation est manuelle ...
J'ai tenté de faire un fichier Setup, mais dès lors que je le nomme "setup.php", et que je lance GLPI, j'ai une fatal error parce que le script tourne plus de 60s ... (qui est ma limite d'exécution PHP).
Je vous le montre en code, ci-dessous, pouvez-vous m'aiguiller pour me dire ce qui est bon ou pas ?
<?php
/*
----------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2008 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org/
----------------------------------------------------------------------
LICENSE
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License (GPL)
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To read the license please visit http://www.gnu.org/copyleft/gpl.html
----------------------------------------------------------------------
// Original Author of file: Matthieu LACROIX
Purpose of file:
----------------------------------------------------------------------
*/
$NEEDED_ITEMS = array();
if (!defined('GLPI_ROOT'))
define('', '../..');
include(GLPI_ROOT . "/inc/includes.php");
checkRight('config', 'w');
function plugin_version_taskreporting()
{
return array('name' => 'Task Reporting',
'minGlpiVersion' => '0.71',
'version' => '1.0',
'author' => 'Matthieu LACROIX',
'homepage' => 'http://www.php-astux.info');
};
function plugin_init_taskreporting()
{
global $PLUGIN_HOOKS;
$PLUGIN_HOOKS['helpdesk_menu_entry']['taskreporting'] = true;
/*
$PLUGIN_HOOKS['config_page']['taskreporting'] = 'index.php?';
$PLUGIN_HOOKS['helpdesk_menu_entry']['taskreporting'] = true;
$PLUGIN_HOOKS['menu_entry']['taskreporting'] = true;
$PLUGIN_HOOKS['submenu_entry']['PLUGIN_NAME']['add'] = 'pagetest.php';
$PLUGIN_HOOKS['submenu_entry']['PLUGIN_NAME']['add']['plop'] = 'pagetest2.php';
*/
};
function plugin_taskreporting_check_prerequisites()
{
return (GLPI_VERSION >= 0.71) ? true : false;
};
function plugin_taskreporting_check_config()
{
return true;
};
function plugin_taskreporting_install()
{
$DB = new DB;
// ici j'ai tout ce qu'il faut pour créer mes tables, pour simplifier mon code j'ai laissé 2 exemples
$query1 = 'CREATE TABLE ...';
$DB->query($query1) or die($DB->error());
return true;
};
function plugin_taskreporting_uninstall()
{
// pareil j'ai tous mes DROP table
return true;
};
?>
Last edited by Tux is my friend (2009-06-18 18:13:55)
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
Je pige pas, tu dis que ton plugin est fait pour la 0.71 et ton setup.php ressemble à un fichier pour la 0.72...
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
Salut,
oui, parce que comme on m'a répondu plus haut, "va voir un exemple de 0.72".
J'ai étudié les exemples de la 0.71, mis à part qq fonctions (prerequisites), globalement c'est ça.
Je vois pas ce qui le fait planter.
EDIT : dans mon premier message, j'avais dit que nous restons pour le moment en 0.71 et la personne qui m'a répondu m'a directement parlé de la 0.72 ...
Last edited by Tux is my friend (2009-06-19 11:18:18)
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
EDIT : dans mon premier message, j'avais dit que nous restons pour le moment en 0.71 et la personne qui m'a répondu m'a directement parlé de la 0.72 ...
car la 0.72 va bientôt sortir, et qu'il va y avoir pas mal de modifs à faire pour porter les plugins... donc autant commencer directement dessus
Offline
J'ai lu l'article sur "Linux Magazine" qui a un article qui explique comment créer un plugin. Mais pour la 0.72...
la doc n'est pas hyper explicite sur les "hooks" non plus, comment savoir desquels on a besoin ? dans cet article, l'auteur en met quelques uns sans dire pourquoi.
En voyant votre demande, j'ai cru que vous aviez un problème pour votre plugin en 0.72.
C'est pour çà que j'ai indiqué "pour la ré-écriture en 0.72"
Il faudrait pour votre problème que vous indiquiez les erreurs exactes ((php et mysql)
Last edited by yllen (2009-06-19 14:15:37)
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
- aucune erreur MySQL
- 1 erreur PHP :
PHP ERROR: Constant PLUGIN_SGBD_TYPE already defined in E:\_www\GLPI_0.71.5\inc\plugin.function.php at line 344
et des centaines de lignes dans "access.log" d'Apache :
127.0.0.1 - - [23/Jun/2009:09:14:44 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:45 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:46 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:46 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:47 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:48 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:48 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:49 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
127.0.0.1 - - [23/Jun/2009:09:14:50 +0200] "GET /GLPI_0.71.5/index.php HTTP/1.1" 200 427
je n'ai pas tout copié, mais je n'ai que ça jusqu'au timeout de PHP. Et ceci avec le setup.php tel qu'il est dans mon premier post de ce topic.
Merci !
EDIT : par contre si je renomme "setup.php" => "ce_que_je_veux.php" (p.ex. setup1.php) ça tourne sans souci. Là vous voyez que je n'ai même pas accès à la page de login GLPI.
Last edited by Tux is my friend (2009-06-23 09:17:46)
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
- 1 erreur PHP :
PHP ERROR: Constant PLUGIN_SGBD_TYPE already defined in E:\_www\GLPI_0.71.5\inc\plugin.function.php at line 344
l'erreur me parait assez claire,
vous avez fait copier/coller et le plugin essaye de définir la constante, qui a déjà été définie dans le plugin sgbd
Offline
je n'utilise pourtant nulle part cette variable ... et cette ligne ne survient que quand le "setup.php" est "actif" : je suis en mode debug en local, les erreurs PHP ont affichées partout, je n'ai aucun autre plugin sur ma version de test.
je vais creuser encore un peu...
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
Je souhaite développer un plugin qui permet d'integrer partimage avec glpi
mais je ne sais pas comment faire un plugin
Help ..
Offline
mais je ne sais pas comment faire un plugin
Offline
Bonjour,
je reviens par ici
J'ai réécrit mon plugin pour la version 0.72 et n'ai fait pour le moment que la doc en Anglais. Il fonctionne bien, seulement j'ai cru comprendre qu'on pouvait donner des permissions aux utilisateurs, certains plugins le faisant. (permissions locale)
Car le stagiaire de ma boite n'a pas le droit de configurer les plugins, mais le mien étant de la lecture sur la base GLPI (et non de l'insertion) j'aimerais qu'il y ait accès... Le PDF dans mon premier post était assez explicite, mais il ne parle pas de ça
Une fois ceci fait, je mets mon plugin à dispo. Faut prendre contact ? Faut-il fournir des screenshots dans l'archive ?
Merci
EDIT : ce forum est FR, comment référencer le plugin dans la section anglaise ? (pas envie de faire de double post ...)
Last edited by Tux is my friend (2009-07-23 17:26:34)
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
Le plugin sera référencé en français et en anglais.
Pour le diffuser, il suffit d'adresser l'archive de votre plugin, avec une description de son fonctionnement à la liste des développeurs de plugins.
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Tout est écrit ici : https://dev.indepnet.net/plugins/wiki/howtopluginFR
Xavier Caillaud
Blog GLPI Infotel
Offline
Bonjour,
juste une question qui peut paraitre bête : je n'ai trouvé nulle mention d'un préfixe des tables. Les tables sont (dans la page "dév pour la 0.72") nommées glpi_* donc j'en conclus que "glpi_" est le fameux préfixe.
Last edited by Tux is my friend (2009-07-27 17:52:48)
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline
rhoo. Je file un lien et personne le lit
"Vos noms de tables doivent respecter la règle suivante : glpi_plugin_<plugin_name>_XXXX "
Xavier Caillaud
Blog GLPI Infotel
Offline
c'est bien ce que j'ai dit :
Les tables sont (dans la page "dév pour la 0.72") nommées glpi_* donc j'en conclus que [...]
mais dans la mesure où la quasi totalité des scripts actuels proposent un système de préfixe, je préférais m'assurer que ce choix n'a pas été fait ainsi par les dév de GLPI.
Merci pour la réponse
Last edited by Tux is my friend (2009-07-27 18:49:17)
XAMPP 1.71 : MySQL 5.1.33, PHP 5.2.9. && Apache 2.2.11.
Offline