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-05-26 10:16:41

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Dév plugin : qu'est-ce qui est important ?

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

#2 2009-05-26 10:31:53

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Dév plugin : qu'est-ce qui est important ?

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

#3 2009-06-18 18:12:20

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

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

#4 2009-06-18 18:21:51

remi
GLPI-DEV
From: Champagne
Registered: 2007-04-28
Posts: 7,127
Website

Re: Dév plugin : qu'est-ce qui est important ?

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

#5 2009-06-19 11:16:52

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

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

#6 2009-06-19 11:21:49

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: Dév plugin : qu'est-ce qui est important ?

Tux is my friend wrote:

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 wink

Offline

#7 2009-06-19 14:12:59

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Dév plugin : qu'est-ce qui est important ?

Tux is my friend wrote:

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

#8 2009-06-23 09:16:42

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

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

#9 2009-06-23 09:27:55

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: Dév plugin : qu'est-ce qui est important ?

Tux is my friend wrote:

- 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

#10 2009-06-23 10:23:21

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

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

#11 2009-06-28 11:52:42

rimona
Member
Registered: 2009-06-28
Posts: 1

Re: Dév plugin : qu'est-ce qui est important ?

Je souhaite développer un plugin qui permet d'integrer partimage avec glpi
mais je ne sais pas comment faire un plugin
Help ..

Offline

#12 2009-06-28 19:11:47

wawa
GLPI-DEV
From: Montpellier / France
Registered: 2006-07-03
Posts: 6,019
Website

Re: Dév plugin : qu'est-ce qui est important ?

rimona wrote:

mais je ne sais pas comment faire un plugin

https://dev.indepnet.net/plugins

Offline

#13 2009-07-23 17:24:07

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

Bonjour,
je reviens par ici smile

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 hmm

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

#14 2009-07-24 07:31:56

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Dév plugin : qu'est-ce qui est important ?

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

#15 2009-07-24 09:21:00

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

Re: Dév plugin : qu'est-ce qui est important ?


Xavier Caillaud
Blog GLPI Infotel

Offline

#16 2009-07-27 17:52:36

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

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

#17 2009-07-27 18:01:19

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

Re: Dév plugin : qu'est-ce qui est important ?

rhoo. Je file un lien et personne le lit hmm

"Vos noms de tables doivent respecter la règle suivante : glpi_plugin_<plugin_name>_XXXX "


Xavier Caillaud
Blog GLPI Infotel

Offline

#18 2009-07-27 18:48:49

Tux is my friend
Member
Registered: 2009-05-26
Posts: 8
Website

Re: Dév plugin : qu'est-ce qui est important ?

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 big_smile

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

Board footer

Powered by FluxBB