You are not logged in.
Bonjour à tous,
Depuis FormCreator, j'ai la possibilité de remonter l'adresse IP de la machine émettrice du ticket, ce qui est plutôt cool !
Cependant, dans un environnement en DHCP, l'adresse IP des machines change régulièrement et je souhaiterai pouvoir remonter le nom d'hôte, afin que les tickets aient une information .
J'ai essayé de chercher dans les plugins mais je n'ai rien trouvé.
Quelqu'un aurai une idée, en évitant la solution du développement perso (je préférerai utiliser des plugins maintenus) ?
Offline
Bonjour
Le plugin ne permet pas cela pour le moment, mais ça ne me semble pas bien compliqué à réaliser.
Je pense qu'il faut "habiller" l'usage de la fonction suivante dans un nouveau type de champ.
http://php.net/manual/en/function.gethostbyaddr.php
Si vous avez les compétences, vous devriez vous lancer. Pour que ce soit maintenu, la condition est que votre développement soit fusionné dans le dépôt officiel. En gros :
- faites un fork du dépôt sur Github
- créez une branche
- développez la fonctionnalité
- soumettez la pour revue et intégration
Après revue, vous aurez peut être quelques modifications à faire, jusqu'à ce que le code soit satisfaisant.
Notez que j'ai choisi récemment d'utiliser des messages de commit conventionnels (saveur AngularJS): https://conventionalcommits.org/ . Cela permet de produire un changelog automatiquement au moment de faire une release. Essayez de respecter cela ou sinon je devrai réécrire les messages (ce qui risque provoquer la perte du véritable auteur du code).
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
Bonjour,
Merci pour votre retour.
Je vais voir si je me lance, je vais déjà modifier le plugin et si mes résultats sont bons je ferai la démarche pour l'intégrer au dépôt officiel !
Offline
Vu que je maintiens le plugin, quelques conseils:
- voyez comment fonctionne la classe du champ IP. Il a l'avantage d'être simple vu qu'il n'y a pas d'interaction avec l'utilsiateur
- utilisez la méthode Toolbox::getRemoteIPAddress() qui gère un éventuel proxy
Si vous avez des questions n'hésitez pas à les poser. Ce dont vous avez besoin est une fonctionnalité, donc l'intégration peut se faire dans la version 2.7.0. Ca donne du temps car on commence à peine le cycle de vie des 2.6.x.
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
J'ai en effet trouvé le fichier filefield.class.php que je pensais adapter pour ma fonction, dans un nouveau fichier.
Par contre, je ne sais pas si j'ai d'autres choses à modifier pour que le nouveau champs soit créé dans la base.
J'avoue que je débute tout juste avec GLPI et je n'ai pas encore les connaissances suffisantes sur le produit !
Offline
J'ai donc créé un nouveau fichier pour mon champs, hostnamefield.class.php dans lequel je récupère le nom par le biais de l'adresse IP, ce qui semble plutôt bien fonctionner.
Par contre, mon champs ne remonte pas dans la liste lorsque je déclare ma nouvelle classe (PluginFormcreatorHostField).
J'imagine que je dois également modifier la classe PluginFormcreatorField, mais je ne la trouve pas... J'ai un peu de mal à appréhender la structure du plugin.
Je ne serai pas contre quelques conseils !
Offline
Bonjour
Par contre, mon champs ne remonte pas dans la liste lorsque je déclare ma nouvelle classe (PluginFormcreatorHostField).
La liste dont vous parlez est la liste des champs disponibles lors de la création d'une question (quand on conçoit un formulaire) ?
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
Oui tout à fait !
Offline
Regardez la méthode PluginFormcreatorFields::getNames(). Elle appelle PluginFormcreatorFields::getTypes().
Je pense que dans cette seconde méthode, votre fichier l'est pas traité correctement. Il devrait être chargé à la ligne 22 lors de l'appel à class_exists() (qui sollicitera l'autoloader du plugin).
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
c'est bon ça fonctionne !
En effet, le nom de la classe devais être identique au nom du champs...
Après, je ne sais pas si je vais me lancer dans la publication de ma modification sur GitHub, je ne connais pas du tout le fonctionnement.
Pensez-vous que ça en vaille la peine ?
En tout cas, un grand merci pour votre aide !
Offline
Si vous ne faites pas les choses au mieux, à la revue je le dirai, et demanderai des changements. Vu que la fonctionnalité n'est pas bien lourde en code, il y a peu de risque de faire "pas optimal" ou d'introduire un bug. La revue est là pour cela: faire des aller / retours entre le contributeur et d'autres personnes (de l'entraide en somme).
Soumettez, sinon ce serait un effort qui ne servira qu'un temps pour vous, et une perte pour la communauté. Partager le code est un investissement généralement rentable.
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
Bonjour
Pour information, la version 2.7.0 pourrait arriver pus tôt que prévu; ce serait une bonne idée, si vous voulez contribuer, de verser votre code pour que je puisse l'intégrer.
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
Bonjour,
Je viens de créer une nouvelle branche et d'y ajouter mes modifications et vous les ai envoyées pour validation.
Dites moi si j'ai oublié quelque chose !
Offline