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.
- Abra admin/templates/actor.html em seu editor de código.
- 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>
- 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.