Caminho no Gestor bibliotecas/interface.php
A interface.php é o motor de CRUD do painel. Um módulo administrativo não monta telas de listagem, edição e exclusão à mão: ele diz o que quer (tabela, colunas, campos, validações, botões), e a biblioteca desenha a tela a partir de componentes (interface-listar, interface-formulario-edicao…), grava histórico, trata os AJAX padrão e dispara os hooks.
Peça a biblioteca no JSON do módulo ("bibliotecas": ["interface", …]).
O ciclo de um módulo
Todo controlador de módulo segue o mesmo esqueleto:
function meu_modulo_start(){
global $_GESTOR;
gestor_incluir_bibliotecas();
if($_GESTOR['ajax']){
interface_ajax_iniciar();
switch($_GESTOR['ajax-opcao']){ /* AJAX próprios do módulo */ }
interface_ajax_finalizar(); // AJAX padrão: listar, histórico, backup, verificar-campo
} else {
meu_modulo_interfaces_padroes(); // preenche $_GESTOR['interface'][<opcao>]
interface_iniciar();
switch($_GESTOR['opcao']){
case 'adicionar': meu_modulo_adicionar(); break;
case 'editar': meu_modulo_editar(); break;
}
interface_finalizar();
}
}-
interface_iniciar()roda antes do código do módulo. Ele lê$_GESTOR['opcao'](e, se houver,$_GESTOR['interface-opcao']), chama ointerface_<opcao>_iniciar()correspondente com os parâmetros de$_GESTOR['interface'][<opcao>]['iniciar']e liga as bandeiras que o módulo testa:-
$_GESTOR['adicionar-banco']quando o formulário de inclusão foi enviado (_gestor-adicionar); -
$_GESTOR['atualizar-banco']quando o de edição foi enviado (_gestor-atualizar); -
$_GESTOR['modulo-registro-id']com o id do registro (?id=em GET, ou_gestor-registro-id). Sem id nas opções que precisam dele, redireciona para a raiz do módulo.
-
-
interface_finalizar()roda depois. Chama ointerface_<opcao>_finalizar()com$_GESTOR['interface'][<opcao>]['finalizar'], que desenha a tela em$_GESTOR['pagina'], e depois imprime o alerta pendente e renderiza os componentes marcados. -
Com
$_GESTOR['interface-nao-aplicar'], os dois não fazem nada.
Opções
opcao / interface-opcao |
O que o finalizador faz |
|---|---|
listar |
Tabela paginada (Tailwind; DataTables na variante clássica) com busca, ordenação, ações por linha e modal de exclusão |
adicionar, clonar |
Formulário de inclusão (interface-formulario-inclusao). clonar exige id e parte do registro existente |
editar |
Formulário de edição (interface-formulario-edicao, com variante Tailwind), metadados e histórico |
visualizar |
Tela somente leitura (interface-formulario-visualizacao) |
status |
Troca status do registro (?id=…&status=A|I), incrementa versao, registra no histórico |
excluir |
Exclusão lógica: status='D', versao+1, histórico e redirecionamento |
config |
Tela de configuração do módulo, sem registro (interface-formulario-configuracoes) |
alteracoes, simples, adicionar-incomum, editar-incomum |
Só via interface-opcao: variações para telas que não seguem o CRUD padrão |
Os tratadores de cada opção:
| Opção | Início | Fim |
|---|---|---|
listar |
interface_listar_iniciar() (vazio) |
interface_listar_finalizar() |
adicionar |
interface_adicionar_iniciar() |
interface_adicionar_finalizar() |
clonar |
interface_clonar_iniciar() (aceita forcarId) |
interface_adicionar_finalizar() |
editar |
interface_editar_iniciar() (aceita forcarId) |
interface_editar_finalizar() |
visualizar |
interface_visualizar_iniciar() |
interface_visualizar_finalizar() |
status |
interface_status_iniciar() (exige id e status em GET) |
interface_status_finalizar() |
excluir |
interface_excluir_iniciar() (exige id em GET) |
interface_excluir_finalizar() |
config |
interface_config_iniciar() |
interface_config_finalizar() |
alteracoes |
interface_alteracoes_iniciar() (usa modulo-registro-padrao-id sem id) |
interface_alteracoes_finalizar() |
simples |
interface_simples_iniciar() |
interface_simples_finalizar() |
adicionar-incomum |
interface_adicionar_incomum_iniciar() |
interface_adicionar_incomum_finalizar() |
editar-incomum |
interface_editar_incomum_iniciar() |
interface_editar_incomum_finalizar() |
Hooks disparados
Para o módulo X e a opção O (e também para a interface-opcao):
-
hook_do_action('X', 'O.pre-banco')em todo POST, antes do código do módulo; -
O.parametrosem GET, antes do finalizador; -
O.paginaem GET, depois do finalizador; -
excluir.banco(com o id) após a exclusão, estatus.banco(com id e novo status) após a troca de status.
Veja a doc de hooks para registrar ouvintes.
Parâmetros dos finalizadores
Os finalizadores de formulário (adicionar, editar, visualizar, config, alteracoes, simples, *-incomum) aceitam, conforme o caso:
| Parâmetro | Efeito |
|---|---|
formulario |
['validacao' => [...], 'campos' => [...], 'opcao' => …]: validação no cliente e campos gerados (abaixo) |
botoes |
Botões do cabeçalho: [id => ['url','rotulo','tooltip','icon','cor', 'callback'?]] |
botoes_rodape |
Botões extras ao pé do formulário, mesmo formato |
sem_botao_padrao |
Remove o botão de enviar padrão |
metaDados |
Lista [['titulo' => …, 'dado' => …]] exibida ao lado do formulário |
removerNaoAlterarId / removerBotaoEditar |
Tiram o "não alterar id" e o botão de edição |
variaveisTrocarDepois |
['chave' => 'valor'] trocados como #chave# no fim da montagem |
campoTitulo / forcarSemID |
visualizar: campo usado no título, ou dispensa de registro |
banco, historico, callbackFunction |
status/excluir: outra tabela, sem histórico, e função chamada após a gravação |
Os formulários trocam automaticamente todos os #form-…# do HTML pelas variáveis do módulo cujo id contém form (gestor_variaveis(['conjunto' => true, 'padrao' => 'form'])).
Listagem
$_GESTOR['interface']['listar']['finalizar'] = Array(
'banco' => Array(
'nome' => 'paginas', 'id' => 'id', 'status' => 'status',
'campos' => Array('nome', 'caminho', 'data_modificacao'),
'where' => "language='".$_GESTOR['linguagem-codigo']."'",
),
'tabela' => Array(
'rodape' => true,
'colunas' => Array(
Array('id' => 'nome', 'nome' => 'Nome', 'ordenar' => 'asc'),
Array('id' => 'data_modificacao', 'nome' => 'Modificação', 'formatar' => 'dataHora', 'nao_procurar' => true),
),
),
'opcoes' => Array(
'editar' => Array('url' => 'editar/', 'tooltip' => '…', 'icon' => 'edit', 'cor' => 'basic blue'),
'excluir' => Array('opcao' => 'excluir', 'tooltip' => '…', 'icon' => 'trash', 'cor' => 'basic red'),
),
'botoes' => Array( /* botão "Adicionar" etc. */ ),
);-
interface_listar_finalizar()desenha o layoutinterface-listare o modalinterface-delecao-modal, e inclui o DataTables.interface_listar_tabela()monta a primeira página no servidor e publica a configuração emjavascript-vars.interface.lista. -
A coluna de ações é a primeira (req-147) e usa uma chave própria (
INTERFACE_COLUNA_ACOES), para o id dos botões nunca vir de uma coluna formatada. -
Colunas:
ordenar(asc/desc),nao_ordenar,nao_procurar,nao_visivel,classNameeformatar(veja Formatação). -
Registros com
status='D'nunca aparecem. A página atual, o total e o tamanho da página ficam numa variável de sessão por usuário (<modulo>-<opcao>-interface-<usuario>), que as próximas chamadas AJAX usam. -
A paginação, a busca e a ordenação seguintes vêm por AJAX (
ajax-opcao=listar) eminterface_ajax_listar()→interface_listar_ajax(). A busca fazUCASE(coluna) LIKE UCASE('%termo%')em cada coluna pesquisável e emcolumnsExtraSearch(por padrão,id). Colunas, ordenação e colunas extras vêm só da configuração guardada na sessão pelo servidor; ocolumnsenviado pelo DataTables serve apenas de índice, nome de coluna precisa ser um identificador simples (interface_listar_coluna_segura()) e o termo é escapado, com%e_tratados como texto (req-189).
Formulários
Campos gerados (formulario.campos)
interface_formulario_campos() insere cada campo no marcador <span>#<id>#</span> da página, conforme o tipo:
tipo |
Gera |
|---|---|
select |
<select> Fomantic a partir de tabela (nome, campo, id_numerico ou id, where, id_selecionado/valor_selecionado) ou de dados ([['texto','valor','icone'?]]). Opções: menu, procurar, limpar, multiple, fluid, disabled, placeholder e ícones |
imagepick / imagepick-hosts |
Seletor de imagem do gerenciador de arquivos (id_arquivos/id_hosts_arquivos) |
templates-hosts |
Seletor de template por categoria_id (template_id, template_tipo gestor/hosts) |
Validação no navegador (formulario.validacao)
interface_formulario_validacao() publica regras para o validador do Fomantic/Tailwind. Cada item é ['regra', 'campo', 'label', 'identificador'?], e as regras são:
-
texto-obrigatorio(3 a 255 caracteres) etexto-obrigatorio-verificar-campo(além disso, consulta se o valor já existe); -
selecao-obrigatorio,nao-vazio,maior-ou-igual-a-zero; -
email,email-comparacao,email-comparacao-verificar-campo; -
senha,senha-comparacao,dominio; -
regexPermitederegexNecessary, comregrasExtrapara regex próprias.
removerRegra tira regras padrão.
Validação no servidor
interface_validacao_campos_obrigatorios(['campos' => [...], 'redirect' => …]) confere o $_REQUEST antes de gravar. Na primeira falha, grava um alerta e redireciona (para redirect ou recarrega a URL), encerrando a requisição.
| Regra | Confere |
|---|---|
texto-obrigatorio |
Tamanho entre min (padrão 3) e max (padrão 255), em bytes (strlen) |
selecao-obrigatorio |
Campo preenchido |
email-obrigatorio |
Regex própria de e-mail |
-
interface_verificar_campos(['campo', 'valor', 'language'?])diz se já existe outro registro ativo com aquele valor. Na edição, ignora o próprio registro, e pode olhar outra tabela viaverificarCamposOutraTabelano JSON do módulo. É o que o AJAXverificar-campo(interface_ajax_verificar_campo()) usa. O docblock da função descreve outros parâmetros; os reais são estes.
Histórico
-
interface_historico_incluir(['alteracoes' => [['campo','alteracao','alteracao_txt','valor_antes','valor_depois','tabela','filtro']], …])grava na tabelahistoricoquem mudou o quê, ligado ao módulo e ao registro. Aceitadeletar(conta a versão seguinte),sem_id,versao,tabelaalternativa e ids manuais (id_numerico_manual,id_usuarios_manual,id_hosts_manual,modulo_id). -
interface_historico(['id','modulo','pagina','sem_id'?])desenha o histórico paginado na tela de edição.interface_ajax_historico_mais_resultados()traz as páginas seguintes.
Os CRUDs usam o par banco_select_campos_antes_iniciar()/banco_select_campos_antes() para saber o "antes" (veja banco.php).
Backups de campo
Para campos longos (HTML, CSS), cada versão pode ser guardada e restaurada:
-
interface_backup_campo_incluir(['campo','id_numerico','versao','valor','modulo'?,'maxCopias'?])guarda a versão e apaga as mais antigas além demaxCopias; -
interface_backup_campo_select([...])desenha o dropdown de versões; -
interface_ajax_backup_campo()devolve o valor escolhido.
Alertas
interface_alerta(['msg' => …]) agenda uma mensagem para a tela. Com redirect, ela sobrevive ao próximo redirecionamento (fica na sessão). O interface_finalizar() chama interface_alerta(['imprimir' => true]), que publica o alerta em javascript-vars.interface.alert e inclui o modal-alerta.
Formatação de dados
interface_formatar_dado(['dado' => …, 'formato' => …]) é usada nas colunas formatar da listagem. Os formatos são:
-
dataedataHora:DD/MM/AAAAeDD/MM/AAAA HHhMM; -
dinheiroReaisedinheiroUSD; -
telefone; -
outraTabela: troca o id pelo nome de outra tabela, viainterface_trocar_valor_outra_tabela(); -
outroConjuntoeoutroArray: troca por um mapa (interface_trocar_valor_outro_conjunto()einterface_trocar_valor_outro_array()); -
encapsular: põe o dado dentro de um texto, viainterface_encapsular_valor().
formato também pode ser uma lista, aplicada em sequência, com valor_senao_existe e valor_substituir_por_rotulo.
As funções auxiliares de formatação:
-
interface_data_hora_from_datetime_to_text($dt, $formato = false)usa por padrão o formatoD/ME/A HhMI(D,ME,A,H,MIeSsão trocados pelas partes da data); -
interface_data_from_datetime_to_text($dt)devolveDD/MM/AAAA; -
interface_formatar_telefone($tel)formata números brasileiros com e sem+55e o padrão norte-americano+1; o resto sai só com+na frente.
Componentes e assets
-
interface_componentes_incluir(['componente' => [...]])marca componentes (modais de carregamento, deleção e alerta…), einterface_componentes()os renderiza no fim da página, na variante certa. -
interface_componente_variante($id)devolve<id>-tailwindnuma requisição só Tailwind;interface_componente_canonico($id)tira o sufixo. Assim o mesmo módulo serve Fomantic e Tailwind sem mudar código (req-118). -
interface_assets_incluir()incluiinterface/interface-tailwind.js(Tailwind puro) ouinterface/interface.css+interface/interface.js(Fomantic/híbrido). -
interface_botoes_cabecalho()einterface_botoes_rodape()desenham os botões a partir debotoes/botoes_rodape, pelointerface_botoes_html($botoes). Em página só Tailwind saem<a>/<button>com utilities e ícone Lucide (req-190):interface_botao_tailwind_classes($cor)traduz a cor do Fomantic (blue,green,red,basic …) em um de quatro tons, einterface_botao_tailwind_icone($icone)traduz o nome do ícone (sem tradução, o botão fica só com o rótulo). Oexcluirleva a URL emdata-hrefe abre o modal de deleção. As classes ficam no<template data-c2f-botoes>dos componentesinterface-formulario-*-tailwind; classe nova no PHP precisa entrar lá, senão sai sem estilo. Incluir e editar têm variante Tailwind; a listagem ainda é Fomantic. -
interface_modulo_variavel_valor(['variavel' => …])lê um campo do registro atual do módulo (usado para compor o título "Nome - …").
Segurança e defeitos conhecidos
Excluir e status exigem o token CSRF. Essas duas ações agem por GET (?opcao=excluir&id=…, ?opcao=status&status=I&id=…), e a validação global de CSRF só cobre POST/PUT/PATCH/DELETE. Por isso interface_excluir_iniciar() e interface_status_iniciar() chamam interface_acao_get_exigir_csrf(), que exige o token da sessão na query (_csrf_token); sem ele, mostram um alerta e voltam à raiz do módulo sem alterar nada (req-189). Os links do painel já saem com o token: interface_url_csrf($url) nos botões renderizados pelo servidor e window.interfaceUrlCsrf(url) nos links montados pelo interface.js/interface-v2.js. Link de excluir ou status montado à mão num módulo precisa passar por uma das duas.
Outros defeitos: interface_editar_finalizar() e interface_alteracoes_finalizar() passam 'id' => $id ao histórico sem definir $id (warning de variável indefinida). Sem efeito no resultado, porque interface_historico() ignora esse parâmetro e filtra pelo id_numerico do registro atual.
Veja também
Funções (referência gerada)
Gerado a partir de gestor/bibliotecas/interface.php · 65 funções
interface_data_hora_from_datetime_to_text
ver no código · linha 38 ↗interface_data_hora_from_datetime_to_text(string $data_hora, string|false $format = false): stringConverte data/hora do formato datetime (YYYY-MM-DD HH:MM:SS) para texto formatado.
Parâmetros
$data_horastring- Data/hora no formato datetime (YYYY-MM-DD HH:MM:SS)
$formatstring|false- Formato personalizado usando marcadores ou false para formato padrão
Retorno
interface_data_from_datetime_to_text
ver no código · linha 91 ↗interface_data_from_datetime_to_text(string $data_hora): stringConverte data do formato datetime (YYYY-MM-DD) para texto no formato brasileiro (DD/MM/YYYY).
Parâmetros
$data_horastring- Data/hora no formato datetime (YYYY-MM-DD HH:MM:SS)
Retorno
interface_trocar_valor_outra_tabela
ver no código · linha 122 ↗interface_trocar_valor_outra_tabela(array|false $params = false): string|arrayBusca e substitui valores de um campo usando referência de outra tabela.
Parâmetros
$paramsarray|false- Parâmetros da função:
Retorno
interface_trocar_valor_outro_conjunto
ver no código · linha 260 ↗interface_trocar_valor_outro_conjunto(array|false $params = false): stringTroca um valor por outro baseado em um conjunto de mapeamentos.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_trocar_valor_outro_array
ver no código · linha 296 ↗interface_trocar_valor_outro_array(array|false $params = false): stringTroca um valor por outro baseado em array de valores com campos específicos.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_encapsular_valor
ver no código · linha 331 ↗interface_encapsular_valor(array|false $params = false): stringEncapsula um valor dentro de uma cápsula de texto.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_formatar_telefone
ver no código · linha 356 ↗interface_formatar_telefone(string $telefone): stringFormata um número de telefone para exibição.
Parâmetros
$telefonestring- Número de telefone (pode conter +, espaços, hífens, parênteses).
Retorno
interface_formatar_dado
ver no código · linha 437 ↗interface_formatar_dado(array|false $params = false): stringFormata um dado de acordo com o formato especificado.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_alerta
ver no código · linha 548 ↗interface_alerta(array|false $params = false): void|stringGerencia alertas de mensagens para o usuário na interface.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_historico_incluir
ver no código · linha 639 ↗interface_historico_incluir(array|false $params = false): voidInclui registros no histórico de alterações do sistema.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_historico
ver no código · linha 766 ↗interface_historico(array|false $params = false): voidExibe o histórico de alterações de um registro do sistema.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_assets_incluir
ver no código · linha 1191 ↗interface_assets_incluir(): voidEnfileira o runtime da interface administrativa adequado ao framework da requisição (req-118).
Retorno
interface_componente_variante
ver no código · linha 1235 ↗interface_componente_variante(string $id, string|null $modo = null): stringDevolve o id da variante Tailwind de um componente quando a requisição é Tailwind pura.
Parâmetros
$idstring- Id canônico do componente.
$modostring|null- Modo resolvido; quando omitido, usa o da requisição corrente.
Retorno
interface_componente_canonico
ver no código · linha 1256 ↗interface_componente_canonico(string $id): stringReduz o id de um componente à sua forma canônica (sem o sufixo de variante).
Parâmetros
$idstring- Id possivelmente sufixado.
Retorno
interface_status_selo
ver no código · linha 1270 ↗interface_status_selo(string $status): stringSelo de status (ativo/inativo) dos metadados da tela de edição (req-219).
Parâmetros
$statusstring- 'A' (ativo) ou 'I' (inativo); outro valor devolve string vazia.
Retorno
interface_componentes_incluir
ver no código · linha 1294 ↗interface_componentes_incluir(array|false $params = false): voidMarca componentes para inclusão na interface.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_componentes
ver no código · linha 1336 ↗interface_componentes(array|false $params = false): voidRenderiza componentes marcados para inclusão na interface.
Parâmetros
$paramsarray|false- Parâmetros da função (não utilizado).
Retorno
interface_formulario_campos
ver no código · linha 1445 ↗interface_formulario_campos(array|false $params = false): voidGera campos de formulário dinamicamente para a interface.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_formulario_validacao
ver no código · linha 2311 ↗interface_formulario_validacao(array|false $params = false): voidConfigura validações de formulário usando Semantic UI.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_validacao_campos_obrigatorios
ver no código · linha 2779 ↗interface_validacao_campos_obrigatorios(array|false $params = false): voidValida campos obrigatórios server-side.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_modulo_variavel_valor
ver no código · linha 2880 ↗interface_modulo_variavel_valor(array|false $params = false): mixedObtém valor de variável do registro atual do módulo.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_backup_campo_incluir
ver no código · linha 2965 ↗interface_backup_campo_incluir(array|false $params = false): voidRegistra backup de campo no banco de dados.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_backup_campo_select
ver no código · linha 3057 ↗interface_backup_campo_select(array|false $params = false): voidRenderiza dropdown de seleção de versões de backup de um campo.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_verificar_campos
ver no código · linha 3180 ↗interface_verificar_campos(array|false $params = false): arrayVerifica alterações em campos comparando valores atuais com valores anteriores.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_botoes_cabecalho
ver no código · linha 3247 ↗interface_botoes_cabecalho(array|false $params = false): voidRenderiza botões de ação no cabeçalho da interface administrativa.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_botoes_rodape
ver no código · linha 3266 ↗interface_botoes_rodape(array|false $params = false): stringRenderiza botões de ação no rodapé da interface administrativa.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_botoes_html
ver no código · linha 3285 ↗interface_botoes_html(array $botoes): stringMonta o HTML de um conjunto de botões (cabeçalho ou rodapé), no framework CSS da página.
Parâmetros
$botoesarray- Botões por id: cor, icon, icon2, rotulo, tooltip, url, callback, target.
Retorno
interface_botao_tailwind_classes
ver no código · linha 3355 ↗interface_botao_tailwind_classes(string $cor): stringClasses Tailwind de um botão a partir da cor do Fomantic declarada no módulo (blue, basic red…).
Parâmetros
$corstring- Cor no vocabulário do Fomantic.
Retorno
interface_botao_tailwind_icone
ver no código · linha 3377 ↗interface_botao_tailwind_icone(string $icone): stringTraduz o nome de ícone do Fomantic para o equivalente do Lucide (carregado pelo layout Tailwind).
Parâmetros
$iconestring- Nome do ícone no Fomantic.
Retorno
interface_ajax_backup_campo
ver no código · linha 3466 ↗interface_ajax_backup_campo(array|false $params = false): voidProcessa requisição AJAX para restaurar backup de campo.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_ajax_historico_mais_resultados
ver no código · linha 3576 ↗interface_ajax_historico_mais_resultados(): voidProcessa requisição AJAX para carregar mais resultados do histórico.
Retorno
interface_ajax_listar
ver no código · linha 3603 ↗interface_ajax_listar(): voidProcessa requisição AJAX para listagem dinâmica de registros.
Retorno
interface_ajax_verificar_campo
ver no código · linha 3622 ↗interface_ajax_verificar_campo(): voidProcessa requisição AJAX para verificar existência de valor em campo.
Retorno
interface_acao_get_exigir_csrf
ver no código · linha 3668 ↗interface_acao_get_exigir_csrf()req-189 (A2): excluir e status agem por GET (?opcao=excluir&id=…), e a validação global de CSRF só cobre POST/PUT/PATCH/DELETE. Com o cookie SameSite=Lax, um link aberto por um administrador logado bastava para excluir ou desativar registros. Essas ações passam a exigir o token da sessão na query (_csrf_token); os links do painel já saem com ele (interface_url_csrf() e window.interfaceUrlCsrf). Sem o token: alerta e volta à raiz do módulo, sem alterar nada.
interface_url_csrf
ver no código · linha 3684 ↗interface_url_csrf(string $url): stringAcrescenta o token CSRF da sessão a links de opcao=excluir/opcao=status (req-189, A2).
Parâmetros
$urlstring
Retorno
interface_excluir_iniciar
ver no código · linha 3691 ↗interface_excluir_iniciar($params = false)Parâmetros
$params
interface_excluir_finalizar
ver no código · linha 3723 ↗interface_excluir_finalizar(array|false $params = false): voidFinaliza a interface de exclusão de registro (exclusão lógica).
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_status_iniciar
ver no código · linha 3839 ↗interface_status_iniciar(array|false $params = false): voidInicializa a interface de alteração de status de registro.
Parâmetros
$paramsarray|false- Parâmetros da função (não utilizado nesta função).
Retorno
interface_status_finalizar
ver no código · linha 3875 ↗interface_status_finalizar(array|false $params = false): voidFinaliza a interface de alteração de status de registro.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
interface_adicionar_iniciar
ver no código · linha 3967 ↗interface_adicionar_iniciar($params = false)Parâmetros
$params
interface_clonar_iniciar
ver no código · linha 3977 ↗interface_clonar_iniciar($params = false)Parâmetros
$params
interface_adicionar_finalizar
ver no código · linha 4005 ↗interface_adicionar_finalizar($params = false)Parâmetros
$params
interface_adicionar_incomum_iniciar
ver no código · linha 4123 ↗interface_adicionar_incomum_iniciar($params = false)Parâmetros
$params
interface_adicionar_incomum_finalizar
ver no código · linha 4133 ↗interface_adicionar_incomum_finalizar($params = false)Parâmetros
$params
interface_editar_incomum_iniciar
ver no código · linha 4230 ↗interface_editar_incomum_iniciar($params = false)Parâmetros
$params
interface_editar_incomum_finalizar
ver no código · linha 4262 ↗interface_editar_incomum_finalizar($params = false)Parâmetros
$params
interface_editar_iniciar
ver no código · linha 4429 ↗interface_editar_iniciar($params = false)Parâmetros
$params
interface_editar_finalizar
ver no código · linha 4461 ↗interface_editar_finalizar($params = false)Parâmetros
$params
interface_visualizar_iniciar
ver no código · linha 4647 ↗interface_visualizar_iniciar($params = false)Parâmetros
$params
interface_visualizar_finalizar
ver no código · linha 4675 ↗interface_visualizar_finalizar($params = false)Parâmetros
$params
interface_config_iniciar
ver no código · linha 4797 ↗interface_config_iniciar($params = false)Parâmetros
$params
interface_config_finalizar
ver no código · linha 4811 ↗interface_config_finalizar($params = false)Parâmetros
$params
interface_alteracoes_iniciar
ver no código · linha 4921 ↗interface_alteracoes_iniciar($params = false)Parâmetros
$params
interface_alteracoes_finalizar
ver no código · linha 4947 ↗interface_alteracoes_finalizar($params = false)Parâmetros
$params
interface_simples_iniciar
ver no código · linha 5113 ↗interface_simples_iniciar($params = false)Parâmetros
$params
interface_simples_finalizar
ver no código · linha 5127 ↗interface_simples_finalizar($params = false)Parâmetros
$params
interface_listar_coluna_segura
ver no código · linha 5229 ↗interface_listar_coluna_segura(string $coluna): boolNome de coluna aceito em ORDER BY/WHERE da listagem: identificador simples (nome, t.nome), nunca a coluna de ações nem expressão. req-189 (A1).
Parâmetros
$colunastring
Retorno
interface_listar_ajax
ver no código · linha 5234 ↗interface_listar_ajax($params = false)Parâmetros
$params
interface_listar_tabela
ver no código · linha 5408 ↗interface_listar_tabela($params = false)Parâmetros
$params
interface_listar_iniciar
ver no código · linha 5713 ↗interface_listar_iniciar($params = false)Parâmetros
$params
interface_listar_finalizar
ver no código · linha 5720 ↗interface_listar_finalizar($params = false)Parâmetros
$params
interface_ajax_iniciar
ver no código · linha 5820 ↗interface_ajax_iniciar($params = false)Parâmetros
$params
interface_ajax_finalizar
ver no código · linha 5827 ↗interface_ajax_finalizar($params = false)Parâmetros
$params
interface_iniciar
ver no código · linha 5860 ↗interface_iniciar($params = false)Parâmetros
$params
interface_finalizar
ver no código · linha 5927 ↗interface_finalizar($params = false)Parâmetros
$params
Listagem e estado no painel Tailwind
A listagem Tailwind delega a interface-listar-tailwind.php e ao seu script, com paginação e ordenação no servidor, sem DataTables. A variante clássica mantém DataTables. interface_status_selo aceita A/I e retorna selo ativo/inativo em Tailwind; outros valores devolvem vazio. Formulários e visualização usam variantes de componentes conforme o framework efetivo. Veja Interface administrativa.