Personalização das tabelas de dados do administrador do Bootstrap
Guia de personalização da lista de registros

As tabelas de dados do Bootstrap Admin podem ser personalizadas usando sua classe PHP principal e seu modelo TWIG disponível na pasta admin.


Organização dos arquivos relacionados às tabelas de dados administrativos

Quando o senhor cria uma tabela de dados a partir do CRUD Generator, vários arquivos são gerados:

/admin/class/crud/Table.php
A classe principal do PHP
/admin/templates/table.html
O modelo HTML TWIG
/admin/crud-data/table-filter-data.json
Os filtros usados para filtrar seus registros, se houver
/admin/crud-data/table-select-data.json
Selecione a configuração dos menus suspensos, se houver

em que table é a tabela que o senhor deseja personalizar.

Os dois arquivos JSON são usados pelo mecanismo interno do PHPCG para criar seus filtros de lista de dados ou selecionar dados.
Considere-os como arquivos CORE privados e não os modifique.

Os arquivos que nos interessam aqui são a classe PHP e o modelo HTML TWIG.

A classe principal do PHP

A classe PHP principal executa a consulta SQL ao seu banco de dados e recupera os registros da sua tabela.

Ele também recuperará os registros das tabelas relacionais se eles tiverem que ser exibidos na sua tabela de dados.

Os campos e valores são registrados como atributos do objeto, em um loop que percorre seus registros:

if (!empty($this->records_count)) {
    while ($row = $db->fetch()) {
        $this->pk[] = $row->$primary_key;
        $this->my_field[]= $row->my_field;
        // ...
    }
}

Cada $row-> é o valor que será exibido na tabela de dados.

O senhor pode aplicar qualquer função se quiser alterá-las, por exemplo:

$this->my_field[]= strtolower($row->my_field); // to lowercase
if (!empty($row->my_field)) {
    $this->my_field[]= 'Yes';
} else {
    $this->my_field[]= 'No';
}

O modelo HTML TWIG

O TWIG HTML Template recupera os valores da classe PHP principal e cria a tabela de dados HTML.

O senhor pode editar facilmente qualquer parte do modelo, especialmente os elementos <th></th> e <td></td> da tabela.

Valores com código HTML

Muitas vezes, o conteúdo HTML é armazenado e será editado, por exemplo, com um RTE (TinyMce).

Por padrão, o modelo TWIG exibirá tags HTML, enquanto o senhor deseja exibir o conteúdo HTML.

Para isso, modificaremos o modelo TWIG e usaremos o filtro TWIG "raw":

<td>{{ object.last_name[ loop.index0 ]|raw }}</td>

Exemplo de personalização com links para o site público

No Gerador, ative o botão Abrir URL quando o senhor criar sua lista READ.
Isso adicionará um ícone de link a cada registro da sua lista no painel de administração.

O link está apontando para a raiz do domínio. Queremos alterar esse link para que ele leve às respectivas páginas de cada uma das gravações no site público. Veja como fazer isso.

Vamos usar a tabela de atores como exemplo, digamos que cada registro deve abrir uma página https://www.my-website.com/actor-x.php, em que x é o índice.

  1. Abra admin/templates/actor.html em seu editor de código.
  2. Localize o link open url no modelo, que deve ter a seguinte aparência:
    <td> <a href="{{ constant('BASE_URL') }}" rel="noindex" data-delay="500" data-tooltip="{{ constant('OPEN_URL') }}" target="_blank"><span class="{{ constant('ICON_NEW_TAB') }} text-center"></span></a> </td>
  3. Esse link o levará à página inicial no momento. Para que ele aponte para a página do ator, é preciso modificar o URL (href) e adicionar o índice do registro atual
    :<td> <a href="{{ constant('BASE_URL') }}/actor-{{ object.pk[loop.index0] }}.php" rel="noindex" data-delay="500" data-tooltip="{{ constant('OPEN_URL') }}" target="_blank"><span class="{{ constant('ICON_NEW_TAB') }} text-center"></span></a> </td>

    Aqui usamos a chave primária: {{ object.pk[loop.index0] }}.

    Ela vem do objeto Actor em admin/class/crud/Actor.php, que foi passado para o modelo TWIG.

Como manter as alterações se o senhor reconstruir as tabelas de dados?

Depois de fazer alterações nos arquivos de administração gerados pelo PHPGC, se o senhor gerar novamente sua READ List, essas alterações serão substituídas.

Backup automático dos arquivos de administração

Para evitar a perda de dados:

Quando o senhor gera os arquivos do painel de administração, os arquivos existentes são salvos na pasta de backup do gerador: /generator/backup-files/

Ferramenta de comparação de arquivos

A ferramenta de comparação de geradores permite que o senhor faça isso:

  • comparar as versões salvas com as novas versões geradas
  • mescle as duas versões disponíveis selecionando nos dois painéis esquerdo/direito as partes do código que o senhor deseja manter.

Pré-requisitos

Para personalizar as tabelas de dados de administração do Bootstrap com o PHPCG, o senhor deve fazer isso com antecedência:

Página principal do tutorial PHP CRUD