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 2018-11-22 20:23:31

ludoo26
Member
Registered: 2013-01-16
Posts: 11

formcreator

Bonjour à tous ,
est-il possible de faire un REST sur formcreator , pour avoir le dernier formulaire remplit d'un formulaire précis.
merci pour vos remarque.

Offline

#2 2018-11-23 12:42:33

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

$formname="nom  de mon formulaire";

$searchUrl="/search/PluginFormcreatorForm_Answer?is_deleted=0&range=0-0&order=DESC&sort=6";
$searchUrl .= "&criteria[0][link]=AND&criteria[0][field]=3&criteria[0][searchtype]=contains&criteria[0][value]=".rawurlencode($formname);


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#3 2018-11-23 14:45:20

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

.rawurlencode , c'est quoi comme langage ?, actuellement , j'utilise powershell pour faire mes requêtes REST.

Offline

#4 2018-11-23 15:16:18

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

c'est du php pour la gestion des espaces dans les noms des formulaires.
je n'ai pas trouvé la recherche par id formulaire . la recherche sur du texte c'est moyen et j'ai quelques problèmes avec les caractères spéciaux.

j'ai essayé en ajoutant dans les search options de glpi/plugins/formcreator/inc/form_answer_class.php  le code suivant :
      $tab[] = [
         'id'                 => '9',
         'table'              => 'glpi_plugin_formcreator_forms',
         'field'              => 'id',
         'name'               => __('ID'),
         'searchtype'         => 'contains',
         'datatype'           => 'integer',
         'massiveaction'      => false
      ];
ensuite je peux faire mon url comme suit avec l'id du formulaire ( je mets des ^et $ à cause du contains)

$formid="5";
$searchUrl="/search/PluginFormcreatorForm_Answer?is_deleted=0&range=0-0&order=DESC&sort=6";
$searchUrl .= "&criteria[0][link]=AND&criteria[0][field]=9&criteria[0][searchtype]=contains&criteria[0][value]=^".$formid."$";
$obj=glpi_get($searchUrl);


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#5 2018-11-23 15:17:29

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

la requete PS :
$result = $(Invoke-RestMethod "$($GLPI_api)search/PluginFormcreatorForm_Answer?is_deleted=0&range=0-0&order=DESC&sort=6" -Method Get -Headers $HeadersRequest)

le resultat :
totalcount    : 3
count         : 1
sort          : 6
order         : DESC
data          : {@{1=Mouvement; 2=3; 3=Mouvement; 4=glpi; 5=; 6=2018-11-20 18:02:12}}
content-range : 0-0/3

je cherche le contenue du formulaire
- nom
- prenom

Offline

#6 2018-11-23 15:31:49

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

i create a feature request on git hub to add this searchoption.

j'ai fait une demande sur GitHub pour ajouter la recherche par id du formulaire :
https://github.com/pluginsGLPI/formcreator/issues/1220


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#7 2018-11-23 15:40:39

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

les plugins ne sont pas en mode REST ?
quand on fait un REST sur un ticket : $result = $(Invoke-RestMethod "$($GLPI_api)Ticket?" -Method Get -Headers $HeadersRequest)
j'ai l'ensemble des propriétés du ticket
id                         : 3
entities_id                : 0
name                       : Mouvement agent
date                       : 2018-11-20 18:02:12
closedate                  :
solvedate                  :
date_mod                   : 2018-11-20 18:02:12
users_id_lastupdater       : 2
status                     : 2
users_id_recipient         : 2
requesttypes_id            : 7
content                    : Données du formulaire
                             =================
                             
                             
                             Utilisateur
                             ---------------------------------
                             1) Nom : Hugo
                             
                             2) prenom : SKY

