pluginsGLPI / formcreator

GLPI Plugin Formcreator (DOWNLOAD : https://github.com/pluginsGLPI/formcreator/releases)
http://www.teclib-edition.com
GNU General Public License v3.0
174 stars 125 forks source link

CAMPO DINAMICO #3486

Open petrickfreitas opened 7 months ago

petrickfreitas commented 7 months ago

Describe the bug Faço uso do GLPI versão 10.0.14 juntamente com o FormCreator versão 2.13.9. Preciso criar um campo em um dos formulários, para que esse campo consulte uma base externa de clientes. Já pensei em colocar um campo do tipo selecionar e nele colocar a lista de clientes como valores, só que essa base de clientes é atualizada diariamente com aproximadamente 250 clientes por dia, não dar pra ficar fazendo isso manualmente. Criei um arquivo em php, aonde ele faz a conexão com um banco de dados externo via odbc, onde estão os registros dos clientes e me retorna todos os clientes. Esse arquivo salvei no diretório /var/www/html/glpi/marketplace/formcreator/inc/field com o nome testefield.class.php:

"<?php $modocon = 'cache32'; $usuario = ''; $senha = '';

$conexao = odbc_connect($modocon, $usuario, $senha);

if (!$conexao) { exit("Erro na conexão com o banco de dados: " . odbc_errormsg()); }

$query = "SELECT TOP 5 CNPJCPF, codCliente, nome FROM Fat.Cliente WHERE situacao = 1";

$res = odbc_exec($conexao, $query);

$clientes = array();

while ($row = odbc_fetch_row($res)) { $clientes[] = array( 'CNPJ_CPF' => odbc_result($res, "CNPJCPF"), 'Codigo_Cliente' => odbc_result($res, "codCliente"), 'Razao_Social' => odbc_result($res, "nome") ); }

if (count($clientes) == 0) { echo ("0 resultados" . odbc_errormsg()); } else { echo json_encode($clientes); }

odbc_close($conexao); ?>" e no diretório /var/www/html/glpi/marketplace/formcreator/templates/field criei o arquivo com o nome testefield.html.twig:

"

<input type="text" class="form-control" id="{{ item.getId }}" name="formcreatorfield{{ item.getId }}" value="{{ item.default_values }}" {% if item.isRequired %} required {% endif %}

"

Quando crio esses arquivos, e acesso o GLPI para adicionar uma nova questão no formulário, só aparece para inserir o nome e a seção, o botão de salvar some, e os demais para colocar o tipo do botão também e etc... Não tendo como criar uma nova questão e nem editar uma já criada. Quando excluo os arquivos volta ao normal. Gostaria de uma ajuda, para saber como poderia resolver esse meu problema de criar um campo no formulário para que consulte uma base. Ou se tiver outra alternativa de fazer isso também, aceito sugestões.

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

GLPI / Plugins (please complete the following information):

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context Add any other context about the problem here.

ftoledo commented 7 months ago

We working on add custom field too. Any tips will be appreciated

btry commented 7 months ago

Hi

You should chech in php-errors.log and sql-errors.log. You should find errors related to your code.

Your file testefield.php does not contains any class, then it is not good. You should examine dropdownfield and see how it is implemented. Check also the interface PluginFormcreatorFieldInterface and the class PluginFormcreatorAbstractField