Descrição do Problema / Contexto
Esta requisição (BATCH-112) consolida as melhorias e correções identificadas nos testes de homologação: localização pública do sitemap.xml sob assets/, limpeza de URLs antigas no sitemap, correção do registro na tabela paginas_301, aba SEO completa no publisher-pages, isolamento de cliques/z-index no painel de configurações da Editbar e inclusão dos campos de Meta Descrição e Palavras-chave (Keywords) no formulário e <head>.
Escopo Detalhado da Requisição
Módulo 1: Localização em Assets e Limpeza de URLs Antigas no sitemap.php
-
Localização Pública em
assets/sitemap.xml:-
Atualizar a função
sitemap_caminho_arquivo()emgestor/bibliotecas/sitemap.phppara apontar o arquivo para o diretório de assets do site ($_GESTOR['ROOT_PATH'] . 'assets/sitemap.xml'), garantindo que o controlador de arquivos estáticos (arquivo-estatico.php) e as regras de reescrita o sirvam com acesso público emhttps://dominio/sitemap.xml.
-
-
Limpeza de Slugs Antigos ao Renomear Página:
-
Ao alterar o
caminhode uma página, a URL antiga deve ser imediatamente removida dositemap.xmlantes de inserir a nova URL, impedindo que o XML mantenha entradas duplicadas (slug antigo e slug novo).
-
-
Flexibilização de Elegibilidade (
sem_permissao == 1):-
Páginas públicas de sistema (
tipo = 'sistema'comsem_permissao == 1estatus === 'A'), incluindo/signin/,/signup/,/recover-password/, devem ser elegíveis para indexação nositemap.xml.
-
Módulo 2: Correção do Registro de Redirecionamento 301 (paginas_301)
-
Gravação Correta na Tabela
paginas_301:-
Em
admin-paginas.php, corrigir a captura doid_paginasnumérico e gravação do registro empaginas_301quando a variável$caminhoMudoufor detectada na edição. -
Replicar o mecanismo de registro 301 no módulo
publisher-pages.phppara garantir que alterações de slugs de publicações também criem redirecionamentos automáticos da URL antiga para a URL nova.
-
Módulo 3: Sincronização do Sitemap e Aba SEO no Módulo publisher-pages
-
Aba "SEO & Compartilhamento" no
publisher-pages:-
Adicionar a aba de SEO no formulário do
publisher-pagescom os camposog_titulo,og_descricao,meta_descricao,meta_keywordseimagem_destaqueintegrados ao Image Picker nativo (interface.php), espelhando a interface doadmin-paginas.
-
-
Gatilhos de Sincronização do Sitemap em
publisher-pages.php:-
Conectar as chamadas de sincronização
sitemap_sincronizar_por_id()nas ações de adicionar, editar (com limpeza de URL antiga se o caminho mudar), clonar, alterar status e excluir publicações.
-
Módulo 4: Correção de Variável Indefinida no Image Picker (interface.php:1738)
-
Inicialização de
$fileIdno Fallback de Arquivo Físico:-
Na função do Image Picker em
gestor/bibliotecas/interface.php, quando a imagem selecionada é resolvida pelos metadados do arquivo físico (ramoelseda busca no banco), inicializar a variável$fileId(ex.:$fileId = $campo['caminho'] ?? '';ou$fileId = '';), eliminando oPHP Warning: Undefined variable $fileId on line 1738.
-
Módulo 5: Isolamento de Cliques e Z-Index no Painel de Configurações da Editbar (dashboard.iframe-toolbar.js)
-
Correção de Event Bleed-Through e Ações de Imagem no Painel:
-
No painel flutuante
c2f-page-config-panel(injetado na página hospedeira pela Editbar), aplicarpointer-events: auto,z-indexelevado e isolamento de propagação de eventos de clique/hover (e.stopPropagation()). -
Garantir que passar o mouse sobre o painel de configurações não ative nem destaque os elementos da página de fundo, e que os botões de Escolher Imagem (abrindo o seletor de arquivos) e Remover Imagem respondam instantaneamente aos cliques.
-
Módulo 6: Suporte a Meta Description e Meta Keywords (Banco, Formulários e <head>)
-
Migração de Banco e Renderização no
<head>:-
Adicionar colunas
meta_descricao(text, nullable) emeta_keywords(string 500, nullable) na tabelapaginas. -
Adicionar os campos "Meta Descrição (Google)" e "Palavras-chave (separadas por vírgula)" no formulário do
admin-paginas, nopublisher-pagese no painel de configurações da Editbar. -
Na função
gestor_pagina_extra_head_e_javascript()(gestor.php), renderizar as tags<meta name="description" content="...">e<meta name="keywords" content="...">no cabeçalho<head>, com fallback gracioso para os metadados globais do site caso estejam vazios.
-
Validação e Critérios de Aceite
-
php -lem todos os arquivos modificados. -
node --checkemdashboard.iframe-toolbar.jse scripts de interface. -
Testes unitários atualizados cobrindo a remoção de URL antiga no sitemap, tags de meta description/keywords e o Image Picker.
-
Suíte automatizada (
composer testenpx vitest run) 100% verde.