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 2020-07-17 06:36:20

windrake_nc
Member
Registered: 2020-05-20
Posts: 14

API Plugins Fields - Cannot declare class PluginFields

Bonjour,

J'ai migré de serveur depuis la version 9.5.0 de GLPI, je ne sais donc pas si cela est lié à la maj de GLPI ou de serveur Linux Debian ou autres.

J'ai un script qui ajoute des infos via l'API dans des champs supplémentaire grace au plugins "Champs Supplémentaires"
J'ai un retour 500 Internal Server Error lorsque j'interroge l'API.

Log du ngninx:
PHP message: PHP Fatal error:  Cannot declare class PluginFieldsComputerpropritaire, because the name is already in use in /var/www/xxxxx/files/_plugins/fields/inc/computerpropritaire.class.php on line 59"

Serveur Debian 10.4 - Ngninx - Php 7.3

J'ai testé sur le même serveur avec une installation neuf de glpi, idem même soucis.
J'ai supprimé les fichiers dans /files/_plugins/fields/ et cliqué sur "Régénérer les fichiers blocs", idem même soucis

Si quelqu'un a une idée ? merci beaucoup.

Last edited by windrake_nc (2020-08-03 11:18:45)

Offline

#2 2020-08-03 11:19:48

windrake_nc
Member
Registered: 2020-05-20
Posts: 14

Re: API Plugins Fields - Cannot declare class PluginFields

Bonjour, si un contributeur a un exemple d'API qui fonctionne avec le plugin Fields et glpi 9.5.1 svp.
Merci

Offline

#3 2020-08-05 14:14:06

Galaellien
Member
From: Lyon, France
Registered: 2020-08-04
Posts: 4

Re: API Plugins Fields - Cannot declare class PluginFields

Bonjour,

J'utilise GLPI 9.5.1 et le plugin Fields 1.11.0
J'arrive à mettre à jour les champs d'un bloc créé via le plugin en utilisant l'API avec une commande curl de base comme décrite dans la doc de l'API.
En pratique:

 curl -X PUT \
        -H 'Content-Type: application/json' \
        -H "Session-Token: $session_token" \
        -H "App-Token: $app_token" \
        -d '{"input": {"id": 1, "champonefield": "100"}}' \
        "${glpi_api_url}/Project/"

en remplaçant les variables par les valeurs correspondantes.

Si vous faites une requête de type GET listSearchOptions/:itemtype/, vous retrouvez bien vos champs supplémentaires?

Offline

#4 2020-10-01 11:12:24

windrake_nc
Member
Registered: 2020-05-20
Posts: 14

Re: API Plugins Fields - Cannot declare class PluginFields

Bonjour, désole je n'avais pas vue la réponse.
Oui avec un listSearchOptions/Computer/ je voie bien mes champs supplémentaire

Mais lorsque je fais un

https://srvglpi/apirest.php/PluginFieldsComputerpropritaire?input[0][id]=4&input[0][macfield]=TEST

j'ai une erreur 500.
Je comprends pas. J'ai testé sur une installation propre de GLPI. la requête marchais avant j'ai tout vérifier mais je passe à coté de quelque chose.
Merci

Offline

#5 2020-10-06 22:33:30

Fabguy
Member
Registered: 2018-04-09
Posts: 9

Re: API Plugins Fields - Cannot declare class PluginFields

Bonjour,
je rencontre exactement la même erreur sur les champs créés via le PluginFields 1.11.0 avec GLPI 9.5
Cela fonctionnait avant la mise à jour de GLPI et du plugin Fields.
Quand je fais un GET sur un champ créé avec le Plugin Field : curl -s -X GET -H 'Content-Type: application/json' -H "Session-Token: $token" 'http://xxxx/glpi/apirest.php/PluginFieldsDpartementfieldDropdown/
Je ne récupère aucune valeur alors que si je fais un Get sur un champ Intitulé classique (par exemple les lieux) :
curl -s -X GET -H 'Content-Type: application/json' -H "Session-Token: $token" 'http://xxxx/glpi/apirest.php/location/
Là je récupère toutes les valeurs de la table location.
Il y a donc visiblement un bug avec les nouvelles version du coupe GLPI/Fields

Y'aura t'il prochainement un correctif ?

Offline

#6 2020-10-08 08:16:43

windrake_nc
Member
Registered: 2020-05-20
Posts: 14

Re: API Plugins Fields - Cannot declare class PluginFields

Bonjour,
Je viens de refaire le test sur une installation propre de GLPI 9.5.2 et toujours le même soucis. Je n'arrive pas a ajouter ou modifier via l'API un champs personnalisé sur Computer.
Je n'ai plus d'idée de tests...

Offline

#7 2020-12-10 10:37:39

eddiegordo
Member
Registered: 2020-12-10
Posts: 1

Re: API Plugins Fields - Cannot declare class PluginFields

Hello,
J'ai rencontré exactement le même problème.
- PluginFields 1.12.0
- GLPI 9.5.3
- PHP 8.0

J'ai réussi à faire fonctionner l'API en modifiant le fichier \plugins\fields\inc\autoload.php.
Dans la fonction autoload(), à la ligne 57, remplacer la ligne

return include($test);

par

return include_once($test);

Je n'ai plus d'erreur 500 et les champs custom s'udatent correctement via l'API.
Il s'agit d'un workaround et non de la résolution officielle, mais si ca peut aider...

Offline

#8 2020-12-29 08:20:55

windrake_nc
Member
Registered: 2020-05-20
Posts: 14

Re: API Plugins Fields - Cannot declare class PluginFields

Bonjour,
Je viens de faire le test et effectivement ça fonctionne comme avant. Merci eddiegordo pour l'astuce.

Offline

#9 2021-02-20 09:37:53

KongNan
Member
Registered: 2018-09-01
Posts: 27

Re: API Plugins Fields - Cannot declare class PluginFields

It works for me too! Hope this can be fixed officially.

Offline

Board footer

Powered by FluxBB