Como personalizar as tabelas de dados do administrador do Bootstrap?
(LER listas)

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 Data.

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, é necessário 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 administrativos

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