Conn2Flow
Navegação das docs

Referência / Bibliotecas

Biblioteca modelo.php

Substituição de variáveis e manipulação de blocos delimitados em templates HTML — a base de toda a montagem de telas do Gestor.

Caminho no Gestor bibliotecas/modelo.php

modelo.php é a biblioteca de templates do Gestor. Tudo o que o Conn2Flow desenha no servidor passa por ela: páginas, layouts, componentes e respostas de widgets são strings HTML em que o código troca marcadores por valores e recorta, repete ou remove blocos. Não há engine de templates, AST nem escape automático; são funções puras de string.

A biblioteca é carregada no bootstrap do Gestor e registra a própria versão em $_GESTOR['biblioteca-modelo'] (atualmente 1.1.0).

Os dois tipos de marcador

Marcador Formato Usado para
Variável Qualquer string literal, por convenção #nome# ou @[[grupo#nome]]@ Um valor pontual
Bloco (célula) Par de comentários <!-- nome < --> … <!-- nome > --> Um trecho a extrair, repetir, trocar ou remover

As funções não impõem formato. Elas procuram exatamente a string recebida. A convenção dos comentários de bloco é seguida pelos módulos do core e pelos widgets.

Substituir variáveis

Função Ocorrências Maiúsculas/minúsculas
modelo_var_troca($modelo, $var, $valor) só a primeira diferencia
modelo_var_troca_fim($modelo, $var, $valor) só a última ignora
modelo_var_troca_tudo($modelo, $var, $valor) todas ignora
modelo_var_in($modelo, $var, $valor) insere antes da primeira, mantendo a variável diferencia

Quando a variável não é encontrada, o modelo volta inalterado; não há erro nem aviso.

modelo_var_troca() e modelo_var_troca_tudo() também aceitam um array associativo no lugar de $var. Cada chave é usada literalmente como marcador; o # não é acrescentado, apesar do que diz o docblock da função:

$html = modelo_var_troca_tudo($html, [
    '#titulo#' => $titulo,
    '#url#'    => $url,
]);

modelo_var_troca_tudo() usa str_ireplace() de propósito. A versão antiga com preg_replace() tratava $19 no valor como referência de grupo e corrompia preços como $19.97.

Trabalhar com blocos

Função Resultado
modelo_tag_val($modelo, $in, $out) Devolve o conteúdo entre as tags (ou '')
modelo_tag_in($modelo, $in, $out, $valor) Troca o bloco inteiro, com as tags, por $valor
modelo_tag_troca_val($modelo, $in, $out, $valor) Troca só o conteúdo, preservando as tags
modelo_tag_del($modelo, $in, $out) Remove o bloco inteiro, com as tags

O padrão de repetição ("célula")

É assim que os módulos do core montam listas no servidor: extraem o bloco como modelo, deixam um marcador no lugar e inserem cada linha antes do marcador.

$cel_nome = 'linha';
// 1. Guarda o modelo e deixa um marcador no lugar do bloco.
$cel = modelo_tag_val($_GESTOR['pagina'], '<!-- '.$cel_nome.' < -->', '<!-- '.$cel_nome.' > -->');
$_GESTOR['pagina'] = modelo_tag_in($_GESTOR['pagina'], '<!-- '.$cel_nome.' < -->', '<!-- '.$cel_nome.' > -->', '<!-- '.$cel_nome.' -->');
// 2. Para cada registro, preenche uma cópia e a insere antes do marcador (a ordem se mantém).
foreach ($registros as $r) {
    $linha = modelo_var_troca_tudo($cel, '#nome#', htmlspecialchars($r['nome']));
    $_GESTOR['pagina'] = modelo_var_in($_GESTOR['pagina'], '<!-- '.$cel_nome.' -->', $linha);
}
// 3. Remove o marcador.
$_GESTOR['pagina'] = modelo_var_troca($_GESTOR['pagina'], '<!-- '.$cel_nome.' -->', '');

O mesmo par de funções resolve blocos condicionais: modelo_tag_del() apaga a seção quando a condição é falsa. É o que faz, por exemplo, o módulo publisher com as mensagens templates-todos-linkados-msg.

Funções legadas

  • modelo_abrir($modelo_local) lê um arquivo e remove o bloco de desenvolvimento <!--!#del#(#!--> … <!--!#del#)#!-->. Não tem chamadores no core: templates vivem no banco e em resources/, não em arquivos lidos em runtime. Também só remove o primeiro bloco.

  • modelo_input_in($modelo, $in, $out, $valor) chama paginaTrocaVarValor(), que não existe no core. Chamá-la causa erro fatal. Não tem chamadores; não use.

Veja também

Funções

Gerado a partir de gestor/bibliotecas/modelo.php · 10 funções

10 de 10

modelo_input_in

