You are not logged in.
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
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
Bonjour @Btry,
Merci pour votre reponse et votre aide
En effet, je parviens à afficher le champs dans le filtre
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
GLPI 10.0.10
GLPIinventory 1.3.4
Agents : FI (2.6, 2.5) et Glpiagents (1.7)
Offline
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
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
j'ai reussi à faire fonctionner le joinparam
Un grand merci à vous 2
Franchement : pas tres simple pour y arriver
GLPI 10.0.10
GLPIinventory 1.3.4
Agents : FI (2.6, 2.5) et Glpiagents (1.7)
Offline