Bonjour
Je vous propose mon nouveau tutoriel sur la création d'un plugin pour glpi.
http://viduc.developpez.com/tutoriel/glpi/
N'hésitez pas à commenter ...
Bonjour
Je vous propose mon nouveau tutoriel sur la création d'un plugin pour glpi.
http://viduc.developpez.com/tutoriel/glpi/
N'hésitez pas à commenter ...
Bonjour Viduc,
Super Tuto, très bien expliqué.
Cependant j'ai un leger problème.
Lors de la configuration de ton plugin, le lien renvoi vers le config.form.php contenu dans le dossier form.
Celui-ci m'affiche une page blanche. Pourtant tout le reste est OK (creation des tables, affichage du plugin)
Saurais tu me dire pourquoi?
Je pensais au debut que ceci etait du a mes modifications mais le problème persiste quand je mets le dossier que tu as zippé sans changement.
Je suis en version 0.84.. Donc pas d eprobleme de ce coté la..
Une idée? :/
Salut!
ton problème vient peut être d'un souci de droit... il faut que ton user (www-data) est des droits d'écriture sur au moins le dossier Smarty... (templates_c pour être exact). Vérifie tes droits et dis moi si ça fonctionne...
Hello,
J'ai un léger soucis, j'ai GLPI v0.84.5 et j'aurais aimé ajouter deux onglets à l'objet coeur "Contract" avec le plugin que j'ai commencé a développer.
D'après ce tutoriel https://forge.indepnet.net/projects/plu … ePlugin084 et les connaissances que j'avais acquises avec la v0.83 je n'arrive pas à afficher le moindre onglet ...
Voici la structure de mon plugin qui nous interesse :
- front
- lmc.form.php- inc
- pluginlmc.class.php- setup.php
Dans setup.php, je référence la classe PluginLmc ainsi :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part Plugin::registerClass('PluginLmc', array('addtabon' => array('Contract')));
Dans pluginlmc.class.php j'ai le code suivant :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 class PluginLmc extends CommonDBTM { // nom des onglets function getTabNameForItem(CommonGLPI $item, $withtemplate=0) { if ($item->getType() == 'Contract') { $ong = array(); $ong[1] = 'Licences & Modules'; $ong[2] = 'Maintenance'; return $ong; } else { return ''; } } // Bind des formulaires avec les onglets static function displayTabContentForItem(CommonGLPI $item, $tabnum=1, $withtemplate=0) { if ($item->getType() == 'Contract') { $lmc_plugin = new self(); switch ($tabnum) { case 1 : // mon premier onglet $ID = $item->getField('id'); $Name = $item->getField('name'); // j'affiche le formulaire //$lmc_plugin->showForm($ID, $Name); break; case 2 : // mon second onglet $ID = $item->getField('id'); $Name = $item->getField('name'); // j'affiche le formulaire //$lmc_plugin->showForm($ID, $Name); break; } } return true; } //Définition des onglets function defineTabs($options=array()) { $ong = array(); $this->addStandardTab('PluginLmc', $ong, $options); return $ong; } }
Du coup, j'ai beau reinstaller et réactiver mon plugin, rien ne change, je n'ai toujours aucun nouvel onglet sur mes objets Contrat, et je ne vois pas d'ou viens l'erreur.
Je n'ai aucune erreur dans les logs HTTPD également. Merci d'avance pour vos réponses![]()
J'ai renommé mon fichier de classe pluginlmc.class.php en lmc.class.php et j'ai aussi renommé la classe qui s y trouve par "PluginLmclmc" . Par le même coup j'ai modifié la ligne suivante dans la fonction plugin_init_lmc() :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part Plugin::registerClass('PluginLmclmc', array('addtabon' => array('Contract')));
Cela ne donne toujours rien, c'est vraiment la galère pour ajouter des onglets aux objets du coeur on dirait sur cette version 0.84 ... merci d'avance pour vos réponses
EDIT : J'ai trouvé la solution, ce fût très chronophage mais c'est un caractère qui m'a bloqué tout ce temps. Il m'a suffit de renommer ma classe "PluginLmclmc" en "PluginLmcLmc" avec une majuscule, de renommer toutes les occurrences et ça a fonctionné. GLPI ne veut que des classes qui commencent par une majuscule apparemment, et à juste titre, car cela respecte la convention de nommage des classes. Mais de la a penser que la classe sans majuscule était ignorée sans erreurs dans les logs ou sur la console de débug. J'ai envisagé la reconversion avant de résoudre le soucis, ça soulage de gravir ce problème quasi indétectable.
Salut Viduc !Salut!
ton problème vient peut être d'un souci de droit... il faut que ton user (www-data) est des droits d'écriture sur au moins le dossier Smarty... (templates_c pour être exact). Vérifie tes droits et dis moi si ça fonctionne...
Désolé pour cette reponse tardive, je me remet sur le sujet !
La commande chown n'ets pas disponible sur Windows (j'ai fait une install sur Windows, je sais c'est moyen, mais bon)
J'ai cependant créé l'utilisateur www-data sur mon serveur et lui ai mis full droit sur le dossier monplugin.
Le resultat est le même.. Ca nemarche pas. As tu une autre idée d'ou pourrais provenir le blocage?
Merci par avance
Partager