ver no código · linha 33 ↗
modelo_input_in(string $modelo, string $name_input_in, string $name_input_out, string $valor): string

Substitui variáveis de input em um modelo HTML.

Parâmetros

$modelostring
O template HTML onde as substituições serão feitas.
$name_input_instring
Nome do placeholder de entrada (ex: 'campo').
$name_input_outstring
Nome do campo de saída que substituirá o placeholder.
$valorstring
Valor a ser atribuído ao campo.

Retorno

string
Retorna o modelo com as variáveis substituídas.

modelo_var_troca

ver no código · linha 57 ↗
modelo_var_troca(string $modelo, string|array $var, string $valor = null): string

Substitui a primeira ocorrência de uma variável em um modelo.

Parâmetros

$modelostring
O template onde a substituição será feita.
$varstring|array
A variável/placeholder a ser substituída, ou array de variáveis.
$valorstring
O valor que substituirá a variável (ignorado se $var for array).

Retorno

string
Retorna o modelo com a primeira ocorrência da variável substituída.

modelo_var_troca_fim

ver no código · linha 101 ↗
modelo_var_troca_fim(string $modelo, string $var, string $valor): string

Substitui a última ocorrência de uma variável em um modelo.

Parâmetros

$modelostring
O template onde a substituição será feita.
$varstring
A variável/placeholder a ser substituída.
$valorstring
O valor que substituirá a variável.

Retorno

string
Retorna o modelo com a última ocorrência da variável substituída.

modelo_var_troca_tudo

ver no código · linha 137 ↗
modelo_var_troca_tudo(string $modelo, string|array $var, string $valor = null): string

Substitui todas as ocorrências de uma variável em um modelo.

Parâmetros

$modelostring
O template onde as substituições serão feitas.
$varstring|array
A variável/placeholder a ser substituída, ou array de variáveis.
$valorstring
O valor que substituirá todas as ocorrências da variável (ignorado se $var for array).

Retorno

string
Retorna o modelo com todas as ocorrências da variável substituídas.

modelo_var_in

ver no código · linha 165 ↗
modelo_var_in(string $modelo, string $var, string $valor): string

Insere um valor antes da variável mantendo a variável no modelo.

Parâmetros

$modelostring
O template onde a inserção será feita.
$varstring
A variável/placeholder de referência.
$valorstring
O valor a ser inserido antes da variável.

Retorno

string
Retorna o modelo com o valor inserido antes da variável.

modelo_tag_val

ver no código · linha 199 ↗
modelo_tag_val(string $modelo, string $tag_in, string $tag_out): string

Extrai o conteúdo entre duas tags em um modelo.

Parâmetros

$modelostring
O template de onde o conteúdo será extraído.
$tag_instring
A tag de abertura.
$tag_outstring
A tag de fechamento.

Retorno

string
Retorna o conteúdo entre as tags ou string vazia se não encontrado.

modelo_tag_in

ver no código · linha 231 ↗
modelo_tag_in(string $modelo, string $tag_in, string $tag_out, string $valor): string

Substitui um bloco delimitado por tags incluindo as próprias tags.

Parâmetros

$modelostring
O template onde a substituição será feita.
$tag_instring
A tag de abertura do bloco.
$tag_outstring
A tag de fechamento do bloco.
$valorstring
O valor que substituirá todo o bloco (tags + conteúdo).

Retorno

string
Retorna o modelo com o bloco substituído pelo valor.

modelo_tag_del

ver no código · linha 267 ↗
modelo_tag_del(string $modelo, string $tag_in, string $tag_out): string

Remove um bloco delimitado por tags incluindo as próprias tags.

Parâmetros

$modelostring
O template de onde o bloco será removido.
$tag_instring
A tag de abertura do bloco a ser removido.
$tag_outstring
A tag de fechamento do bloco a ser removido.

Retorno

string
Retorna o modelo sem o bloco especificado.

modelo_tag_troca_val

ver no código · linha 305 ↗
modelo_tag_troca_val(string $modelo, string $tag_in, string $tag_out, string $valor): string

Substitui apenas o conteúdo entre as tags, preservando as tags.

Parâmetros

$modelostring
O template onde a substituição será feita.
$tag_instring
A tag de abertura (será preservada).
$tag_outstring
A tag de fechamento (será preservada).
$valorstring
O novo conteúdo que ficará entre as tags.

Retorno

string
Retorna o modelo com o conteúdo entre as tags substituído.

modelo_abrir

ver no código · linha 340 ↗
modelo_abrir(string $modelo_local): string

Carrega um arquivo de template e remove blocos de exclusão.

Parâmetros

$modelo_localstring
Caminho do arquivo de template a ser carregado.

Retorno

string
Retorna o conteúdo do template com os blocos de exclusão removidos.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada