Conectar botões de edição do CMS com PHP e MySQL
Com um acesso de desenvolvedor, você pode vincular um registro MySQL através de seu ID a um botão de edição. Este tutorial mostra como ler o ID com PHP, inseri-lo em $LayoutHTML e permitir a edição dos conteúdos diretamente no seu site.
Pré-requisitos e objetivo
Você precisa de um acesso de desenvolvedor ao CMS bluetronix e da página de exemplo do tutorial de PHP e MySQL. Ele lê um registro de uma tabela MySQL e mostra seu conteúdo através de $LayoutHTML no site.
Agora vamos conectar este registro a um botão de edição. Nos screenshots mostrados, o nome da tabela é Teste, o registro exibido possui a ID 1. Primeiro, você irá complementar o script PHP e depois o código HTML da sua página de exemplo.
1. Script PHP: ler registro e ID
Abra na sua página de exemplo a seção Código PHP. Use o seguinte script como um exemplo completo de SELECT. A conexão do banco de dados existente $mysqli e a variável CMS $LayoutHTML já estão disponíveis. Você não precisa de tags PHP adicionais aqui.
$ID = 1; // Beispiel: der Datensatz, der auf dieser Seite angezeigt wird
//---- SELECT ----
$stmt = $mysqli->prepare("SELECT ID, `Date`, Title, Description, Image FROM Test WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();
if($row = $result->fetch_assoc()) {
$ID = $row["ID"];
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
$LayoutHTML = str_replace("__DB_ID__", $ID, $LayoutHTML);
$LayoutHTML = str_replace("__DB_Date__", htmlspecialchars($Date, ENT_QUOTES, "UTF-8"), $LayoutHTML);
$LayoutHTML = str_replace("__DB_Title__", htmlspecialchars($Title, ENT_QUOTES, "UTF-8"), $LayoutHTML);
$LayoutHTML = str_replace("__DB_Description__", htmlspecialchars($Description, ENT_QUOTES, "UTF-8"), $LayoutHTML);
$LayoutHTML = str_replace("__DB_Image__", htmlspecialchars($Image, ENT_QUOTES, "UTF-8"), $LayoutHTML);
}
$stmt->close();
A consulta carrega ID, Data, Título, Descrição e Imagem da tabela Teste. O novo recurso do botão de edição é principalmente o ID lido junto. O PHP, em seguida, substitui o marcador __DB_ID__ em $LayoutHTML pelo ID do registro real. Os outros marcadores são preenchidos como antes com data, título, descrição e caminho da imagem.
Os valores para data, título, descrição e caminho da imagem são escapados com htmlspecialchars() para a saída HTML. $ID = 1 serve aqui apenas como um ID de exemplo fixo; para outros registros, você deve inserir o valor apropriado.
Se houver um exemplo de UPDATE que foi automaticamente executado do tutorial anterior, desative-o antes deste teste. Caso contrário, ele pode sobrescrever as alterações que você salvar depois através do botão de edição na próxima carga da página.
2. Script HTML: inserir botão de edição
Agora abra o Código HTML da mesma página. O seguinte exemplo mostra a seção completa da página com imagem, data, título e descrição. Está estruturado como um exemplo HTML legível baseado na sua captura de tela. Você pode manter as classes CSS existentes e sua linha de imagem na sua própria página.
<section class="section py-5 sectionAll">
<div class="container py-4">
<div class="row g-5 align-items-center">
<div class="colAll col-lg-6 wowOff fadeInLeft">
<div class="ratio ratio-4x3 rounded-4 overflow-hidden">
<img src="/CMS/cgi-bin/IMG.pl?__DB_Image__=700=500=1=100=1" class="w-100 h-100 object-fit-cover" alt="">
</div>
</div>
<div class="colAll col-lg-6 wowOff fadeInRight">
<span class="badge text-bg-secondary text-white mb-3">__DB_Date__</span>
<!--bxEB_DSedit Test __DB_ID__ bxEB_DSedit-->
<h2>__DB_Title__</h2>
<p>__DB_Description__</p>
<a href="#" class="btn btn-primary">Mehr erfahren</a>
</div>
</div>
</div>
</section>
A nova linha decisiva fica logo após a data: o botão de edição como comentário HTML. Ele contém o tipo de botão bxEB_DSedit, o nome da tabela Teste e o marcador __DB_ID__. O CMS bluetronix processa esse comentário e exibe, no modo de edição, o lápis de edição correspondente.
Copie a linha do botão de edição, incluindo os caracteres de comentário, exatamente. O nome da tabela e o ID devem corresponder ao script PHP. Se sua tabela tiver um nome diferente, substitua Teste tanto na consulta SELECT quanto no botão de edição.
3. Como PHP e HTML trabalham juntos
Ao acessar a página, o PHP lê primeiro o registro da Teste. Em seguida, o script substitui os marcadores __DB_ID__, __DB_Date__, __DB_Title__, __DB_Description__ e __DB_Image__ no HTML. Da linha do botão de edição com __DB_ID__, no nosso exemplo, é feita a associação com a tabela Teste e com o ID do registro 1.
Assim, a página continua mostrando a imagem e os textos do banco de dados. Além disso, o botão de edição sabe qual registro abrir. O cliente final não precisa editar nem PHP nem HTML.
4. Resultado: editar o registro diretamente no site
Primeiro, salve o código PHP e HTML. Recarregue a página de exemplo em modo de edição. Ao lado da data, agora aparece o ícone de edição, como visto na primeira captura de tela.
Toque no ícone de edição. O CMS abre a máscara de edição para Teste – ID: 1. Lá você pode alterar a data, o título, a descrição e a imagem. Para a imagem, você tem o botão de imagem BX disponível.
Toque em Salvar e recarregue a página da web. O PHP lê os valores atualizados do MySQL e os insere nos mesmos marcadores de posição HTML. O layout permanece inalterado; apenas os conteúdos editados são atualizados.
Resumo
Para conectar com um botão de edição, você deve complementar sua consulta SELECT existente com ID, passar isso com $LayoutHTML para __DB_ID__ e adicionar a marcação do botão de edição no HTML ao lado do conteúdo desejado. Depois disso, o registro correspondente pode ser editado diretamente pelo site.
FAQ
o que os clientes nos perguntam frequentemente
Qual a condição necessária para este tutorial?
Você precisa de acesso de desenvolvedor e de uma página CMS que já carrega um registro de sua própria tabela MySQL via PHP.
O que devo adicionar no script PHP?
A consulta SELECT também deve carregar a coluna ID. Em seguida, você substitui o marcador __DB_ID__ em $LayoutHTML pelo ID do registro carregado.
O que devo adicionar no código HTML?
Adicione a marcação do botão de edição ao conteúdo desejado com o nome da tabela e o marcador de ID. Para este exemplo, o nome da tabela é Teste.
Preciso recriar minhas áreas HTML existentes?
Não. Você pode manter seus elementos de imagem, data, título e descrição existentes e adicionar a marcação do botão de edição no local desejado.
Por que o exemplo de UPDATE automático deve ser desativado?
Um UPDATE automático que continua sendo executado com um valor de teste fixo poderia sobrescrever as alterações na próxima chamada da página.
O que acontece quando eu toco no ícone de edição?
O CMS abre o registro com o ID fornecido da tabela especificada. No exemplo, é Teste – ID: 1. Lá você pode editar e salvar os campos designados.
Quando as alterações aparecem na página da web?
Após salvar e recarregar, o PHP lê os dados atualizados do MySQL e os insere no layout HTML existente.