IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation système Discussion :

Tutoriel création d'un plugin pour glpi


Sujet :

Programmation système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Billets dans le blog
    2
    Par défaut Tutoriel création d'un plugin pour glpi
    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 ...

  2. #2
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Citation Envoyé par Viduc Voir le message
    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? :/

  3. #3
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Billets dans le blog
    2
    Par défaut
    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...

  4. #4
    Membre expérimenté Avatar de Vespiras
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 168
    Par défaut Onglet dans la v0.84
    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

  5. #5
    Membre expérimenté Avatar de Vespiras
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 168
    Par défaut Edit
    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.

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    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...
    Salut Viduc !

    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

Discussions similaires

  1. Réponses: 17
    Dernier message: 25/11/2020, 13h19
  2. Developpement d'un plugin pour glpi
    Par edybel dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 23/06/2014, 12h47
  3. [Spip] Création module ou plugin pour publication
    Par bicacna dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 23/08/2011, 14h53
  4. Création d'un plugin pour Eclipse
    Par Naeco dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 16/01/2007, 17h00
  5. Création d'un plugin pour navigateur web
    Par veuda dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 07/11/2005, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo