Criar formulário no site da FAHOR - Joomla

De IT's Instruções de Trabalho - FAHOR/CFJL
Ir para navegação Ir para pesquisar

ITCI071 - Essa instrução de trabalho apresenta os passos para criar formulário no site da FAHOR - Joomla.

Foi criado um processo para a geração de formulários no site da FAHOR, via Joomla, conforme pode ser observado o código e o resultado abaixo:

  • Exemplo de código para gerar um formulário
ClipCapIt-180131-114405.PNG
  • Resultado na prática
ClipCapIt-180131-114506.PNG
  • O código crú e atualizado, pode ser conferido abaixo:
{source 0}<?php

$estrutura = array();
$estrutura['action'] = '/infraestrutura/1703-teste-formulario';

$nome = ['text', 'nome', 'Nome', 6, 'Informe seu nome completo'];
$email = ['email', 'email', 'E-mail', 4];
$sexo = ['radio', 'sexo', 'Sexo', ['M'=>'Masculino','F'=>'Feminino']];
$confirma = ['checkbox', 'confirma', 'Confirmação', ['S'=>'Li e concordo']];
$cursos = ['select', 'cursos', 'Cursos', 4, ['Eng. Mecânica', 'Eng. Produção', 'Economia']];
$mensagem = ['textarea', 'mensagem', 'Mensagem', 10, 4];
$dtnasc = ['text', 'dtnasc', 'Dt. Nasc.', 3, 'dd/mm/aaaa', '\d{2}/\d{2}/\d{4}'];
$id = ['static','idpessoa', 'Cód. Pessoa'];

$estrutura['campos'] = [$nome, $email, $sexo, $confirma, $cursos];
$estrutura['obrigatorios'] = ['nome','sexo', 'cursos'];

echo criaFormulario($estrutura);

if($_POST) echo '<br><pre>' . var_export($_POST, true) . '</pre>';

?>{/source}
  • Para criar um formulário, desabilite o editor, deixando a edição sem formatação:
ClipCapIt-180131-115059.PNG
  • Segue abaixo o código explicado:
{source 0}<?php

//inicializando a variável que armazena a estrutura do formulário
$estrutura = array();

//definindo o local para onde os dados serão enviados (normalmente o próprio artigo, sem o domínio mas iniciado pela raiz "/")
$estrutura['action'] = '/infraestrutura/1703-teste-formulario';

//parâmetros para campos TEXT e EMAIL:
//tipo de input - nome no input - label do campo - tamanho do campo (de 1 a 10) - placeholder (dica dentro do campo)
$nome = ['text', 'nome', 'Nome', 6, 'Informe seu nome completo'];
$email = ['email', 'email', 'E-mail', 4];

//para RADIO temos: tipo de input - nome no input - label do campo - opções (vetor associativo de itens separados por vírgula VALOR=>LABEL)
$sexo = ['radio', 'sexo', 'Sexo', ['M'=>'Masculino','F'=>'Feminino']];

//para CHECKBOX: tipo de input - nome no input - label do campo - opção (vetor associativo único de VALOR=>LABEL)
$confirma = ['checkbox', 'confirma', 'Confirmação', ['S'=>'Li e concordo']];

//para SELECT: tipo de input - nome no input - label do campo - tamanho (de 1 a 10) - opções (vetor de valores separados por vírgula)
$cursos = ['select', 'cursos', 'Cursos', 4, ['Eng. Mecânica', 'Eng. Produção', 'Economia']];

//para SELECT (chave valor): tipo de input - nome no input - label do campo - tamanho (de 1 a 10) - opções (vetor de valores separados por vírgula)
$cursos = ['selectv', 'cursos', 'Cursos', 4, [1=>'Eng. Mecânica', 2=>'Eng. Produção', 'xyz'=>'Economia']];

//para TEXTAREA: tipo de campo - nome do campo - label - tamanho (largura, de 1 a 10) - linhas (altura, de 1 a n) - placeholder (texto dentro do campo)
$mensagem = ['textarea', 'mensagem', 'Mensagem', 10, 4];

//para um campo padronizado, como data, pode-se fazer um campo texto com um pattern:
//tipo de input - nome no input - label do campo - tamanho do campo (de 1 a 10) - placeholder (dica dentro do campo) - pattern
$dtnasc = ['text', 'dtnasc', 'Dt. Nasc.', 3, 'dd/mm/aaaa', '\d{2}/\d{2}/\d{4}'];

//os últimos parâmetros limitam o período que poderá ser selecionado no calendário do sistema
$dtfim = ['date', 'dtfim', 'Data Final', 3, date('Y-m-d')];
$hrfim = ['time', 'hrfim', 'Hora Final', 2, '07:30', '23:00'];

//o último parâmetro insere um campo de texto que pode ser preenchido
$ambiente6 = ['checkbox', 'ambiente6', '', ['outros'=>'Outros'], 'Qual?'];

//para um campo estático e inalterável:
$id = ['static', 'idpessoa', 'Cód. Pessoa'];

//agora temos que definir quais dos campos acima farão parte do formulário
$estrutura['campos'] = [$nome, $email, $sexo, $confirma, $cursos];

//o nome dos campos que são obrigatórios devem estar neste formato
$estrutura['obrigatorios'] = ['nome','sexo', 'cursos'];

echo criaFormulario($estrutura);

if($_POST) echo '<br><pre>' . var_export($_POST, true) . '</pre>';

?>{/source}
  • Você pode já pré-preencher os valores dos campos, bastando fazer algo como:
{source 0}<?php

$_POST['nome'] = 'Fulana de Tal';
$_POST['sexo'] = 'F';
$_POST['idpessoa'] = 44;

$estrutura = array();
//criar campos com os mesmos nomes acima para valorizá-los
...
?>{/source}
  • Para aceitar o POST e fazer uma ação, verifique se veio o input "post"
{source 0}<?php

if(isset($_POST['post'])) {
   //usar os valores que o usuário preencheu...
   
   //success, info, warning, danger
   echo alert('success','Agradecemos o contato, em breve entraremos em contato!');
} else {
   ...
   $estrutura = array();
}
?>{/source}