quand on fait un REST sur un formcreator : $result = $(Invoke-RestMethod "$($GLPI_api)Ticket?" -Method Get -Headers $HeadersRequest)
j'ai ce résultat
totalcount    : 3
count         : 3
sort          : 1
order         : ASC
data          : {@{1=Mouvement; 2=1; 3=Mouvement; 4=glpi; 5=; 6=2018-06-29 10:05:11}, @{1=Mouvement; 2=2; 3=Mouvement; 4=glpi; 5=;
                6=2018-07-02 09:18:33}, @{1=Mouvement; 2=3; 3=Mouvement; 4=glpi; 5=; 6=2018-11-20 18:02:12}}
content-range : 0-2/3

Offline

#8 2018-11-23 15:56:37

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

vous avez recherché la dernière réponses au formulaires sans préciser quel formulaire a été utilisé.

il vous manque : &criteria[0][link]=AND&criteria[0][field]=3&criteria[0][searchtype]=contains&criteria[0][value]=LeNomDeMonFormulaire.

l'url que je vous ai donnée vous permet de faire une recheche, pour avoir l'id du dernier formulaire créé
dans votre recherche vous avez
data          : {@{1=Mouvement; 2=3; 3=Mouvement; 4=glpi; 5=; 6=2018-11-20 18:02:12}}

le 3 correspond au formulaire de réponse,

vous pouvez maintenant faire   

$url="/PluginFormcreatorForm_Answer/3";  (le 3 que vous venez de récupérer dans data)

mais je pense que vous avez besoin de :
$url="/PluginFormcreatorAnswer/";


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#9 2018-11-23 16:06:02

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

oups, visiblement on ne peut pas récupérer la classe PluginFormcreatorAnswer par l'API.


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#10 2018-11-23 16:18:47

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

ok avec la requête : $result = $(Invoke-RestMethod "$($GLPI_api)search/PluginFormcreatorForm_Answer/3" -Method Get -Headers $HeadersRequest)

Security die. trying to load a forbidden class name

Offline

#11 2018-11-23 16:19:56

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

reste le mode sql , mais c autre chose.

Offline

#12 2018-11-23 16:24:00

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

attention si vous faites un GET en précisant l'ID vous ne devez pas ajouter le "search"  .


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#13 2018-11-23 16:28:35

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

merci pour l'aide et les explications , je vais chercher en mode sql.

Offline

#14 2018-11-23 16:56:52

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,167

Re: formcreator

en sql ça donne un truc comme ça, vous n'avez qu'à canger le F.ID avec l'id de votre formulaire

SELECT F.`name`,S.`name`,Q.`name`,FA.`name`,A.`answer`
FROM `glpi_plugin_formcreator_forms` AS F
JOIN `glpi_plugin_formcreator_sections` AS S on S.`plugin_formcreator_forms_id`=F.`id`
JOIN `glpi_plugin_formcreator_questions` AS Q ON Q.`plugin_formcreator_sections_id` =S.`id`
LEFT OUTER JOIN `glpi_plugin_formcreator_forms_answers` AS FA ON FA.`plugin_formcreator_forms_id`=F.`id`
LEFT OUTER JOIN `glpi_plugin_formcreator_answers` AS A on A.`plugin_formcreator_forms_answers_id`=FA.`id` AND A.`plugin_formcreator_questions_id`=Q.`id`
WHERE F.id=77
ORDER BY `A`.`answer` DESC


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#15 2018-11-23 17:23:06

ludoo26
Member
Registered: 2013-01-16
Posts: 11

Re: formcreator

yes nickel , merci pour la requête car j’étais super loin du résultat

SELECT glpi.glpi_plugin_formcreator_forms_answers.id, glpi.glpi_plugin_formcreator_answers.answer, glpi.glpi_plugin_formcreator_answers.plugin_formcreator_questions_id
from glpi.glpi_plugin_formcreator_forms_answers as a
join glpi.glpi_plugin_formcreator_answers as r on a.id=r.plugin_formcreator_forms_answers_id

Offline

Board footer

Powered by FluxBB