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 2024-10-28 17:34:36

ec2311
Member
Registered: 2016-04-07
Posts: 352

[ResoluAjout de champs d'un plugin dans les filtres de l'asset associé

Bonjour

Soit un plugin qui realise lien entre ordinateur et groupe.

Est-il possible d'ajouter à la vue 'Ordinateur' le champs groupe de cette table de lien, afin de pouvoir "Filtrer" les ordinateurs affectés au groupe (par exemple)
Si oui, que faut-il ajouter dans les scripts du plugin ?

j'ai essayé d'ajouter une script computer.class.php (dans le inc du plugin) avec la fonction getsearchoptions()

mais visiblement, cette fonction n'est pas appelée (-> 'jai ajouté var-dump à ce niveau )

Merci

Last edited by ec2311 (2024-10-29 15:47:08)


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#2 2024-10-29 10:54:11

btry
Moderator
Registered: 2015-10-01
Posts: 605

Re: [ResoluAjout de champs d'un plugin dans les filtres de l'asset associé

Bonjour

Vous avez besoin de créer un hook dans le plugin pour ajouter une search option à l'objet Computer. Voyez la documentation suivante : https://glpi-developer-documentation.re … hooks.html en cherchant dans la page le mot getAddSearchOptionsNew

Vous avez besoin de créer dans hook.php la fonction plugin_foo_getAddSearchOptionsNew($itemtype): array { ... } (foo étant le nom de votre plugin)

Ensuite  lisez https://glpi-developer-documentation.re … ch-options pour spécifier les search options dont vous avez besoin. Inspirez vous aussi de ce qui existe dans GLPI car c'est parfois un peu compliqué à mettre en place.


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

#3 2024-10-29 11:46:38

ec2311
Member
Registered: 2016-04-07
Posts: 352

Re: [ResoluAjout de champs d'un plugin dans les filtres de l'asset associé

Bonjour @Btry,

Merci pour votre reponse et votre aide
En effet, je parviens à afficher le champs dans le filtre smile


je confirme que le joinparams ne semble pas aisé à maitriser

en l'occurence dans ma table de plugin : j'ai un itemtype (qui contient type asset)
et un type contact (qui contient groupe ou utilisateur)

j'essaie de pouvoir retrouver (via les filtres) l'asset pour lequel le groupe (ou utilsiateur) aura été selectionné


mais pour réaliser la jonction : j'arrive à une erreur SQL -> le champs glpi_groups.computers_id n'existe pas
Je pense que le souci est dans le joinparams wink


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

#4 2024-10-29 11:48:27

cconard96
Moderator
Registered: 2018-07-31
Posts: 2,806
Website

Re: [ResoluAjout de champs d'un plugin dans les filtres de l'asset associé

https://glpi-developer-documentation.re … hooks.html

Vous pouvez essayer d'utiliser le hook du plugin « getAddSearchOptionsNew ».
L'ajout d'une classe « informatique » à votre plugin ne la relie pas à la classe « informatique » de GLPI lui-même.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#5 2024-10-29 12:04:00

btry
Moderator
Registered: 2015-10-01
Posts: 605

Re: [ResoluAjout de champs d'un plugin dans les filtres de l'asset associé

Regardez bien la clé jointype et lisez la documentation.

c'est cela qui va déterminer comment joindre une table avec la suivante.

REFTABLE corespond à la table déjà dans la requête SQL (celle qui est le plus en profondeur dans l'imbrication des beforejoin, et NEWTABLE est la table à joindre.

Basez vous sur les types empty et child pour bien saisir ce concept. Par exemple le type de jointure entre Computer et Location n'est pas explicité dans le code donc c'est empty (type par défaut). Computer contient une clé étrangère vers Location

REFTABLE.`#linkfield#` = NEWTABLE.`id`

linkfield est locations_id (calculé automatiquement par GLPI)
REFTABLE = glpi_computers
NEWTABLE = glpi_locations

Utilisez le mode debug de GLPI pour voir la requête générée par votre code, et analysez la patiemment (copiez la dans un éditeur pour la formater et la rendre lisible)


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

#6 2024-10-29 15:46:49

ec2311
Member
Registered: 2016-04-07
Posts: 352

Re: [ResoluAjout de champs d'un plugin dans les filtres de l'asset associé

j'ai reussi à faire fonctionner le joinparam
Un grand merci à vous 2
Franchement : pas tres simple pour y arriver wink


GLPI 10.0.10
GLPIinventory 1.3.4

Agents : FI (2.6, 2.5) et Glpiagents (1.7)

Offline

Board footer

Powered by FluxBB